Помощь в написании студенческих работ
Антистрессовый сервис

Нормальная форма Бойса — Кодда (НФБК)

РефератПомощь в написанииУзнать стоимостьмоей работы

В данном примере имеются перекрывающиеся потенциальные ключи: {" Заказ", «Товар» } и {" Заказ", «Поставщик» }. Имеющееся отношение находится в третьей нормальной форме, но не в нормальной форме Байса — Кодда. Это вызывает аномалии обновления, мешающие корректно хранить и обрабатывать данные. В итоге, данное отношение стоит разбить на два отношения (рис. 2.80). Казалось бы, проблемы связи заказа… Читать ещё >

Нормальная форма Бойса — Кодда (НФБК) (реферат, курсовая, диплом, контрольная)

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

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

Предположим, что рассматриваемое отношение содержит три атрибута — «Заказ», «Товар» и «Поставщик» (рис. 2.79), при этом обладает некоторыми ограничениями:

  • • в каждом заказе указывается определенный товар от одного поставщика;
  • • каждый поставщик поставляет только один товар;
  • • определенный товар могут поставлять несколько поставщиков.

Рис. 2.79. Функциональные зависимости примера перекрывающихся ключей.

Рис. 2.79. Функциональные зависимости примера перекрывающихся ключей.

В данном примере имеются перекрывающиеся потенциальные ключи: {" Заказ", «Товар» } и {" Заказ", «Поставщик» }. Имеющееся отношение находится в третьей нормальной форме, но не в нормальной форме Байса — Кодда. Это вызывает аномалии обновления, мешающие корректно хранить и обрабатывать данные. В итоге, данное отношение стоит разбить на два отношения (рис. 2.80).

Рис. 2.80. Нормализация отношения с перекрывающимися ключами.

Рис. 2.80. Нормализация отношения с перекрывающимися ключами.

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

Правило перехода ЗНФ -> НФБК Если отношение находится в ЗНФ и существуют функциональные зависимости, где детерминанты не являются потенциальными ключами, то такие зависимости необходимо выделить в отдельные отношения.

Другим примером перекрывающихся потенциальных ключей может быть такой: зависимость количества товара от детерминанта «Товар» «Заказ» и зависимость ценового сегмента от детерминанта «Товар» — «Поставщик». Этот пример наиболее приближен к реалиям предметной области, поскольку количество товара в заказе должно определяться совокупностью атрибутов «Заказ» и «Товар», а ценовой сегмент товара определяется не только самим товаром, но и поставщиком этого товара.

Этот пример представляет отношение в нормальной форме Байса — Кодда, хотя и содержит перекрывающиеся ключи (рис. 2.81), поскольку эти ключи являются единственными детерминантами для соответствующего неключевого атрибута и процесс нормализации не требуется.

Нормальная форма Бойса — Кодда (НФБК).

Рис. 2.81. Функциональная зависимость для двух отношений с перекрывающимися ключами.

  • [1] Дейт К. Дж. Введение в системы баз данных.
Показать весь текст
Заполнить форму текущей работой