規範化透過組織資料來減少冗餘並提高資料完整性。其目標是確保每個事實只儲存一次。如果客戶地址出現在每個訂單記錄中,那麼地址變更就需要在數百個地方進行更新。漏掉一個地方,數據就會不一致。規範化會將地址移至客戶表中。訂單透過 ID 引用客戶。地址只需儲存一次。在客戶表中更改地址,所有訂單都會反映新的地址值。
該過程遵循範式。第一範式消除重複組。第二範式消除部分依賴。第三範式消除傳遞依賴。每個範式都增加了約束,進一步減少冗餘。較高範式存在,但在實務上很少使用。大多數事務資料庫的目標是達到第三範式。規範化有利有弊。更多的表意味著更多的連接,這會降低查詢速度。對事務系統而言,完整性帶來的效益大於效能損失。對於分析系統而言,情況通常恰恰相反。具有寬表和冗餘列的非規範化模式查詢速度更快,因為它們避免了連線。這就是為什麼資料倉儲使用星型和雪花型模式,它們刻意進行非規範化。合適的規範化等級取決於工作負載。事務系統進行規範化。分析系統進行非規範化。兩者對於各自的用途都是正確的。
正規形式
- 第一範式-無重複組
- 第二範式-無偏依賴
- 第三範式-無傳遞依賴
- 博伊斯-科德範式-第三範式的更嚴格版本
規範化關乎完整性。每個事實只儲存一次,資料就能保持一致。多次儲存則不可避免地會出現不一致。
Comments
No comments yet. Be the first to share a thought.
Leave a comment