1. 程式人生 > >三正規化-簡單理解

三正規化-簡單理解

文章部分內容擷取自韓順平老師教學資料。

什麼樣的表才是符合3NF (正規化)

表的正規化,是首先符合1NF, 才能滿足2NF , 進一步滿足3NF

 

1NF: 即表的列的具有原子性,不可再分解,即列的資訊,不能分解, 只有資料庫是關係型資料庫(mysql/oracle/db2/informix/sysbase/sql server),就自動的滿足1NF

 

2NF: 表中的記錄是唯一的, 就滿足2NF, 通常我們設計一個主鍵來實現

 

3NF: 即表中不要有冗餘資料, 就是說,表的資訊,如果能夠被推匯出來,就不應該單獨的設計一個欄位來存放. 比如下面的設計就是不滿足3NF:

 

 

 

反3NF : 但是,沒有冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。具體做法是: 在概念資料模型設計時遵守第三正規化,降低正規化標準的工作放到物理資料模型設計時考慮。降低正規化就是增加欄位,允許冗餘