三大核心目標
- 數據規範化(消除冗余、避免異常)
- 通過範式(1NF~5NF)分解表結構,確保每個事實僅存儲一次。
- 防止插入、刪除、更新異常,保證數據邏輯一致性。
- 數據完整性(實體、引用、用戶定義)
- 實體完整性:主鍵非空唯一,唯一標識實體。
- 引用完整性:外鍵約束保證關聯數據存在性。
- 域完整性:CHECK、DEFAULT、NOT NULL 限制列值合法性。
- 性能優化(查詢效率、存儲效率、併發控制)
- 合理索引策略(B+樹、哈希、全文索引)。
- 分區表、物化視圖、緩存層設計。
- 鎖粒度控制、MVCC 多版本併發控制。
目標間的權衡
- 高度規範化可能增加連表查詢開銷,需通過反規範化(冗余字段、彙總表)換取讀性能。
- 完整性約束(外鍵、觸發器)會增加寫入開銷,高併發場景可考慮應用層校驗替代。
參考資源
詳細討論見:知乎 - 關係數據庫設計的三個目標是什麼?