Схема R = (A,B,C,D,E)
Функциональная зависимость F1 = {A->BC , CD->E, B->D, E->A}
Функциональная зависимость F2 = {A->D, A->E, DE->BC, B- >А, Г->В}
По F1, ключи-кандидаты - A, E, BC, CD
По F2, ключи-кандидаты - A, B, DE
Условие нахождения схемы в 3НФ:
Для всех X->Y верно хотя бы одно из следующего:
1. X является суперключом
2. X->Y тривиально (что is,Y принадлежит X)
3. Каждый атрибут YX содержится в ключе-кандидате
Я знаю, что R находится в 3NF в соответствии с F1, но не в 3NF в соответствии с F2.
R не находится в 3NF в соответствии с F2, потому что в функциональной зависимости D->C,
1. D не является суперключом
2. D->C не является тривиальным
3. CD, который является C, не является содержится в любых ключах-кандидатах.
Таким образом, R не находится в 3NF согласно F2.
Теперь, как я могу преобразовать его в 3NF?
Я попробовал следующее:
Разложить R на (A,B,D,E) (C,D) (B,C,D,E) таким образом, чтобы зависимость также сохранялась.
Правильно ли это и есть ли другой способ разложения?