Чтобы преобразовать отношение R
и набор функциональных зависимостей (FD's
) в 3NF
, вы можете использовать синтез Бернштейна. Чтобы применить синтез Бернштейна -
- Сначала мы убеждаемся, что заданный набор
FD's
является минимальным покрытием.
- Во-вторых мы берем каждый
FD
и делаем его собственной подсхемой.
- В-третьих, мы пытаемся объединить эти подсхемы
Например в вашем случае:
R = {A,B,C,D,E,G}
FD's = {BG->CD,G->A,CD->AE,C->AG,A->D}
Сначала мы проверяем, является ли FD's
минимальным покрытием (одноэлементная правая сторона , нет постороннего атрибута левой стороны, нет избыточного FD)
- Singleton RHS: Таким образом, мы можем записать наши FD как {BG->C, BG->D, G->A, CD->A, CD->E, C->A, C- >Г, А->Г}.
- Нет лишнего атрибута LHS: Мы можем удалить
D
из LHS CD->A
и CD->E
, поскольку D
здесь является лишним атрибутом (поскольку мы можем получить D
из C
, поскольку C->A и A->D ). Теперь у нас есть {BG->C, BG->D, G->A, C->A, C->E, C->G, A->D}
- Никаких избыточных FD: Обратите внимание, что здесь много избыточных зависимостей. Удалив их, мы получим {BG->C, G->A, C->E, C->G, A->D}
Во-вторых, мы создаем для каждой FD
собственную подсхему. Итак, теперь у нас есть - (ключи для каждого отношения выделены жирным шрифтом)
R1={B,G,C}
R2={G,A}< br> R3={C,E}
R4={C,G}< br> R5={A,D}
В-третьих мы смотрим, можно ли комбинировать какую-либо из подсхем. Мы видим, что R3 и R4 можно комбинировать, поскольку они имеют один и тот же ключ. Итак, теперь у нас есть -
S1 = {B,G,C}
S2 = {A,G}
S3 = {C ,E,G}
S4 = {A,D}
Это в 3NF. Теперь, чтобы проверить BCNF, мы проверяем, есть ли какие-либо из этих отношений (S1,S2,S3, S4) нарушают условия BCNF (т.е. для каждой функциональной зависимости X->Y
левая часть (X
) имеет быть суперключом). В этом случае ни один из них не нарушает BCNF, и, следовательно, он также разлагается на BCNF.
Примечание Мой последний ответ выше: (AD,AG,CGE,BCG)
. Ожидаемое вами решение — (AD,AG,CGE,BC)
, но это неверно. Последнее отношение здесь (S1) также должно иметь атрибут G
, как показано выше.
person
Karup
schedule
18.12.2015