基於主鍵的正規化
規範化是組織資料庫中資料以減少冗餘並提高資料一致性的過程。主鍵在組織資料庫中的資訊方面非常重要。它們有助於確保表中的每一行都有唯一的標識,以便不會混淆或丟失任何資訊。
在本文中,我們將討論基於主鍵的不同正規化及其在確保資料一致性中的重要性。
簡介
讓我們討論如何確保資料庫中的資料得到正確的組織。我們使用“函式依賴”來幫助我們做到這一點。資料庫中的每個表都有一個稱為“主鍵”的特殊識別符號。我們還有一些規則來幫助我們正確組織資料,稱為“正規化”。
規範化中使用的金鑰型別
在資料庫管理系統 (DBMS) 的規範化中使用幾種型別的金鑰。解釋如下。

超鍵
超鍵是一組一個或多個屬性,它們唯一地標識表中的每個記錄。超鍵可能包含比唯一標識每個記錄所需的更多屬性。
候選鍵
候選鍵是最小的超鍵,可以唯一地標識表中的每個記錄。換句話說,它是一個不包含任何不必要屬性的超鍵。
主鍵
主鍵是一個已被選中用於唯一標識表中每個記錄的候選鍵。它用於強制實體完整性,通常用下劃線或鍵符號表示。
替代鍵
替代鍵是沒有被選為主鍵的候選鍵。它用於強制唯一性,並可用作另一個表中的參考鍵。
外部索引鍵
外部索引鍵是用於將兩個錶鏈接在一起的鍵。它是一個表中的一列(或一組列),它引用另一個表的主鍵。
透過使用這些不同型別的鍵,DBMS 設計人員可以確保資料得到正確的組織,沒有冗餘,並且可以高效地檢索。規範化有助於減少資料異常和不一致性,並確保資料庫具有可擴充套件性和易於維護。
基於主鍵的正規化
規範化是組織資料庫中資料以最大限度地減少冗餘和依賴性的過程。在資料庫設計中,存在基於表主鍵的不同正規化。這些包括:

第一正規化 (1NF)
1NF 要求表中的每一列都包含原子值,並且每一行都具有唯一的標識。這意味著表不能具有重複的組或陣列作為列,並且每一行都必須具有唯一的主鍵。例如,列出客戶訂單幷包含訂單項列的表違反了 1NF,因為訂單項不是原子值。
第二正規化 (2NF)
2NF 基於 1NF,要求表中的每一列非主鍵列都完全函式依賴於主鍵。這意味著表不應具有部分依賴性,其中非主鍵列僅依賴於主鍵的一部分。例如,列出客戶訂單並具有訂單 ID 的主鍵以及客戶 ID 和客戶名稱的非主鍵列的表違反了 2NF,因為客戶名稱僅依賴於客戶 ID,而不依賴於完整的主鍵。
第三正規化 (3NF)
3NF 基於 2NF,要求表中的每一列非主鍵列都不及物依賴於主鍵。這意味著表不應具有傳遞依賴性,其中非主鍵列依賴於另一列非主鍵列。例如,列出客戶訂單並具有訂單 ID 的主鍵以及客戶 ID、客戶名稱和客戶城市的非主鍵列的表違反了 3NF,因為客戶城市僅依賴於客戶 ID,而不依賴於完整的主鍵。
Boyce-Codd 正規化 (BCNF)
BCNF 是 3NF 的更嚴格的形式,適用於具有多個候選鍵的表。BCNF 要求表中的每個非平凡依賴項都是對候選鍵的依賴項。這意味著表不應具有非平凡依賴項,其中非主鍵列依賴於另一列非主鍵列。BCNF 確保資料庫中的每個表都是一個單獨的實體,並消除了冗餘。
第四正規化 (4NF)
4NF 基於 BCNF,要求表不應具有多值依賴性。當非主鍵列依賴於其他非主鍵列的組合時,就會發生多值依賴性。例如,列出客戶訂單並具有訂單 ID 的主鍵以及客戶 ID 和訂單項的非主鍵列的表違反了 4NF,因為訂單項依賴於訂單 ID 和客戶 ID。
結論
規範化是資料庫設計中的一個重要過程,它確保資料一致性並減少冗餘。主鍵透過唯一標識表中的每一行在規範化中發揮著關鍵作用。基於主鍵的不同正規化提供了一種系統的方法來確保資料一致性並消除資料異常。