DB 資料庫正規化(未完成) - fantasy0107/notes GitHub Wiki

目的

  1. 降低資料的重覆性
  2. 避免更新異常

精神

  1. 重複的欄位資料減到最少
  2. 快速的找到資料
  3. 提高關聯性資料庫的效能

流程

還沒正規化 -- (去除重複群組) -->
1NF -- (去除部分相依) -->
2NF -- (去除遞移相依) -->
3NF -- (去除其他功能相依所造成的異常) -->
BCNF

第一正規化 (1NF) - 去除重複群組

  1. 每一個欄位只有單一值
  2. 沒有任何兩筆以上的資料是完全重覆的
  3. 有主鍵的表則其他所有的欄位都相依於主鍵

第二正規化 (2NF) - 去除部分相依

  1. 符合 1NF
  2. 每一非鍵屬性必須完全相依於主鍵; 不可部份功能相依於主鍵

第三正規化 (3NF) - 去除遞移相依

  1. 符合 2NF
  2. 個欄位主鍵之間沒有遞移相依
  3. 判斷方法是從左到右掃描有沒有與主鍵無關的相依有的話移出去

BC正規化 (Boyce-Codd Normal From,BCNF)

參考資料

說明資料庫正規化基本概念
為何使用資料庫儲存資料時,需要先執行正規化?