Normalization

2NF和3NF怎麼做

  • September 27, 2015

給定 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 結果並消除不依賴於鍵的欄位。

有很多資料可以說明如何以及為什麼要這樣做,但我更喜歡微軟的解釋:

http://support.microsoft.com/kb/283878

您的意思是有三個候選鍵:A、B 和 C?如果是這樣,您的 FD 是 A-> BCDE、B-> ACDE 和 C-> ABDE。如果沒有其他 FD 連接這些屬性,您可以停在那裡:您已經在 BCNF(以及 3NF)中。

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