Вторая нормальная форма

Отноппение имеет вторую нормальную форму (2НФ), если оно соответствует первой нормальной форме и не содержит неполных функциональных зависимостей.

Для перевода отношения во вторую нормальную форму надо устранить существующую в нем неполную функциональную зависимость путем разложения отношения на несколько отношений, соответствующих 2НФ:

  • 1) построить проекцию отношения без включения атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
  • 2) построить проекции отношения на части составного первичного ключа и зависящие от этих частей атрибуты.

В нашем примере отношение R3 разбивается на два отношения R3_l и R3_2, находящиеся в 2НФ (рис. 3.16).

Отношения во второй нормальной форме

Рис. 3.16. Отношения во второй нормальной форме

База данных находится в 2НФ, если все ее отношения находятся в 2НФ.

Избыточное дублирование информации может быть порождено не только неполной зависимостью, но и наличием транзитивной зависимости.

Транзитивная функциональная зависимость. Функциональная зависимость атрибута С от атрибута А (А — С) является транзитивной, если существует такой атрибут В, что выполняются условия А — ВиВ — Си отсутствует функциональная зависимость В — А.

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

Пример отношения, имеющего транзитивную зависимость

Рис. 3.17. Пример отношения, имеющего транзитивную зависимость

В этом отношении наблюдаются транзитивные функциональные зависимости:

ФИО — Должность, Должность — Оклад;

ФИО — Оклад, Оклад — Должность.

Транзитивная зависимость отражает тот факт, что оклад сотрудника на самом деле является характеристикой не сотрудника, а должности, в которой он работает.

Избыточность данных в отношении R4 связана с тем, что принадлежность оклада должности (и наоборот) указывается столько раз, сколько сотрудников с данной должностью работают в организации.

При наличии подобной структуры мы не сможем занести в базу данных информацию, характеризующую оклад, соответствующий определенной должности, до тех пор, пока не появится хотя бы один сотрудник, занимающий эту должность (первичный ключ не может содержать неопределенное значение). При удалении кортежа, описывающего последнего сотрудника на этой должности, мы лишимся информации о соответствующем окладе.

Это означает, что в отношении Сотрудники-Отделы по-прежнему существуют аномалии. Их можно устранить путем дальнейшей нормализации.

но

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

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

Отношение R находится в третьей нормальной форме (ЗНФ) в том и только в том случае, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Перевод отношения R4 в третью нормальную форму приводит к его декомпозиции на два отношения (рис. 3.18).

Отношения в третьей нормальной форме

Рис. 3.18. Отношения в третьей нормальной форме

База данных находится в ЗНФ, если все ее отношения находятся в ЗНФ.

На практике третья нормальная форма достаточна в большинстве случаев, и приведением к ней процесс проектирования реляционной базы данных обычно заканчивается. В некоторых случаях процесс нормализации продолжается и включает последовательно нормальную форму Бойса — Кодда, четвертую нормальную форму и пятую нормальную форму (см., например, работы [2,11,13]).

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >