Normalization
這個表是第三範式嗎?
我有一張桌子 L(A, B, C)。函式依賴是:A->B、A->C、B->A、B->C。這張桌子是 3nf 的嗎?我的想法:A和B是這張桌子的鑰匙。如果鍵和非主屬性之間沒有傳遞依賴關係,則表在 3nf 中。存在傳遞依賴A->B->C,所以不在3nf中?或者它不能以這種方式工作,因為 B 是鍵?希望我沒有讓你太困惑。謝謝。
這是一次嘗試(這對我來說不是日常活動,所以我可能會在下面犯一些奇怪的錯誤):
A 和 B 顯然是 R 的候選鍵。因此 C 是 R 的唯一非主屬性
R 在 3NF 中當且僅當:
a) R 在 2NF
b) R (C) 的每個非主屬性都非傳遞地依賴於 R 的每個超鍵。
R 的超鍵是 (A, B), (A, C), (A, B, C)
通過自反性 (A, C) -> C AND (A, B, C) -> C 通過 A->C 和 B->C 的合成,我們得到 (A, B) -> (C, C),即 ( A, B) -> C
因此,C 非傳遞地依賴於 R 的每個超鍵,因此 R 在 3NF 中。
這是一個條件,可以幫助您將來檢查關係是否處於 3NF 中(它隱式檢查 2NF,即可以直接應用於任何關係而無需檢查 2NF):
如果對於每個非平凡的函式依賴(X 不是 X->Y 中 Y 的超集),以下 2 個條件成立,則關係屬於 3NF
任一個 X 都是超級鍵
或 Y 是主要屬性。
在這裡,以你的問題為例。R(A,B,C) FD : A->BC, B->AC
對於 FD,左側 A 和 B 都是超級鍵(在本例中為 ck)。所以,它在 3NF(因此,2NF)