規格化就是去除數據庫裏冗餘數據的過程,在設計和重新設計數據庫時使用。它是一組減少數據冗餘來優化數據庫的指導方針,具體的方針被稱爲規格形式。對於初學者來說過於複雜。
規格形式是衡量數據庫被規格化級別(或深度)的一種方式。數據庫的規格化級別是由規格形式確定的。
4.最常見的3中規格形式:
(1)第一規格形式
第一規格形式的目標是把原始數據分解到表中。在所有表都設計完成之後,給大多數表或全部表設置一個主鍵。
概念:主鍵也可以由表裏的多個列組成。自然主鍵:數據庫自然產生的具有邏輯意義的數據,例如書名和ISBN編號。
(2)第二規格形式
第二規格形式的目標是提取對主鍵僅有部分依賴的數據,把它們保存到另一個表裏。
第二規格形式是以第一規格形式爲基礎,把兩個表進一步劃分爲更爲明確的單元。
(3)第三規格形式
第三規格形式的目標是刪除表裏不依賴於主鍵的數據。
5.命名規範
6.規格化的優點
- 更好的數據庫整體組織性
- 減少冗餘數據
- 數據庫內部的數據一致性
- 更靈活的數據庫設計
- 更好的處理數據庫安全
- 加強引用整體性的概念
引用的完整性一般是通過主鍵和外鍵來控制的。
規格化過程把數據從邏輯上分解爲由主鍵引用的子集,從而有助於加強和堅持這種約束。
7.規格化的缺點:
降低數據庫性能
8.去規格化數據庫
去規格化是修改規格化數據庫的表的構成,在可控制的數據冗餘範圍內提高數據庫的性能。
嘗試提高性能是去規格化數據庫的唯一原因。去規格化的數據庫與沒有進行規格化的數據庫不一樣,去規格化是在數據庫規格化基礎上進行一些調整,因爲規格化的數據庫需要頻繁的進行表的結合而降低了性能。去規格化會把一些獨立的表結合成在一起,或是創建重複的數據,從而減少在數據檢索時需要結合的表的數量,進而減少所需的I/O和CPU時間。
Q:數據庫問題需要進行一定程度的規格化,但到什麼程度才不至於嚴重影響性能呢?