資料庫設計--正規化原則
阿新 • • 發佈:2020-08-13
正規化原則【也稱三大正規化 主要有三點】
- 每一列保持原子性 不可分割
- Eg: 表示地址時--省市區街道 這些資訊不要放在同一個欄位 因為這些資訊是可拆分的 應該分為四個欄位 -- 省、市、區、街道 這樣便滿足了不可分割性
- 每一列都要跟主鍵相關 即一張表應該只描述一個物件
- 每一列都應該是跟主鍵直接相關 而不是間接相關
- Eg:使用者表--公司ID--公司名稱 名稱就是間接相關了
正規化原則的優與缺
與正規化定義相違背的 即**反正規化** 反正規化的資料中 資訊是冗餘 正規化中的第三點 反正規化是容許間接相關存在的
優點
* 正規化化的更新操作 往往快於反正規化 * 很少或沒有重複的資料 * 表通常更小 執行操作更快 * 冗餘少--Distinct、Group by 就用的少
缺點
* 正規化化的設計離不開-關聯 越是複雜的查詢 關聯的次數就會越多 //反正規化化 則容許冗餘 可避免一定的關聯 所以實際設計往往都是 正規化+反正規化 相互結合使用