Файл: Создание баз данных в Microsoft AccessМ. А. Ковалева.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 304
Скачиваний: 11
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Создание баз данных в Microsoft Access
М. А. Ковалева
http://izd-mn.com/
8
Реляционная модель данных была предложена американским математиком, сотрудником фирмы IBM Э. Коддом в 1970 году.
Теоретической основой реляционной модели данных стала теория отношений.
Основной структурой данных в этой модели является отношение. Э. Кодд показал, что любое представление данных можно свести к совокупности двумерных таблиц особого вида, называемых отношением. В английской терминологии relation - это отношение. Поэтому модель данных получила название реляционной.
Каждый элемент отношения может быть представлен в формате
A[i,j], где: A - элемент данных, i - строка отношения, j - номер атрибута отношения
Количество атрибутов в отношении определяет степень этого отношения.
Отношение степени 1 называется унарным, отношение степени 2 - бинарным, отношение степени
3
- тернарным, а отношение степени n
- n-арным.
Множество всех значений A[i,j] при i = const и всех возможных j образует кортеж или строку таблицы.
Множество всех кортежей отношения образует тело отношения.
Реляционной считается такая база данных, в которой все данные представлены в виде двумерных таблиц и все операции над базой сводятся к манипуляциям с таблицами или отношениями (в терминологии баз данных отношение - это таблица или сущность).
Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
каждый элемент таблицы является минимальным элементом данных;
все элементы в пределах одного столбца имеют одинаковый тип данных
(текстовый, числовой, логический и т. д.);
все столбцы должны иметь уникальное имя;
в таблице нет совпадающих строк;
порядок следования столбцов и строк может быть произвольным (см., например, таблицу Сессия, в соответствии с рисунком 1.
Рисунок 1 – Таблица Сессия
Создание баз данных в Microsoft Access
М. А. Ковалева
http://izd-mn.com/
9
Каждый из атрибутов расположен в отдельном столбце. Каждая строка представляет собой набор атрибутов, описывающий конкретный экземпляр объекта - Сессия.
Каждое поле таблицы должно являться отдельным атомарным значением для конкретной предметной области. Это атомарное значение не должно разлагаться на более простые составляющие.
В некоторых случаях в качестве атомарного значения могут рассматриваться агрегированные объекты. Например, фамилия, имя и отчество или адрес и его атрибуты.
Между реляционными таблицами должны быть установлены связи. Связь между таблицами характеризует способ, которым информация одной таблицы связана с информацией в другой.
С этой целью необходимо установить идентификатор или ключ, который бы позволил уникально опознать любую строку таблицы.
Ключом называется множество атрибутов, задание значений которых позволяет однозначно определить значения остальных атрибутов таблицы.
В качестве ключа может выступать учебный шифр студента (номер зачетки), номер группы, код заказа, код клиента и др.
Один из возможных ключей отношения может быть выбран в качестве первичного ключа.
Проектирование реляционных баз данных
Реляционная база данных представляет собой совокупность двумерных реляционных таблиц, в которых хранится вся информация о конкретной предметной области и все операции над базой данных сводятся к манипуляциям. Кроме таблиц в базе данных могут хранится и другие объекты, а именно: экранные формы, отчеты, представления и др.
Таблицы реляционной базы данных должны быть взаимосвязаны между собой. В каждой связи одно отношение может выступать как главное, а другое - как подчиненное. Для поддержки этих отношений используются ключи.
Реляционная таблица состоит из строк (записей) и столбцов (полей) и имеет уникальное в пределах базы данных имя. Каждая таблица имеет один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Такой столбец или их комбинация называется первичным ключом. В таблице Сессия первичным ключом является комбинация столбцов Код преподавателя и Код дисциплины (один клиент может иметь несколько заказов). Первичный ключ должен содержать уникальные непустые значения.
Таблица отражает сущность (класс объектов) реального мира, а каждая ее строка - конкретный экземпляр этой сущности. Так, например, таблица Преподаватели, рисунок 1, содержит всю необходимую информацию о регистрации и исполнении заказов.
Целью проектирования базы данных является сокращение избыточности хранимых данных. База данных должна обеспечить оптимальное использование оперативной и дисковой памяти, возможность изменения данных и обеспечить целостность данных.
К проекту реляционной базы данных предъявляются следующие требования.
Каждая таблица должна иметь уникальное в пределах базы данных имя.
Все строки таблицы должны быть однотипны.
Каждая строка таблицы должна отличаться от любой другой строки хотя бы одним значением.
Каждая строка таблицы не должна зависеть от значений, хранимых в другой строке.
Каждому столбцу таблицы должно быть присвоено уникальное в пределах базы данных имя.
Разрешается свободно обращаться к любой строке или столбцу.
Нормализация данных
Нормализацией называется процесс приведения структур данных в состояние, обеспечивающее лучшие условия выборки, включения, изменения и удаления данных. Это
Создание баз данных в Microsoft Access
М. А. Ковалева
http://izd-mn.com/
10 достигается разбиением одной большой таблицы на две или более мелких. Конечной целью нормализации является получение такого проекта базы данных, в котором каждый факт появляется лишь в одном месте.
Таблица, в которую включены все интересующие атрибуты, называется универсальным отношением. При использовании универсального отношения база данных будет состоять лишь из одной таблицы, в которой будет хранится вся информация о рассматриваемом объекте.
Таблицу, содержащую в одном или нескольких полях большое количество повторяющихся данных, можно разделить на две или более связанных таблиц. Такой способ, позволяющий более эффективно хранить данные, называют нормализацией таблиц.
В некоторых СУБД, например Access, предусмотрен мастер анализа таблиц, который позволяет нормализовать таблицы базы данных. При использовании мастера пользователь имеет возможность самостоятельно определить создаваемые таблицы или позволить мастеру провести нормализацию таблиц.
Мастер анализа таблиц преобразует таблицу, содержащую повторяющиеся данные, в набор связанных таблиц, где уже нет повторений. Это повышает эффективность работы с базой данных и уменьшает ее размер. После создания набора таблиц данные по-прежнему можно просматривать и обрабатывать вместе, создав для этого запрос.
Универсальное отношение порождает ряд проблем.
Избыточность
Аномалии обновления (потенциальная противоречивость)
Аномалии включения
Аномалии удаления
Большая часть проблем исчезнет, если данные из универсальной таблицы разнести в несколько более мелких таблиц. Эту задачу можно решить путем нормализации.
Процесс нормализации состоит из нескольких этапов. На каждом из этапов изменяют структуру данных так, чтобы она удовлетворяла определенным критериям - требованиям нормальной формы.
Нормализация представляет собой последовательное изменение структуры данных в соответствии с требованиями нормальных форм.
Всего существует шесть нормальных форм. Теория нормализации опирается на довольно сложный математический аппарат реляционной алгебры, изложение которого вытекает за рамки данного пособия.
Дадим определение первых трех нормальных форм.
Таблица находится в первой нормальной форме, если ни одно поле строки не содержит более одного значения и любое ключевое поле не является пустым. Как следует из определения, любая таблица реляционной базы данных автоматически удовлетворяет требованиям первой нормальной формы.
Таблица находится во второй нормальной форме, если она удовлетворяет требованиям первой нормальной формы, и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом. Как следует из этого определения, необходимо чтобы только первичный ключ однозначно идентифицировал значения полей в любом столбце и в то же время значения полей в столбцах не зависели от любой части составного ключа. Если первичный ключ состоит из одного столбца, то это требование удовлетворяется автоматически. Если же первичный ключ является составным, то есть состоит из двух и более столбцов, то такая таблица не обязательно будет находится во второй нормальной форме. если таблица не удовлетворяет требованиям второй нормальной формы, то она должна быть разбита на две или более таблиц так, чтобы первичный ключ однозначно идентифицировал значение в любом столбце.
Таблица находится в третьей нормальной форме тогда и только тогда, когда она удовлетворяет требованиям второй нормальной формы и ни одно из ее не ключевых полей не
Создание баз данных в Microsoft Access
М. А. Ковалева
http://izd-mn.com/
11 зависит функционально от любого не ключевого поля. Любое не ключевое поле должно зависеть только от первичного ключа.
Практически таблицы реляционной базы данных не обязательно должны удовлетворять всем требованиям нормальных форм.
Связывание таблиц
Пока данные хранятся в универсальном отношении можно сразу получить всю необходимую информацию. После нормализации доступ к данным усложняется, так как вместо одной таблицы имеется набор множества таблиц. Чтобы выбрать необходимую информацию необходимо рассмотреть несколько таблиц.
Для связывания данных в таблицах необходимо использовать ключи. Взаимосвязь таблиц поддерживается внешними ключами. Внешний ключ создается в таблице, поля которой ссылаются на строки главной таблицы. Каждому значению внешнего ключа должно быть сопоставлено значение первичного ключа. В отличие от первичного, внешний ключ не должен быть уникальным. В зависимой таблице могут быть строки, имеющие одинаковые значения внешнего ключа.
Группа связанных таблиц называется схемой данных. Пример схемы данных показан на рис.2.
Рисунок 2 – Фрагмент схемы данных базы данных
Типы связей между таблицами
Тип связи определяет правила сопоставления строк между двумя таблицами.
Существуют следующие виды связей или отношений.
Один - к - одному (1:1). Такое отношение означает, что каждой строке первой таблицы соответствует только одна строка во второй таблице и, наоборот, каждой строке второй таблицы соответствует только одна строка в первой таблице. Таблицы. связанные отношением один к одному можно объединить в одну общую таблицу, состоящую из полей обоих таблиц.
Отношение один к одному может использоваться для разделения таблиц, состоящих из большого числа полей. Такое разбиение может потребоваться, если некоторые поля таблицы содержат конфиденциальную информацию или требуется создать условия для ускоренного просмотра данных.
Один - ко - многим. Такая связь определяет отношение между таблицами, когда одна из них является главной, а другая подчиненной. При этом каждой строке главной таблицы может соответствовать несколько строк в подчиненной таблице, а каждой строке в подчиненной таблице соответствует только одна в главной таблице. Примером такого отношения является связь между таблицами Преподаватели и Дисциплина, устанавливаемая между полями Код клиента и Код клиента (см., например, схему данных базы данных). В
Создание баз данных в Microsoft Access
М. А. Ковалева
http://izd-mn.com/
12 отношении один – ко – многим главной таблицей является таблица, которая содержит первичный ключ, который составляет часть один в отношении один - ко - многим (Код клиента в таблице Клиенты). Каждый преподаватель может иметь или одну дисциплину, или несколько, или не иметь их совсем. Каждая дисциплина в подчиненной таблице
Преподаватели должен принадлежать только одному преподавателю.
Многие - ко - многим. При такой связи каждой строке первой таблицы может соответствовать несколько строк во второй таблице и наоборот. Примером такой связи является связь между таблицами Заказы и Каталог. Один заказ может содержать много моделей мебели и каждая конкретная модель может быть включена во множество заказов.
Такая связь может быть реализована только через третью таблицу, с которой исходные таблицы будут иметь связи один - ко - многим.
Для рассматриваемого примера такой таблицей является таблица Состав заказа, которая имеет внешние ключи, образованные из составных первичных ключей таблиц Заказы и Каталог.
Формирование запросов к базе данных
Доступ к данным осуществляется с помощью запросов к базе данных. Эти запросы формулируются на стандартном языке запросов. Для большинства СУБД таким языком является структурированный язык запросов -Structured Query Language (SQL).
Его появление и развитие связано с созданием теории реляционных баз данных. Первая версия языка была разработана в 1970 году фирмой IBM.
За прошедшие с момента появления этого языка годы SQL претерпел существенные изменения и стал более гибким. Вследствие конкуренции на рынке программных продуктов многие фирмы создавали различные модификации и диалекты языка. Эта ситуация негативно отражалась на совместимости программных продуктов, что и явилось объективной необходимостью стандартизации языков доступа к данным, применяемых в различных СУБД.
В 1992 году американским национальным институтом стандартов (ANSI) был разработан стандарт языка, названный ANSI SQL-92.
Действующим в настоящее время стандартом языка SQL для большинства реляционных СУБД является принятая Американским национальным институтом стандартов
(ANSI) версия SQL 3.
Однако производители СУБД продолжают модернизировать и улучшать возможности языка доступа к данным. Так, например, фирма Microsoft разработала свою версию языка доступа к данным, назвав его Transact-SQL. Этот язык, удовлетворяя требованиям стандарта
ANSI SQL-92, предлагает ряд дополнительных возможностей для более эффективного доступа к данным. Transact-SQL и используется для доступа к данным в SQL Server 7.0.
Язык SQL имеет унифицированный набор инструкций. Он также имеет графическую версию - это Query-By Example (QBE). Используя специальный бланк запроса QBE, запросы формулируются посредством графического представления.
Язык SQL не является языком программирования в традиционном понимании. Он не содержит операторы, управляющие ходом выполнения программы. Он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. На нем формулируются только запросы к базе данных. С помощью языка SQL можно сформулировать, что необходимо получить в базе данных. Кроме оператора выбора SELECT, язык SQL содержит операторы определения и администрирования данных, операторы манипулирования данными и другие средства.
Наиболее важные операторы, которые входят в стандарт ANSI SQL, приведены в таблице 1