Разложить следующее отношение в BCNF

Дана связь R с атрибутами A, B, C, D, E и набором функциональных зависимостей A->B, BC->E, ED->A. Разложите его в нормальную форму.

1 ответ

Из определения ключа кандидата:

В реляционной модели баз данных ключ-кандидат отношения является минимальным суперключем для этого отношения; то есть набор атрибутов, таких что:

  1. Отношение не имеет двух разных кортежей (т. Е. Строк или записей на общем языке базы данных) с одинаковыми значениями для этих атрибутов (что означает, что набор атрибутов является суперключем)
  2. Не существует подходящего подмножества этих атрибутов, для которого выполняется (1) (что означает, что множество минимально).

Учитывая только FD C а также D прийти на левой стороне, что означает, что каждый ключ должен обладать C а также D,

закрытие (CD) не равно всем атрибутам, однако из FD мы можем ясно видеть, что:

закрытие (CDA) = закрытие (CDB) = закрытие (CDE) = набор всех атрибутов, это означает, что все три CDA, CDB а также CDE являются ключами-кандидатами.

Теперь давайте следовать алгоритму разложения BCNF, приведенному в этой лекции в Стэнфорде.

Дана схема Р.

  1. Вычислить ключи для R.
  2. Повторяйте, пока все отношения не будут в 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.