Разложить следующее отношение в BCNF
Дана связь R с атрибутами A, B, C, D, E и набором функциональных зависимостей A->B, BC->E, ED->A. Разложите его в нормальную форму.
1 ответ
Из определения ключа кандидата:
В реляционной модели баз данных ключ-кандидат отношения является минимальным суперключем для этого отношения; то есть набор атрибутов, таких что:
- Отношение не имеет двух разных кортежей (т. Е. Строк или записей на общем языке базы данных) с одинаковыми значениями для этих атрибутов (что означает, что набор атрибутов является суперключем)
- Не существует подходящего подмножества этих атрибутов, для которого выполняется (1) (что означает, что множество минимально).
Учитывая только FD C
а также D
прийти на левой стороне, что означает, что каждый ключ должен обладать C
а также D
,
закрытие (CD) не равно всем атрибутам, однако из FD мы можем ясно видеть, что:
закрытие (CDA) = закрытие (CDB) = закрытие (CDE) = набор всех атрибутов, это означает, что все три CDA
, CDB
а также CDE
являются ключами-кандидатами.
Теперь давайте следовать алгоритму разложения BCNF, приведенному в этой лекции в Стэнфорде.
Дана схема Р.
- Вычислить ключи для R.
- Повторяйте, пока все отношения не будут в BCNF.
- Выберите любой R', имеющий FD A -> B, который нарушает BCNF.
- Разложить R'на R1(A,B) и R2(A, остальные атрибуты).
- Вычислить FD для R1 и R2.
- Вычислить ключи для R1 и R2.
A-->B
нарушает BCNF, так как A не является ключом, поэтому мы разлагаем R на
R1(A,C,D,E) и R2(A, B).
R2 сейчас в BCNF, но R1 не из-за FD ED-->A
, как ED
это не ключ. Таким образом, мы разлагаем R1 далее как:
R3 (C, D, E) и R4(A,E,D), теперь явно оба R3 и R4 находятся в BCNF.