6.2.5. Третья нормальная форма
Рассмотрим транзитивную зависимость следующего типа: если А → В, В -/→ А (В не является ключом), В → С, то А → С. В этом случае считается, что С транзитивно зависит от А. Транзитивная зависимость вызвана наличием в отношении двух семантических зависимостей различных типов.
Схема отношения находится в третьей нормальной форме относительно множества функциональных зависимостей F, если она находится в 1НФ и ни один из непервичных атрибутов в R не является транзитивно зависимым от ключа для R.
Схема всей БД находится в ЗНФ относительно F, если каждая схема отношения находится в ЗНФ относительно F.
Рассмотрим схему базы данных примера предыдущего раздела.
ПРЕПОДАВАТЕЛЬ (Таб _Ном_преп, ФИО_преп, Должность); СТУДЕНТ (Ном_зач_кн, ФИО_студ, Тема_диплома); КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время, Аудитория, Вместимость).
Последнее отношение содержит транзитивную зависимость:
(Таб_Ном_преп, Ном_зач_кн, Дата) → Аудитория → Вместимость.
Следовательно, это отношение не находится в ЗНФ со всеми вытекающими из этого последствиями, и прежде всего следующими:
- если аудитория исключается из расписания консультаций, то о ней вообще теряются сведения;
- если аудитория перестроена и в результате изменилась ее вместимость, то придется просмотреть все кортежи и провести модификацию значений атрибута.
Для устранения транзитивной зависимости необходимо провести декомпозицию последнего отношения, удалив из него транзитивно-зависимый атрибут и поместив его в новое отношение вместе с копией того атрибута, от которого он зависит.
Таким образом, база данных этого примера, лишенная транзитивных зависимостей, в ЗНФ будет выглядеть так:
ПРЕПОДАВАТЕЛЬ (Таб_Ном_преп , ФИО_преп, Должность); СТУДЕНТ Ном_зач_кн, ФИО_студ, Тема_диплома ); КОНСУЛЬТАЦИИ (Таб_Ном_преп, Ном_зач_кн, Дата, Время,Аудитория);
АУДИТОРИЯ (Аудитория, Вместимость).
При проектировании структуры реляционной базы данных считается корректной установка, что любая БД должна находиться как минимум в ЗНФ. На практике третья нормальная форма схем отношений достаточна в большинстве случаев, и приведением к третьей нормальной форме процесс проектирования реляционной базы данных обычно заканчивается.