※ 什麼是資料庫正規化?為什麼需要正規化?
資料庫正規化是一種設計關聯式資料庫的方法,目的是建立良好結構的關聯表,主要目的有二:
- 去除重複性:建立沒有重複的關聯表。因為重複資料不只浪費資料庫的儲存空間,而且會產生資料維護上的問題。
- 去除不一致的相依性:資料相依是指關聯表中的屬性之間擁有關係。如果關聯表擁有不一致的資料相依,這些屬性就會在新增、刪除或更新資料時,造成異常情況。
※ 資料庫正規化有幾個常見的正規化級別,通常表示為第一正規化(1NF)、第二正規化(2NF)、第三正規化(3NF)等,直到更高級的正規化級別。
- 第一階正規化形式(First Normal Form: 1NF):在關聯表刪除多重值和複合屬性,讓關聯表只擁有單元值屬性。
- 第二階正規化形式(Second Normal Form: 2NF):滿足 1NF 且關聯表沒有「部分相依」。
- 第三階正規化形式(Third Normal Form: 3NF):滿足 2NF,而且關聯表沒有「遞移相依」。
- 減少資料重複性:通過將重複的數據存儲在單獨的表中,節省存儲空間並提高數據的一致性。
- 提高資料的一致性:正規化可以避免資料更新異常,例如插入、更新和刪除操作可能會導致資料不一致的情況。
- 更容易維護和管理:正規化後的資料庫結構更清晰,關聯表之間的關係更容易理解和管理,從而使系統更容易擴展和維護。
- 提高查詢效率:通常情況下,正規化的資料庫結構可以更有效地進行查詢和加速查詢速度。