淺談資料庫正規化
資料庫正規化(Database normalization)
Table of Contents
又稱資料庫的標準化,
主要目的有兩個:
- 減少多餘的資料
- 保持資料的一致性
第一正規化
去除了重複的項目,
一個欄位只能有一個值
例如:
訂單號碼 | 商品代號1商品代號2 | 商品名稱1商品名稱2 |
經過第一正規化後:
訂單號碼 | 商品代號1 | 商品名稱1 |
訂單號碼 | 商品代號2 | 商品名稱2 |
第二正規化
去除了部分相關性的欄位,
在上述的範例中
訂單號碼 | 商品代號1 | 商品名稱1 |
訂單號碼 | 商品代號2 | 商品名稱2 |
商品名稱為非key值,相對於商品代號屬於部分相關
所以必須去除並新增資料表以商品代號相關聯
訂單號碼 | 商品代號 |
商品代號 | 商品名稱 |
第三正規化
去除了遞移相關性欄位
範例改為:
商品代號1 | 商品名稱1 | 商品類別號1 | 商品類別名稱1 |
商品代號2 | 商品名稱2 | 商品類別號2 | 商品類別名稱1 |
此處的類別名稱屬於非KEY值得商品類別號,
這時必須將商品類別名稱去除並以商品類別號與上方資料表相關聯
商品代號1 | 商品名稱1 | 商品類別號1 |
商品代號2 | 商品名稱2 | 商品類別號2 |
商品類別號1 | 商品類別名稱1 |
商品類別號2 | 商品類別名稱1 |
其他還有更為進階的正規化步驟,
例如:BCNF 正規化,
這些進階的正規化步驟有時因為規定較為嚴格,
相對來說執行不易,
執行正規化後的效益也有爭議,
故單純就以三個基礎的正規化步驟作結,
這就是今天的主題:
資料庫正規化
================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================