0
所以我有FD的關係模式,它看起來像這樣:確定BCNF侵犯
R(A,B,C,D): AB -> C, B -> D, CD -> A, AD -> B
現在我試圖找到所有的BCNF侵犯,然後分解表。我計算的所有FD的左側,發現這個:
AB+ = {A, B, C, D}
B+ = {B, D} <- violation
CD+ = {C, D, A, B}
AD+ = {A, D, B, C}
所以我分解表看起來像這樣:
R1 (B, D)
R2 (A, B, C)
唯一的問題是,我不知道這是我在分解表格時必須要做的,或者我必須做更多的事情。我主要對AB,CD和AD部分感到困惑。
我唯一想知道的是CD和AD,所以我認爲我沒有辦法保留這些依賴關係。 –
是的,衆所周知,分解BCNF中的關係的算法可能會導致依賴關係的丟失。考慮例如AD-> B。爲了保持這種依賴關係,你可以添加一個新的關係ADB,但是它將具有違反正常形式的依賴關係B-> D。所以你應該分解BD和AB,並且你將失去依賴。 – Renzo