1. 程式人生 > 實用技巧 >資料庫設計--正規化原則

資料庫設計--正規化原則

正規化原則【也稱三大正規化 主要有三點】

  1. 每一列保持原子性 不可分割
    • Eg: 表示地址時--省市區街道 這些資訊不要放在同一個欄位 因為這些資訊是可拆分的 應該分為四個欄位 -- 省、市、區、街道 這樣便滿足了不可分割性
  2. 每一列都要跟主鍵相關 即一張表應該只描述一個物件
  3. 每一列都應該是跟主鍵直接相關 而不是間接相關
    • Eg:使用者表--公司ID--公司名稱 名稱就是間接相關了

正規化原則的優與缺

  與正規化定義相違背的 即**反正規化** 反正規化的資料中 資訊是冗餘 正規化中的第三點 反正規化是容許間接相關存在的

優點

  * 正規化化的更新操作 往往快於反正規化
  * 很少或沒有重複的資料
  * 表通常更小 執行操作更快
  * 冗餘少--Distinct、Group by 就用的少

缺點

  * 正規化化的設計離不開-關聯 越是複雜的查詢 關聯的次數就會越多 //反正規化化 則容許冗餘 可避免一定的關聯 所以實際設計往往都是 正規化+反正規化 相互結合使用