數據庫的結構優化

數據庫結構優化的目的

  • 減少數據冗餘
  • 避免數據維護中出現更新、插入和刪除異常
    • 插入異常:如果表中的某個實體隨着另一個實體而存在
    • 更新異常:如果更新表中的某個實體的單獨屬性時,需要對多行進行更新
    • 刪除異常:如果刪除表中的某一實體則會導致其他實體的消失
  • 節約數據存儲空間
  • 提供查詢效率

數據庫結構設計的步驟

  • 需求分析:全面瞭解產品設計的存儲需求,數據處理需求,數據的安全性和完整性
  • 邏輯設計:設計數據的邏輯存儲結構,數據實體之間的邏輯關係,解決數據冗餘和數據維護異常
  • 物理設計:根據所使用的數據庫特點進行表結構設計
  • 維護優化:根據實際情況對索引、存儲結構等進行優化

數據庫設計三範式

  • 第一範式:
    • 數據庫表中的所有字段都只具有單一屬性
    • 單一屬性的列是由基本的數據類型所構成的
    • 設計出來的表都是簡單的二維表
  • 第二範式:
    要求一個表中只具有一個業務主鍵,也就是說不能存在非主鍵列只對部分主鍵的依賴關係
  • 第三範式:
    指每一個非主屬性既不部分依賴於也不傳遞依賴於業務主鍵,也就是在第二範式的基礎上消除了非主屬性對主鍵的傳遞依賴

範式化設計

優點:
  * 可以儘量的減少數據冗餘
  * 更新操作比反範式化更快
  * 表通常比反範式化更小
缺點:
  * 對於查詢需要對多個表進行關聯
  * 更難進行索引優化

反範式化設計

優點:
  * 可以減少表的關聯
  * 更好的進行索引優化
缺點:
  * 存在數據冗餘及數據維護異常
  * 對數據的修改需要更多的成本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章