Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all_lab.doc
Скачиваний:
47
Добавлен:
14.11.2019
Размер:
1.42 Mб
Скачать

3Нф (Третья Нормальная Форма)

Определение. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого.

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

Отношение СОТРУДНИКИ_ОТДЕЛЫ не находится в 3НФ, т.к. имеется функциональная зависимость неключевых атрибутов (зависимость номера телефона от номера отдела):

Н_ОТД ТЕЛ

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

Отношение СОТРУДНИКИ_ОТДЕЛЫ декомпозируем на два отношения - СОТРУДНИКИ, ОТДЕЛЫ.

Отношение СОТРУДНИКИ (Н_СОТР, ФАМ, Н_ОТД):

Функциональные зависимости:

Зависимость атрибутов, характеризующих сотрудника от табельного номера сотрудника:

Н_СОТР ФАМ

Н_СОТР Н_ОТД

Н_СОТР ТЕЛ

Таблица 9. Отношение СОТРУДНИКИ

Н_СОТР

ФАМ

Н_ОТД

1

Иванов

1

2

Петров

1

3

Сидоров

2

Отношение ОТДЕЛЫ (Н_ОТД, ТЕЛ):

Функциональные зависимости:

Зависимость номера телефона от номера отдела:

Н_ОТД ТЕЛ

Таблица 10. Отношение ОТДЕЛЫ

Н_ОТД

ТЕЛ

1

11-22-33

2

33-22-11

Обратим внимание на то, что атрибут Н_ОТД, не являвшийся ключевым в отношении СОТРУДНИКИ_ОТДЕЛЫ, становится потенциальным ключом в отношении ОТДЕЛЫ. Именно за счет этого устраняется избыточность, связанная с многократным хранением одних и тех же номеров телефонов.

Вывод. Таким образом, все обнаруженные аномалии обновления устранены. Реляционная модель, состоящая из четырех отношений СОТРУДНИКИ, ОТДЕЛЫ, ПРОЕКТЫ, ЗАДАНИЯ, находящихся в третьей нормальной форме, является адекватной описанной модели предметной области, и требует наличия только тех триггеров, которые поддерживают ссылочную целостность. Такие триггеры являются стандартными и не требуют больших усилий в разработке.

Можно дать определение 3НФ через понятие транзитивной зависимости.

Если для атрибутов A, B, и С некоторого отношения существуют зависимости вида A B С, то говорят что атрибут С транзитивно зависит от атрибута А через атрибут B (при условии, что атрибут А функционально не зависит ни от атрибута А, ни от атрибута С).

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

Мы рассмотрели нормальные формы вплоть до третьей нормальной формы (3НФ). В большинстве случаев этого вполне достаточно, чтобы разрабатывать вполне работоспособные базы данных. Коротко рассмотрим нормальные формы более высоких порядков, а именно, нормальную форму Бойса-Кодда (НФБК), четвертую нормальную форму (4НФ) и пятую нормальную форму (5НФ).

Обобщением 3НФ на случай, когда отношение имеет более одного потенциального ключа, является нормальная форма Бойса-Кодда.

Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами.

Нормализация отношений вплоть до нормальной формы Бойса-Кодда основывалась на понятии функциональной зависимости и теореме Хеза, гарантировавшей, что декомпозиция будет происходить без потерь информации.

Дальнейшая нормализация связана уже с обобщением понятия функциональной зависимости.

Атрибуты (множества атрибутов) Y и Z многозначно зависят от X, ( ), тогда и только тогда, когда из того, что в отношении R содержатся кортежи и следует, что в отношении R содержится также и кортеж .

Корректность дальнейшей декомпозиции основывается на теореме Фейджина, которая говорит о том, что декомпозиция отношения на две проекции является декомпозицией без потерь тогда и только тогда, когда в отношении имеется некоторая многозначная зависимость.

Если в отношении имеется функциональная зависимость, то автоматически имеется и тривиальная многозначная зависимость, определяемая этой функциональной зависимостью.

Многозначная зависимость называется нетривиальной многозначной зависимостью, если не существует функциональных зависимостей и .

Отношение находится в четвертой нормальной форме (4НФ) тогда и только тогда, когда отношение находится в НФБК и не содержит нетривиальных многозначных зависимостей.

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

Отношение находится в пятой нормальной форме (5НФ) тогда и только тогда, когда любая имеющаяся зависимость соединения является тривиальной.

Приведение модели в 1-ю нормальную форму

Вовращаясь к нашей БД «Аэропорт», отметим, что поскольку ещё в процессе анализа мы избегали использования многозначных атрибутов, то в нашей модели нет таблиц, в ячейках которых хранилось бы более одного значения.

Следовательно, наша модель уже находится в 1-й нормальной форме (1НФ).

Приведение модели во 2-ю нормальную форму

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

Последовательно рассматривая каждую таблицу, убеждаемся, что это действительно так.

Приведение модели в 3-ю нормальную форму

Проверим, зависят ли атрибуты таблиц ТОЛЬКО от первичного ключа, или встречаются ещё и зависимости от других, неключевых атрибутов, называемые транзитивными.

Последовательно рассматривая каждую таблицу, обнаруживаем, что в таблице «Аэропорт» наблюдается транзитивная зависимость, а именно — атрибут «страна» зависит не только от первичного ключа, но и от атрибута «город», т.е. налицо транзитивная зависимость:

«код аэропорта» → «город» → «страна»

Для её исключения необходимо произвести декомпозицию, т.е. разбиение таблицы «Аэропорт» на две, вынесем повторяющиеся группы «город», «страна» в таблицу «Город»:

Других транзитивных зависимостей нет. Таким образом, мы привели нашу схему в 3-ю нормальную форму:

Задание: Приведите свою модель в 3НФ, при необходимости производя декомпозицию отношений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]