Третья нормальная форма
Определение: Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут не транзитивно зависит от первичного ключа.
Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:
ФИО→Должность→Оклад,
ФИО→Оклад→Должность,
ФИО→Стаж→Д_Стаж
Для устранения транзитивных зависимостей используем операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей: преобразуем отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в ЗНФ (рис. 3).
R3
ФИО | Должность | Стаж | Д_Стаж | Кафедра |
Иванов И. М. | Преподаватель | |||
Иванов И. М. | Преподаватель | |||
Петров М. И. | Ст. преподаватель | |||
Петров М. И. | Ст. преподаватель | |||
Сидоров Н. Г. | Преподаватель | |||
Сидоров Н. Г. | Преподаватель | |||
Егоров В. В. | Преподаватель |
R4 |
R5 |
На практике построение ЗНФ схем отношений в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к ЗНФ в нашем примере привело к устранению избыточного дублирования. В результате нормализации получим БД, состоящую из следующих таблиц: Rl, R3, R4, R5. В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.
Итак, процесс нормализации отношений методом нормальных форм предполагает:
· атомарность (простоту) атрибутов (1НФ);
· удаление частичных зависимостей неключевых атрибутов от ключа (2НФ);
· удаление транзитивных зависимостей не ключевых атрибутов от ключа (ЗНФ);
Домашнее задание: Даны следующие атрибуты. Привести к 3 НФ.
Платная поликлиника.
Врачи (КодВрача, Фамилия, Имя, Отчество, Специальность, Категория)
Больные(КодБольного, Фамилия, имя, Отчество, ГодРождения)
Обращения (КодВрача, КодБольного, ДатаОбращения, Диагноз, СтоимостьЛечения)