資料庫正規化(Database normalization),
又稱資料庫正規化或資料庫的標準化,
主要目的有兩個:
- 減少多餘的資料
- 保持資料的一致性
第一正規化
去除了重複的項目,
一個欄位只能有一個值
例如:
訂單號碼
|
商品代號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 正規化,
這些進階的正規化步驟有時因為規定較為嚴格,
相對來說執行不易,
執行正規化後的效益也有爭議,
故單純就以三個基礎的正規化步驟作結,
這就是今天的主題:
沒有留言:
張貼留言