2014-10-30 66 views
3

如果我有下列關係R =(A,B,C,d)規範化3NF和BCNF

和功能依賴關係:

  • A - > B,B - > A,CDB - > A,CDA - >乙

候選鍵是CDACDB

第三種正常形式表示不存在非素數屬性之間的函數依賴關係。非主要屬性是在其中一個候選鍵中不存在的屬性。那麼這意味着這個關係已經是3NF了,因爲A和B彼此相關,都是候選鍵之一,對嗎?

如果是這樣,我還有一個關於BCNF的問題。 BCNF表示,每個決定因素都必須是候選關鍵字。在這種情況下,A和B不是候選鍵,所以違反了BCNF,還是我在這裏丟失了某些東西?

謝謝。

+0

由於這不是一個代碼問題,而且更理論化,所以最好在http://programmers.stackexchange.com上提問。 – 2014-10-30 13:49:26

回答

4

如果您給出的三個FD應該是由R滿足的FD的規範封面,那麼您有權得出結論:CDA和CDB必須是候選密鑰。 (你沒有說明FD是規範的,如果不是,那麼還有其他方法可以滿足相同的依賴關係,但我猜這個問題的意圖是候選鍵必須只從你給出的內容推斷出來。)

如果CDA和CDB實際上是R的候選鍵,那麼你是正確的,R滿足3NF但不是BCNF。