Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭУМКД_БД_1.doc
Скачиваний:
17
Добавлен:
23.09.2019
Размер:
4.19 Mб
Скачать

3.4.10. Четвёртая нормальная форма

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

Многозначная зависимость не является функциональной и существует в том случае, когда из факта, что в таблице содержится «строка со значением некоторого поля, равным X», следует, что в таблице обязательно существует «строка со значением некоторого поля, равным Y».

Т.о., отношение находится в 4НФ, если все его зависимости являются функциональными.

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

Составной ключ таблицы такого отношения включает три поля:

{Ресторан, ВидПиццы, РайонДоставки}.

Такая таблица не соответствует 4НФ, так как существует многозначная зависимость:

{Ресторан} →→ {Вид пиццы}

{Ресторан} →→ {Район доставки}

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

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

Для предотвращения аномалии нужно разбить многозначную зависимость – разместить независимые факты в разных таблицах.

Переработаем такое отношение…

Рисунок 3.4.10.1 – Отношение, НЕ находящееся в 4НФ

… в такую схему:

Рисунок 3.4.10.2 – Схема БД, соответствующая 4НФ

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

Мы можем создать отдельную промежуточную таблицу.

3.4.11. Пятая нормальная форма

Отношение находится в 5НФ, если оно находится в 4НФ и любая многозначная зависимость соединения в нём является тривиальной.

Пятая нормальная форма в большей степени является теоретическим исследованием и практически не применяется при реальном проектировании баз данных.

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

Зависимость соединения

Отношение R (X, Y, ... ,Z) удовлетворяет зависимости соединения * (X, Y, ... ,Z) в том и только в том случае, когда R восстанавливается без потерь путём соединения своих проекций на X, Y, Z.

Иными словами: если отношение R декомпозировать на набор отношений, поработать с такой БД, а потом вдруг восстановить отношение R из имеющегося набора отношений, то результат должен быть таким же, как если бы мы работали с исходным отношением R.

Очень редко таблица, находящаяся в 4НФ, не соответствует 5НФ.

Это те ситуации, в которых реальные правила, ограничивающие допустимые комбинации атрибутов, никак не выражены в структуре таблицы (например, правила определённого бизнеса).

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

В этом случае существует риск возникновения аномалий данных. Пятая нормальная форма исключает возникновение таких аномалий.

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

Отношение {Продавец, Фирма, Вид товара} соответствует 4НФ, однако не отражает ограничения, связанного с ассортиментом продукции фирм. Может возникнуть кортеж, в котором фирме будет соответствовать вид товара, который она не выпускает.

В данном случае (для приведения к 5НФ) отношение должно быть разбито на три: {Продавец, Фирма}, {Фирма, Вид товара}, {Продавец, Вид товара}.

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