正規化
什麼是正規化?
資料正規化是在關聯式資料庫中建構資訊以減少資料冗餘的過程。正規化資料可確保資料庫中的表格盡可能有效地運作,消除歧義,使每個表格都服務於單一目的。
從反正規化資料庫移至正規化資料庫時,您可能需要分解現有的表格,以建立更多額外的小型表格。這些新表格將具有更狹窄的焦點,並將透過實體和外來鍵連結到其他表格。正規化帶來額外的好處,即減少整體資料庫大小並簡化資料庫維護,因為您不再在多個位置儲存相同的資訊。
資料正規化範例
正規化過程依照相互建立的規則進行,這些規則稱為正規形式。第一正規形式 (1NF) 規定欄位不應在單一儲存格內儲存多個值,且表格中的每個欄位都應是唯一的。以下範例
反正規化表格
產品 ID | 產品名稱 | 產品顏色 1 | 產品顏色 2 |
---|---|---|---|
P001 | 針織開襟衫 | 粉紅色 | 褐紅色 |
P002 | 喇叭褲 | 海軍藍 | |
P003 | 亞麻背心 | 駝色 | 米白色 |
P004 | 跑鞋 | 橘色 |
您會注意到我們有兩個欄位包含類似的資訊,關於產品顏色。為了使此表格符合 1NF,我們需要將此表格分解成兩個可以聯結在一起的個別表格。
正規化產品名稱表格
產品 ID | 產品名稱 |
---|---|
P001 | 針織外套 |
P002 | 喇叭褲 |
P003 | 亞麻背心 |
P004 | 跑鞋 |
正規化產品顏色表格
產品 ID | 產品顏色 |
---|---|
P001 | 粉紅色 |
P001 | 褐紅色 |
P002 | 海軍藍 |
P003 | 駝色 |
P003 | 米白色 |
P004 | 橘色 |
請查看我們的學習文章,以取得2NF 和 3NF 的範例。雖然超出這三種的正規形式確實存在,但它們的使用在很大程度上是理論性的,前三種應足以滿足大多數實際的資料庫需求。