Учитывая
A -> BCD
BC -> DE
C -> D
D -> A
, чтобы получить каноническое покрытие, мы сначала удаляем D из BC-> DE:
A -> BC
BC -> E
C -> D
D -> A
Далее мы наблюдаем, что C-> D, D->A, A-> BC, и если мы знаем B-> E, то мы также знаем C-> E.Следовательно,
A -> BC
B -> E
C -> D
D -> A
3NF декомпозиция работает следующим образом:
1) Создание таблиц для каждой зависимости в каноническом покрытии
R1(A,B,C) R2(B,E) R3(C,D) R4(A,D)
2) Определение ключей-кандидатов в RЕсли в таблицах шага 1 нет ключей-кандидатов, добавьте новую таблицу, содержащую только атрибуты ключа-кандидата.
Здесь A - ключ-кандидат, и он содержится в R1 (и R4), поэтомуновые таблицы добавлять не нужно.
3) Если есть таблица, в которой ее атрибуты являются подмножеством атрибутов другой таблицы, удалите «содержащуюся» таблицу.
Это неприменимотаким образом, разложение 3NF остается неизменным.
Как видите, циклические зависимости не являются проблематичными.