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

 

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

 

Определение 7.3. Нормальная форма Бойса-Кодда

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

 

Переменная отношения СЛУЖ_ПРО_ЗАДАН1 может быть приведена к BCNF путем одной из двух декомпозиций: СЛУЖ_НОМ_ИМЯ{СЛУ_НОМ, СЛУ_ИМЯ}и СЛУЖ_НОМ_ПРО_ЗАДАН{ СЛУ_НОМ, ПРО_НОМ, СЛУ_ЗАДАН}с множеством FD и значениями, показанными на рис. 7.8, и СЛУЖ_НОМ_ИМЯ{СЛУ_НОМ, СЛУ_ИМЯ}и СЛУЖ_ИМЯ_ПРО_ЗАДАН{СЛУ_ИМЯ, ПРО_НОМ, СЛУ_ЗАДАН}(FD и значения результирующих переменных отношений выглядят аналогично).

 

Диаграммы FD отношений СЛУЖ_НОМ_ИМЯи СЛУЖ_НОМ_ПРО_ЗАДАН

       
   
 
 

 

 


Значение переменной отношения СЛУЖ_НОМ_ИМЯ

 

СЛУ_НОМ СЛУ_ИМЯ
Иванов
Иваненко

 

Значение переменной отношения СЛУЖ_ПРО_ЗАДАН

 

СЛУ_НОМ ПРО_НОМ ПРО_ЗАДАН
A
B
B
A

 

Рис. 7.8. Диаграммы FD и значения переменных отношений

СЛУЖ_НОМ_ИМЯи СЛУЖ_НОМ_ПРО_ЗАДАН

Очевидно, что каждая из декомпозиций устраняется трудности, связанные с обновлением отношения СЛУЖ_ПРО_ЗАДАН1.