ERwin 不只是畫圖工具,配合 IDEF1X/IE 方法論與規範流程,才能產出高品質、可維護的資料模型。本文結合多年專案經驗,闡述 ERwin 設計全流程關鍵決策點。
使用前準備
1. 掌握建模方法論
- ERwin 支援 IE (Information Engineering) 與 IDEF1X 兩種標記法。必須先精通其一,否則連實體、關聯、屬性符號都看不懂。
- IDEF1X 強調語義模型:實體、關聯、屬性三大核心,並提供標準化標記語言與輔助方法,確保設計效率與品質平衡。
2. 熟悉 ERwin 介面與目標資料庫差異
- 邏輯模型 ≠ 物理模型。ERwin 需對應目標資料庫(Oracle、SQL Server、DB2 等)的資料類型、命名長度限制、約束語法等物理特性。
- 大型資料庫專案,物理參數(分區、表空間、儲存子句)務必在模型階段規劃,否則正向工程產出的 DDL 需大量人工修改。
3. 確立命名規範(專案啟動前必定)
- 若為大系統子系統,優先遵循母系統命名規範,協商後再改良。
- 考慮開發/執行工具限制(如 30 字元上限)、生產環境規範。
- 推薦 匈牙利命名法:前綴標識業務域(如
PAR_ 參數表、DTL_ 明細表、LOG_ 日誌表),欄位名含語義前綴(ID_、CD_、DT_、AMT_)。
- 欄位名全域唯一,避免同名不同義導致 JOIN 錯誤。
4. 表格分類與 Subject Area 劃分
- 依業務域/功能劃分 Subject Area:
參數表、主檔、交易明細、彙總統計、日誌稽核、暫存介面 等。
- 每類表統一前綴/後綴,便於 Subject Area 篩選與 DDL 產生過濾。
建立邏輯模型關鍵技巧
1. 善用 Domain(域)
- Domain 定義屬性的資料類型、長度、精度、預設值、檢核規則。
- 策略:不用則不建,用則全用。每類語義相同的屬性(如所有代碼欄位
CHAR(3)、所有金額 NUMBER(18,4))建立一個 Domain,修改時只改 Domain 定義,所有引用自動同步。
2. 維護 Definition(定義/說明)
- 每個 Domain、Entity、Attribute 填寫 Definition,即時同步業務語義。
- 產生資料字典文件時直接輸出,免去事後補寫。
3. 鍵值命名規範
- PK:
PK_表名、FK:FK_子表_父表、UK:UK_表名_業務鍵、Index:IDX_表名_欄位。
- ERwin 產生名稱時可自訂命名範本,充分利用避免人工誤差。
4. 關聯命名:採用「子實體 屬於 父實體」
- 預設內部編號無語義。建議命名為
子實體縮寫 屬於 父實體縮寫(如 DTL_ORD 屬於 HDR_ORD),動詞固定為「屬於」,語義清晰且唯一。
5. 靈活運用 Subject Area
- 業務分析時,將相關實體放入專屬 Subject Area 手工排版,呈現清晰 ER 圖。
- 工作表與歷史表結構相似,放入同一 Subject Area 並排,同步修改避免結構漂移。
6. 審慎使用參考完整性
- 三種實現方式:資料庫 FK 約束(最嚴格、效能影響最大)、觸發器(彈性大、無痕跡風險)、應用層邏輯(效能最好、需開發自律)。
- 高併發核心交易系統建議:核心主檔用 FK,明細/日誌用應用層檢核,平衡一致性與效能。
正向/逆向工程與文件產生
- 正向工程:依 Subject Area 產生 DDL 腳本,支援版本比對、增量腳本。
- 逆向工程:從現有資料庫匯入,快速建立模型基線。
- 文件產生:自訂範本輸出 Word/HTML/PDF 資料字典、ER 圖、DDL 腳本,納入專案交付物。