Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

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

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

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

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

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

Пример 1

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

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

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

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

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

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

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

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

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

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

Пример 2

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

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

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

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

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

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

Дата написания статьи: 19.09.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot