Нормализация реляционных баз данных Страница 7. 3НФ
|
Страница 7 из 8 Для того, чтобы формально определить 3НФ, нам придется предварительно познакомиться с понятием транзитивной зависимости атрибутов, от которой мы попытаемся избавиться на этом этапе.
Обозначим: R - схема отношения, X - подмножество R, A - атрибут в R, F - множество функциональных зависимостей. A называется транзитивно зависимым от X в R, если существует такое Y, являющееся подмножеством R, что:
Теперь можно дать собственно определение 3НФ:
Схема отношения R находится в 3НФ относительно множества функциональных зависимостей F, если она находится в 1НФ и ни один из непервичных атрибутов в R не является транзитивно зависимым от ключа для R.
Вольное изложение определения: чтобы привести отношение к 3НФ, необходимо устранить функциональные зависимости между неключевыми атрибутами отношения. Другими словами, факты, хранимые в таблице, должны зависеть только от ключа.
В реляционной теории имеется лемма, которая гласит, что любая схема отношения, находящаяся в 3НФ относительно F, находится в 2НФ относительно F.
В нашем случае присутствует функциональная зависимость между атрибутами "Ф.И.О.", "Должность" и "Тел." Очевидно, что на предприятии некий человек занимает определенную должность и располагает определенным рабочим телефоном. Обратное в общем случае неверно - на предприятии может быть несколько аналогичных штатных единиц, например, менеджеры по сбыту, и несколько человек могут пользоваться одним рабочим телефоном.
Чтобы избавиться от данной функциональной зависимости, , проведем декомпозицию таблицы 5а на две таблицы.
Первая из них хранит факты, относящиеся непосредственно к самому предприятию:
Табл. 6а
Наим. | Город | Адрес | Эл. почта | WWW | Вид | Поршневой з-д | Владимир | Ул. 2-я Кольцевая, 17 |
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
| www.plunger.ru | Поставщик | ООО Вымпел | Курск | Ул. Гоголя, 25 |
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
| | Клиент | ИЧП Альфа | Владимир | Ул. Пушкинская, 37, оф. 565 |
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
| | Клиент |
Вторая таблица хранит факты, относящиеся к конкретному лицу, исполняющему некоторые обязанности на данном предприятии:
Табл. 6б
Наим. | Город | Ф.И.О. | Должность | Тел. | Поршневой з-д | Владимир | Иванов И.И. | зам. дир. | 76-15-95 | Поршневой з-д | Владимир | Петров П.П., | нач. отд. сбыта | 76-15-35 | ООО Вымпел | Курск | Сидоров С.С. | директор | 66-65-38 | ИЧП Альфа | Владимир | Васильев В.В. | директор | 74-57-45 |
Вместе с таблицей 5б данный набор таблиц представляет собой нашу исходную базу данных, приведенную к 3НФ.
|