Normalization
DB Normalization 是純粹基於主鍵完成的,還是基於所有候選鍵完成的?
在參考網際網路和教科書時,我遇到了兩種規範化過程。即。
類型 1。僅基於主鍵的範式。
在這種類型中,
-> 2NF 不允許對主鍵的部分依賴。
-> 3NF 不允許對主鍵的傳遞依賴。
類型 2。基於所有候選鍵的更通用的範式
在這種類型中,
考慮了對所有候選鍵的部分依賴和傳遞依賴。
在我提到的大多數網站中,我發現了僅基於第一種類型的教程和註釋。但是 Navathe 和 Elmasri 的教科書“數據庫系統基礎”描述了這兩種類型。甚至維基百科關於 2NF 的頁面也單獨提到了基於第二種類型的“2NF 和候選鍵”。
但是教科書和維基都沒有提到哪種類型更好或哪種類型實際上更受歡迎。
當沒有提及類型時,應該遵循哪種類型?希望你明白我的問題。
請幫我解決這個問題。
規範化與所有候選鍵有關。主鍵只是一個候選鍵。主鍵與任何其他候選鍵沒有什麼不同。
可能會出現混淆,因為在關係數據庫理論的早期,術語主鍵用於表示任何和所有候選鍵,而現代用法是主鍵僅表示“首選”或被認為對數據庫使用者具有特殊意義的一個鍵. 不幸的是,您在網上甚至在印刷品中看到的許多“定義”都是錯誤的。