數據庫規範化基礎

規範化你的數據庫

如果你一直在使用數據庫一段時間,你有可能聽說過術語規範化。 也許有人問你“數據庫是否正常化?” 或者“ BCNF中是這樣嗎?” 正常化經常被忽視,只有學者才有時間享受奢侈品。 但是,了解規範化原則並將其應用於日常數據庫設計任務並不是那麼複雜,並且可以大大提高DBMS的性能。

在本文中,我們將介紹標準化的概念並簡要介紹一下最常見的標準形式。

什麼是標準化?

規範化是有效組織數據庫中的數據的過程。 規範化過程有兩個目標:消除冗餘數據(例如,將相同的數據存儲在多個表中)並確保數據依賴性有意義(僅將相關數據存儲在表中)。 這些都是值得的目標,因為它們減少了數據庫消耗的空間量,並確保數據在邏輯上存儲。

正常形式

數據庫社區製定了一系列確保數據庫正常化的指導原則。 這些被稱為正常形式,並從一個(歸一化的最低形式,被稱為第一正常形式或1NF)到五個(第五正常形式或5NF)編號。 在實際應用中,您經常會看到1NF,2NF和3NF以及偶爾的4NF。 第五範式很罕見,本文不討論。

在我們開始討論正常形式之前,重要的是要指出它們只是指導性和指導性的。 偶爾,有必要偏離他們以滿足實際業務需求。 但是,如果發生變化,評估系統可能產生的任何後果以及可能的不一致性非常重要。 這就是說,我們來探索一下正常的形式。

第一範式(1NF)

第一範式(1NF)為有組織的數據庫設定了非常基本的規則:

第二範式(2NF)

第二範式(2NF)進一步解決了刪除重複數據的概念:

第三範式(3NF)

第三範式(3NF)更進一步:

博伊斯 - 科德範式(BCNF或3.5NF)

博伊斯 - 科德範式也被稱為“三分之一(3.5)正常形式”,增加了一項要求:

第四範式(4NF)

最後,第四範式(4NF)還有一個額外要求:

請記住,這些規範化指南是累積的。 要使數據庫處於2NF中,它必須首先滿足1NF數據庫的所有條件。

我應該正常化嗎?

雖然數據庫正常化通常是一個好主意,但這不是絕對的要求。 事實上,有些情況下故意違反正常化規則是一種好的做法。 有關此主題的更多信息,請閱讀我應該規範化我的數據庫嗎?

如果你想確保你的數據庫是正常化的,從學習如何把數據庫放到第一範式開始