Третья нормальная форма

Определение 1. Отношение находится в 3НФ, если оно находится в 2НФ, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Альтернативное определение.

Определение 2. Отношение находится в 3НФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от ключа.

Доказать справедливость этого утверждения несложно. Действительно, то, что неключевые атрибуты полностью зависят от первичного ключа, означает, что данное отношение находится в форме 2НФ. Взаимная независимость атрибутов означает отсутствие всякой зависимости между атрибутами отношения, в том числе и транзитивной зависимости между ними. Таким образом, второе определение 3НФ сводится к первому определению.

Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:

ФИО→Должн→Оклад

ФИО→Оклад→Должн

ФИО→Стаж→Д_Стаж,

Транзитивные зависимости также порождает избыточное дублирование информации в отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющуюся причиной транзитивных зависимостей преобразуем отношение R2, получив при этом отношенияR3, R4 и R5, каждое из которых находится в 3НФ.

R3

ФИО Должн Стаж Каф
Иванов И.М. преп    
Петров М.И. Ст.преп    
Сидоров Н.Г. преп    
Егоров В.В. преп    

R4

Должн Оклад
Преп  
Ст.преп  

R5

Стаж Д_Стаж
   
   
   

 
 


Рис. Отношения БД в 3НФ

Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.

На практике построение 3НФ в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к 3НФ в нашем примере, привело к устранению избыточного дублирования.

Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной 3НФ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: