Normalization
2NF和3NF怎麼做
給定 E(ABCDE) ABC 是候選鍵
正規化為 2NF 和 3NF
就 2NF 而言,解決方案非常簡單:
E1(BD), E2(DE), E3(ABC)
但是關於 3NF,如果我說什麼都不應該做,我認為我錯了。
也許
3NF schema
是:E1(ABC), E2(BD)
這是正確的嗎?
非常感謝
所以根據@OliverAsmus,3NF 結果應該是:
E1(ABC), E2(BD)
但如果我寫的是正確的,我認為 3NF(在這種特殊情況下)不保留所有屬性是否正確?E 不依賴於任何鍵,所以我擺脫了它……
那是對的嗎?謝謝
你在正確的軌道上。仔細查看你的 2NF 結果——這就是 3NF 結果的來源。您的下一個任務是獲取 2NF 結果並消除不依賴於鍵的欄位。
有很多資料可以說明如何以及為什麼要這樣做,但我更喜歡微軟的解釋:
您的意思是有三個候選鍵:A、B 和 C?如果是這樣,您的 FD 是 A-> BCDE、B-> ACDE 和 C-> ABDE。如果沒有其他 FD 連接這些屬性,您可以停在那裡:您已經在 BCNF(以及 3NF)中。