2010-12-06 138 views
10

我想弄清楚執行BCNF分解的正確步驟。我發現這個例子,但我不明白如何執行正確的步驟。BCNF分解

架構=(A,B,C,d,E,F,G,H) FD的+ {A - > CGH,AD-> C,DE->女,G->綠}

有人可以顯示正確的步驟嗎?

+0

你有沒有發現你的家庭作業這個例子嗎? – 2010-12-06 16:08:49

+0

不,這是在教科書,但當然沒有回答。我試圖找到更多的例子,以幫助我進入決賽。 – Mike 2010-12-06 16:28:56

回答

11

使用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定義涉及關於複合鍵的依賴關係。您在這裏唯一的複合鑰匙 是DEDE都不參與任何其他非空FD的 ,因此消除傳遞依賴關係並確保依賴屬性依賴於密鑰,整個密鑰以及除此之外的其他內容都不是問題。

闖入關係,使FD左邊是關鍵,右手邊 是關鍵的非鍵相關的屬性:

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

現在消除了蓋,這些屬性什麼剩下的是獨立關係。

[Key(B)] 

這應該是3NF/BCNF