Справочник от Автор24
Нужна помощь?
Найдем эксперта за 5 минут
Подобрать эксперта
+2

BCNF – нормальная форма Бойса-Кодда

Нормальная форма Бойса-Кодда (BCNF) вводит дополнительное ограничение по сравнению с третьей нормальной формой.

Нормальная форма Бойса-Кодда

Определение 1

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

Отношение может находиться в третьей нормальной форме, но не в нормальной форме Бойса-Кодда, при условии, что оно имеет 2 или больше возможных ключа, являющихся составными и имеющих общий атрибут. Обратим внимание, что в практической деятельности подобная ситуация может встретиться довольно редко, для всех остальных отношений третья нормальная форма и нормальная форма Бойса-Кодда являются эквивалентными.

Пример 1

Рассмотрим таблицу «Оплата за работу» (рисунок 1).

Ключ таблицы – атрибут Номер_Работника, поэтому, в таблице существуют функциональные зависимости:

Номер_Работника $\to$ Стаж;

Номер_Работника $\to$ Оплата.

К тому же существует функциональная зависимость: Стаж $\to$ Оплата.

Атрибут СТАЖ является детерминантой, поскольку им однозначно определяется атрибут ОПЛАТА, но атрибут СТАЖ не может являться ключом отношения, следовательно в таком виде отношение ОПЛАТА ЗА РАБОТУ не удовлетворяет нормальной форме Бойса-Кодда. Но таблица «Оплата за работу» удовлетворяет второй нормальной форме (поскольку атрибуты СТАЖ и ОПЛАТА – неключевые). Следовательно, таблица может находиться во второй нормальной форме, но не в нормальной форме Бойса-Кодда.

Таблица «Оплата за работу». Автор24 — интернет-биржа заказчиков и авторов

Рассмотрим недостатки таблиц, которые не удовлетворяют нормальной форме Бойса-Кодда. Ими вызываются проблемы, которые схожи с проблемами таблиц, которые не удовлетворяют второй нормальной форме:

«BCNF – нормальная форма Бойса-Кодда» 👇
Помощь автора по теме работы
Найти автора
Решение задач от ИИ за 2 минуты
Решить задачу
Более 10 нейросетей для написания рефератов и решения задач
Найти нейросеть
  1. Повтор размера премиальных для каждого типа специальности в каждой строке, которая относится к работнику данной специальности. Таким образом таблица содержит избыточные данные, которые занимают лишнее место.
  2. При изменении размера премиальных для типа специальности необходимо выполнять обновление каждой строки. При удалении строки возможна утрата информации о размере премиальных для этой специальности. Следовательно, таблица подвергается аномалии удаления и обновления.
  3. При отсутствии в какой-либо момент времени работников данной специальности может не быть строки, в которой возможно хранение размера премиальных. Таблица подвержена аномалии ввода.

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

Пример 2

Рассмотрим таблицу «Работник 1» (рисунок 2), которая получена удалением из таблицы «Оплата за работу» всех атрибутов, которые стоят в правой части функциональных зависимостей и нарушают критерий нормальной формы Бойса-Кодда. В данном примере таким атрибутом является атрибут ПРЕМИАЛЬНЫЕ.

Таблица «Работник 1». Автор24 — интернет-биржа заказчиков и авторов

Рассмотрим новую таблицу «Работник 2» (рисунок 3), которая включает атрибуты из левой и правой части функциональной зависимости, которая нарушает критерий нормальной формы Бойса-Кодда. В данном примере это ПРЕМИАЛЬНЫЕ и СПЕЦИАЛЬНОСТЬ. Ключом будет детерминант функциональной зависимости СПЕЦИАЛЬНОСТЬ.

Таблица «Работник 2». Автор24 — интернет-биржа заказчиков и авторов

Таблица «Оплата за работу» была разбита на таблицы «Работник 1» и «Работник 2», которые удовлетворяют нормальной форме Бойса-Кодда.

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

Дата написания статьи: 19.09.2016
Не знаешь, как приступить к заданию?
За 5 минут найдем эксперта и проконсультируем по заданию. Переходи в бота и получи скидку 500 ₽ на первый заказ.
Запустить бота
Нужна помощь с заданием?

Эксперт возьмёт заказ за 5 мин, 400 000 проверенных авторов помогут сдать работу в срок. Гарантия 20 дней, поможем начать и проконсультируем в Telegram-боте Автор24.

Перейти в Telegram Bot