Normalization

這個表是第三範式嗎?

  • April 30, 2016

我有一張桌子 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

  1. 任一個 X 都是超級鍵

  2. 或 Y 是主要屬性。

在這裡,以你的問題為例。R(A,B,C) FD : A->BC, B->AC

對於 FD,左側 A 和 B 都是超級鍵(在本例中為 ck)。所以,它在 3NF(因此,2NF)

引用自:https://dba.stackexchange.com/questions/67898