
3.5 НФБК. Алгоритм декомпозиции отношений в НФКБ (Нормальная форма Бойса-Кодда)
Если отношение находиться в 3НФ, то в некоторых случаях у этих отношений могут быть аномалии обновления. Эта ситуация относится к редким случаям, когда отношение имеет несколько возможных сложных ключей (т.е состоящих из нескольких атрибутов) и часто эти ключи содержат общие атрибуты. Проблемы решает усиленная 3НФ или нормальная форма Бойса-Кодда.
3.5.1 НФБК (определение) отношение находиться в НФБК, если и только если каждый детерминант отношения является возможным ключом.
1.Возможный ключ. (термин)
Возможный ключ представляет собой атрибут или набор атрибутов, который может быть использован для данного отношения в качестве первичного ( основного) ключа. Однако не исключено наличие других возможных ключей, которые могли бы быть, но не были использованы в качестве первичного ключа.
2. Детерминант (термин)
Если А->В есть функциональная зависимость и В не зависит функционально от любого подмножества А, то говорят что А представляет собой детерминант.
R…. до 1 (?)
3.5.2 Алгоритм проектирования отношений находящихся в НФБК.
Пусть заданно отношение R (А, В, С, D, Е) с набором функциональных зависимостей F.
-
Выделим в наборе ФЗ F, присущих отношению R, ФЗ имеющие детерминанты не являются возможным ключом.
-
Создадим два новых отношения R1 и R2 таким образом:
Если R (А, В, С, D, Е) исходное отношение и С->D выделенная ФЗ, то схема R1 будет иметь вид : R1 (A,B,C,E) и схема R2 будет иметь вид: R2 (C,D).
R2 находится в НФКБ и называется проекцией R
-
Проверим находиться ли в НФБК отношение R1
-
Если да, то декомпозиция заканчивается, если нет, то возвращаемся к шагу 1, и анализируем отношение R1.
Пример 1 на применение алгоритма проектирования отношений, находящихся в НФБК.
|
A |
B |
E |
C |
D |
служащий |
(номер_служ, |
фамилия, |
зарплата, |
номер_проекта, |
дата_оконч) |
Функциональные зависимости F:
{номер_служ → фамилия
номер_служ → зарплата
номер_служ → номер_проекта
номер_служ → дата_оконч
номер_проекта → дата_оконч}
номер_служ – возможный ключ
Выделим номер_проекта → дата_оконч
R2 (номер_проекта, дата_оконч)
R1 (номер_служ, фамилия,
зарплата, номер_проекта)
Пример 2.
R (А, В, С, D, Е)
F={
}
Т.е. B->C
B->D
По правилам вывода ФЗ B->СD
и R2 (B,C,D)
a R1 (A,B,E)
В этом примере мы использовали правило вывода ФЗ. Этих правил всего 6.
Три основных – их называют правилами Армстронга, и 3 дополнительных.