Лекция 12. Нормальные формы
Лекция 12. Нормальные формы
Содержание лекционного занятия:
· третья нормальная форма
Третья нормальная форма
Рассмотрим таблицу СОТРУДНИКИ, полученную после приведения исходной таблицы ко второй нормальной форме. Для этой таблицы существует функциональная связь между полями «Код сотрудника» и «Зарплата». Однако эта функциональная связь является транзитивной.
Функциональная зависимость атрибутов X и У отношения R называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости X -» Z и Z -»У, но отсутствует функциональная зависимость Z -» X.
Транзитивность зависимости полей «Код сотрудника» и «Зарплата» означает, что заработная плата на самом деле является характеристикой не сотрудника, а должности, которую он занимает. В результате мы не сможем занести в базу данных информацию, характеризующую заработную плату должности, до тех пор, пока не появится хотя бы один сотрудник, эту должность занимающий (так как первичный ключ не может содержать неопределенное значение). При удалении кортежа, описывающего последнего сотрудника, занимающего данную должность, мы лишимся информации о заработной плате, соответствующей этой должности. Кроме того, чтобы согласованным образом изменить заработную плату, соответствующую должности, будет необходимо предварительно найти все записи, описывающие сотрудников, занимающих данную должность. Таким образом, в таблице СОТРУДНИКИ по-прежнему существуют аномалии. Их можно устранить путем дальнейшей нормализации — приведения базы данных к третьей нормальной форме.
Отношение R находится в третьей нормальной форме в том и только в том случае, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Чтобы перейти от второй нормальной формы к третьей, нужно выполнить следующие шаги:
1. Определить все поля (или группы полей), от которых зависят другие поля.
2. Создать новую таблицу для каждого такого поля (или группы полей) и группы зависящих от него полей и переместить их в эту таблицу. Поле (или группа полей), от которого зависят все остальные перемещенные поля, станет при этом первичным ключом новой таблицы.
3. Удалить перемещенные поля из исходной таблицы, оставив лишь те из них, которые станут внешними ключами.
Обратите внимание, что мы опять добавили новый атрибут — «Код должности», который является первичным ключом для отношения ДОЛЖНОСТИ и внешним ключом для отношения СОТРУДНИКИ. Добавление новых атрибутов при нормализации позволяет получить таблицы с простыми первичными ключами, что облегчает выполнение операции связывания таблиц. Такие первичные ключи, как правило, являются искусственными.
Приведем рассматриваемую в качестве примера базу данных к третьей нормальной форме. Для этого разделим таблицу СОТРУДНИКИ на две - СОТРУДНИКИ и ДОЛЖНОСТИ (рис. 4).
Рис. 4. Приведение базы данных к третьей нормальной форме
На практике третья нормальная форма схем отношений в большинстве случаев достаточна, и приведением к третьей нормальной форме процесс проектирования реляционной базы данных обычно заканчивается. Поэтому мы не будем рассматривать другие нормальные формы, тем более что в работе они используются сравнительно редко.
Рис. 5. Структура базы данных, приведенной к третьей нормальной форме
В заключение приведем схему базы данных, рассматриваемой в качестве примера и приведенной к третьей нормальной форме (рис. 5).
Вопросы для самоконтроля:
1.Реструктурирование баз данных.
Рекомендуемая литература:
1. Дейт К.Дж. Введение в системы баз данных. - К.: Диалектика, 1998. - 784 с.
2. Ульман Дж., Уидом Д. Основы систем баз данных. - М.: ЛОРИ, 2000. - 374 с.
Қoймaның дeрeктeр бaзacын жoбaлaу
Сабақ кестесі
Қанның құрамы, физикалық-химиялық қасиеттері мен қызметі
Стандарттау әдістері
Етістіктің аналитикалық форманттары пәнінен лекциялар жинағы
Қылмысқа қатысушылықпен жасалған іс-әрекеттерді саралау
Өндірістің қaржылық тұрaқтылығын тaлдaу жәнe жeтілдіру жoлдaры
«Мылтық ату» пәнінің оқу - әдістемелік кешені
Жер қабығы (құрамы, қозғалыстары), бедер туралы жалпы мәліметтер
Бастапқы объекттер