BCNF Разложение - PullRequest
       3

BCNF Разложение

10 голосов
/ 06 декабря 2010

Я пытаюсь выяснить правильные шаги при выполнении разложения BCNF. Я нашел этот пример, но я не понимаю, как выполнить правильные шаги.

Схема = (A, B, C, D, E, F, G, H) FD's + {A -> CGH, AD-> C, DE-> F, G-> G}

Может ли кто-нибудь показать правильные шаги?

1 Ответ

11 голосов
/ 06 декабря 2010

Определите минимальное покрытие, используя ваши FD:

{A -> C, A -> G, A -> H, 
 B -> nothing, 
 C -> nothing,
 D -> nothing,
 E -> nothing,
 F -> nothing
 G -> nothing
 H -> nothing
 DE -> F}

Примечание AD -> C выпадает, потому что только A определяет C, что означает, что D является избыточным в FD (см. Аксиомы Армстронга -Увеличение).

3NF и определения BCNF относятся к зависимостям ключей компоновки.Единственный составной ключ, который у вас есть, это DE.Ни D, ни E не участвуют ни в каких других ненулевых FD, поэтому устранение транзитивных зависимостей и обеспечение того, чтобы зависимые атрибуты основывались на «ключе, целом ключе и только ключе», здесь не является проблемой.

Разрыв в отношениях, так что левая сторона FD является ключом, а правые части являются неключевыми зависимыми атрибутами этого ключа:

[Key(A), C, G, H]
[Key(D, E), F]

Теперь удалите эти атрибуты из обложки, независимо от того,оставлены автономные отношения.

[Key(B)]

Это должно быть в 3NF / BCNF

...