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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Четвёртая нормальная форма (4NF) — одна из возможных нормальных форм отношения реляционной базы данных.

Определение[править | править вики-текст]

Переменная отношения R находится в четвёртой нормальной форме, если она находится в НФБК и все нетривиальные многозначные зависимости фактически являются функциональными зависимостями[1] от её потенциальных ключей.

Эквивалентная формулировка определения:

Переменная отношения R находится в четвёртой нормальной форме тогда и только тогда, когда в случае существования таких подмножеств A и B атрибутов этой переменной отношения R, для которых выполняется нетривиальная многозначная зависимость A →→ B, все атрибуты переменной отношения R также функционально зависят от А[2].

Пример[править | править вики-текст]

Предположим, что рестораны производят разные виды пиццы, а службы доставки ресторанов работают только в определенных районах города. Составной первичный ключ соответствующей переменной отношения включает три атрибута: {Ресторан, Вид пиццы, Район доставки}.

Такая переменная отношения не соответствует 4НФ, так как существует следующая многозначная зависимость:

  • {Ресторан} \twoheadrightarrow {Вид пиццы}
  • {Ресторан} \twoheadrightarrow {Район доставки}

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

Для предотвращения аномалии нужно декомпозировать отношение, разместив независимые факты в разных отношениях. В данном примере следует выполнить декомпозицию на {Ресторан, Вид пиццы} и {Ресторан, Район доставки}.

Однако если к исходной переменной отношения добавить атрибут, функционально зависящий от потенциального ключа, например цену с учётом стоимости доставки ({Ресторан, Вид пиццы, Район доставки} → Цена), то полученное отношение будет находиться в 4НФ и его уже нельзя подвергнуть декомпозиции без потерь.[источник не указан 664 дня] Указанные выше многозначные зависимости в данном случае называются внедрёнными зависимостями.

Примечания[править | править вики-текст]

  1. Функциональная зависимость является многозначной зависимостью, в которой множество зависимых значений, соответствующее заданному значению детерминанта, всегда имеет единичную мощность (является одноэлементным).
  2. Дейт К. Дж., 2005

Литература[править | править вики-текст]

Отечественная

Переводная

Иностранная