Нормальная форма Бойса-Кодда (НФБК)
Пример:
Подсистема П | Подпрограмма S | Параметр Р |
А | SUB 1 | P1 |
В | SUB 1 | P1 |
В | SUB 2 | P2 |
С | SUB 1 | P1 |
|
1) В подсистеме каждая подпрограмма вычисляет только один параметр;
2) Каждый параметр вычисляется только одной подпрограммой.
Данное отношение находится в 3-ей НФ , так как в нем отсутствуют непервичные атрибуты.
Ключи = { ПS, ПP }
Можно выявить следующие особенности этого отношения:
- имеется избыточность информации из-за дублирования пар S и P;
- кроме того, имеется такая аномалия, что нельзя записать информацию о параметре, вычисляемом в некоторой подсистеме, если пока неизвестна подпрограмма, которая вычисляет этот параметр.
Таким образом, 3 НФ может обладать подобными нежелательными свойствами. Чтобы избавиться от них, необходимо использовать так называемую нормальную форму Бойса-Кодда.
· Схема отношений R находится в нормальной форме Бойса-Кодда (НФБК) относительно множества ФЗ-тей F, если она находится в 1-ой НФ и всякий раз, когда в F+ имеет место зависимость Х®А, где А¢Ï Х и Х включает в себя некоторый ключ отношения R.
Иными словами, допускаются только такие нетривиальные зависимости (не типа Х®Х), в которых ключ функционально определяет 1 или более атрибутов. Отношение может быть в 3 НФ, но не быть в НФБК.
В рассмотренном примере имеется нетривиальная зависимость P®S и в то же время Р не является ключом.
Теорема: Любая схема отношения, находящаяся в НФБК относительно F, находится и во в 3-ей НФ.
Пример:
Приведение к НФБК превращает одно отношение в два.
Первое ПР с ключом {ПР}, второе SP с ключом Р.
П | Параметр Р | ||||||||
А | P1 | ||||||||
В | P1 | ||||||||
![]() ![]() | P2 | ||||||||
| P1 |
Проблемы НФБК:
· Схема БД находится в некоторой НФ, если каждое отношение этой БД находится в этой НФ.
Справедливо, что при заданном множестве ФЗ-тей, приписанных схеме БД, над схемой можно произвести преобразование, приводящее ее в 3-ю НФ. Эта форма полностью характеризует ФЗ-ти. Все соединения отношений осуществляется без потери информации.
Для НФБК подобное утверждение уже неверно, так как не всегда можно найти схему БД, полностью характеризующую множество ФЗ-тей F.