Реклама


4NF

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

Определение[ | код]

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

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

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

Пример[ | код]

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

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

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

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

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

См. также[ | код]

Примечания[ | код]

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

Литература[ | код]

Российская

Переводная

Иностранная

Реклама