Перед обсуждением третьей нормальной формы вводим понятие транзитивной функциональной зависимости.
Определение. Предположим отношение R включает в себя три атрибута: X, Y, Z (R ∈ (X, Y, Z)), при этом между атрибутами X и Y существует функциональная зависимость X → Y, такая же зависимость существует между Y и Z (Y → Z), но в обратном направлении такой зависимости нет Z Y или Y X, тогда говорят, что Z транзитивно зависит от X.
Пример. Имеется отношение (рис. 6.6), которое содержит информацию о выполненной работе.
Рис. 6.6. Иллюстрация транзитивной зависимости
Ключ отношения – табельный номер.
Отношение находится в 1NF (все атрибуты атомарные).
Отношение находится в 2NF (нет составного ключа).
В таблице имеется транзитивная зависимость: одно неключевое поле зависит от другого неключевого поля. А именно:
– табельный номер → выполненная работа;
– выполненная работа → продолжительность работы;
– выполненная работа продолжительность работы.
В такой таблице наблюдается дублирование информации. Для устранения этой аномалии необходимо декомпозировать исходное отношение на три:
R1 (табельный номер; № выполняемой работы);
R2 (№ выполненной работы; выполняемая работа);
R3 (№ выполняемой работы; продолжительность работы).
Определение третьей нормальной формы.
Отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа (то есть, нет функциональной связи в отношении между неключевыми атрибутами).