本文彙整大量實務專案經驗,提煉 14 項資料庫分析與設計核心技巧。讀者須消化理解、靈活運用,切勿生搬硬套,做到「在應用中發展,在發展中應用」。
通常為一對一;特殊情況為一對多或多對一。明確對應關係有助於設計錄入介面。
例: 員工履歷單對應三張基本表(基本資料、社會關係、工作簡歷)。
葉子實體可無主鍵但必有外鍵。專家名言:「鍵,到處都是鍵,除了鍵之外,什麼也沒有。」主鍵是實體高度抽象,主外鍵配對代表實體連接。
掌握特性才能區分基本表、中間表、暫存表。
基本表盡量滿足 3NF,但為效率常需降低範式、適當增加冗余(以空間換時間)。
例: 商品表保留「金額」冗余欄位(單價×數量),Rose 2002 稱之為「計算欄位」。
策略:概念模型遵循 3NF,物理模型階段再降低範式、保留冗余。
引入第三個實體轉為兩個一對多。
例: 「圖書」與「讀者」間引入「借還書」實體,含借還時間、標誌、兩個外鍵。
推薦無物理意義的自動遞增數字串;組合主鍵欄位數越少越好(索引空間小、速度快)。
覆蓋業務範圍與功能即可行。好 ER 圖標準:結構清晰、關聯簡潔、實體適中、屬性分配合理、無低級冗余。
虛表,依賴實表。用途:程式員存取窗口、資料綜合形式、處理方法、資料保密手段。定義深度 ≤ 3 層;機密系統採「視圖隔離」策略:程式員僅操作視圖,DBA 持「安全鑰匙」操作基本表。
中間表:統計/資料倉庫/報表輸出,DBA 維護。暫存表:程式員個人用,程式自動維護。
CHECK 限制欄位取值範圍「三少」是整體觀,非絕對。資料集成層次:檔案系統→應用資料庫→主題資料庫→全域綜合資料庫。防止資料庫變「垃圾堆」或「大雜院」導致系統癱瘓。
總結:須從系統級、設計級、實作級三層次同步優化。