Нормализация реляционных баз данных - 3НФ

ОГЛАВЛЕНИЕ

 

3НФ

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

Обозначим: R - схема отношения, X - подмножество R, A - атрибут в R, F - множество функциональных зависимостей. A называется транзитивно зависимым от X в R, если существует такое Y, являющееся подмножеством R, что:
  • X->Y
  • ~(Y->X)
  • Y->A
  • ~(A  XY)

Теперь можно дать собственно определение 3НФ:

Схема отношения R находится в 3НФ относительно множества функциональных зависимостей F, если она находится в 1НФ и ни один из непервичных атрибутов в R не является транзитивно зависимым от ключа для R.

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

В реляционной теории имеется лемма, которая гласит, что любая схема отношения, находящаяся в 3НФ относительно F, находится в 2НФ относительно F.

В нашем случае присутствует функциональная зависимость между атрибутами "Ф.И.О.", "Должность" и "Тел." Очевидно, что на предприятии некий человек занимает определенную должность и располагает определенным рабочим телефоном. Обратное в общем случае неверно - на предприятии может быть несколько аналогичных штатных единиц, например, менеджеры по сбыту, и несколько человек могут пользоваться одним рабочим телефоном.

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

Первая из них хранит факты, относящиеся непосредственно к самому предприятию:

Табл. 6а
Наим.ГородАдресЭл. почтаWWWВид
Поршневой з-дВладимирУл. 2-я Кольцевая, 17Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.www.plunger.ruПоставщик
ООО ВымпелКурскУл. Гоголя, 25Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. Клиент
ИЧП АльфаВладимирУл. Пушкинская, 37, оф. 565Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. Клиент

Вторая таблица хранит факты, относящиеся к конкретному лицу, исполняющему некоторые обязанности на данном предприятии:

Табл. 6б
Наим.ГородФ.И.О.ДолжностьТел.
Поршневой з-дВладимирИванов И.И. зам. дир.76-15-95
Поршневой з-дВладимирПетров П.П.,нач. отд. сбыта76-15-35
ООО ВымпелКурскСидоров С.С. директор66-65-38
ИЧП АльфаВладимирВасильев В.В.директор74-57-45

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