我有一個關係無法這一關係分解成BCNF
R = { A, B, C, D, E, F, G, H, I }
而且函數依賴
F ={
ABC -> DE
E -> C
AB -> F
C -> G
F -> H
H -> IJ
F -> B
}
我能夠做簡單的BCNF分解,但我無法分解此。我有ABC作爲唯一候選人的關鍵。然後,我把它分成兩個關係擺脫打破BCNF,E -> C
第一FD的,讓我有關係
{ A, B, D, E, F, G, H, I, J } and { E, C }
但是,現在馬上我已經失去了從第一關係的候選鍵。那麼這是否意味着我現在必須爲第一個關係尋找一個新的候選關鍵詞,然後繼續分解它的過程直到我們沒有違反BCNF的關係?有人能告訴我如何解決這個問題嗎?
編輯:
行,所以這裏是我已經在做的事情:
我現在有{ A, B, D, E, F, G, H, I, J }
和{ E, C }
我找到了更大的關係,一個新的密鑰。這個新密鑰是ABDEG
?
然後我繼續分解關係分裂的關係任何地方違反BCNF。這裏是我採取的步驟:
{ A, B, D, E, F, G, H, I, J } // { E, C }
{ A, B, D, E, G, H, I, J } // { AB, F } // { E, C }
{ A, B, D, E, G, H, J } // { H, I } // { AB, F } // { E, C }
{ A, B, D, E, G, H } // { H, J } // { H, I } // { AB, F } // { E, C }
所以最後一行是我的最終結果。這似乎是在BCNF?我的答案是否正確,我是否正確分解?
如果ABC是一個候選關鍵字,那麼從E→C來看,ABE必然也是一個候選關鍵字。 – 2013-03-19 18:19:13
乾杯,沒有發現。考慮到這一點,我重新審視了我的結果,並且我仍然得到了相同的答案。 – csss 2013-03-19 18:24:51
有四個候選鍵:ABC,ABE,ACF和AEF。 – 2014-02-07 11:12:15