正規化為驗證經E-R Model產出的資料表是否適當、有無滿足Transaction ACID。

正規化做越細,有利於「增刪修」,但不利於「查詢」。

範例說明:老闆要做電腦化,需求就是電腦化,無法產出E-R Model,便從實體的「訂單」下手。

Step1:找出可能的實體「訂單」

實體

Step2:第一正規化(分離主鍵值重覆欄位)

【思考方向】一張訂單只有一個訂單日期、屬於一個客戶;但可以有很多產品,故下圖粉紅虛線框選處為重覆欄位,必須拆成另一個「訂單明細」資料表,「訂單明細」資料表的主鍵是訂單編號+產品編號。▼綠色的「訂單」、「訂單明細」即完成第一正規化。

第一正規化

Step3:第二正規化(獨立不完全依附主建值欄位)

【思考方向】產品名稱由產品編號決定,故下圖粉紅虛線框選處需拆出另一個「產品」資料表,如下圖。「訂單」、「產品」、「訂單明細」即完成第二正規化。

 第二正規化

Step4:第三正規化(獨立完全不依附主鍵值欄位)

【思考方向】客戶名稱由客戶編號決定,故下圖粉紅虛線框選處需拆出另一個「客戶」資料表,如下圖。「訂單」、「客戶」、「產品」、「訂單明細」即完成第三正規化。為確保交易一致性<ACIDC>,至少要做到第三正規化!

第三正規化

其它:

1.如果由E-R Model產出資料表,在設定實體間的關聯性中,有一對一、一對多、多對多關係,但是多對多不可直接關連,必須要拆成二個一對一關聯;如果是一對一關聯,則應考慮是否合併。

2.主鍵(PK)的設定原則:數字優於字串、型別越小越好。(布林>數值>日期>字串)

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Rinoa 的頭像
    Rinoa

    褪色的世界.斑剝的記憶

    Rinoa 發表在 痞客邦 留言(0) 人氣()