首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 最佳實踐:善用 Rational Data Architect V7 掌握資訊建模核心(下)

     編輯:DB2 教學

邏輯資料建模深度解析

資料表正規化與反正規化

正規化是將實體拆分為多個物理資料表的過程,屬邏輯建模應用。核心目標:消除冗余資料、確保有效資料相依性、最大化系統彈性以因應未來結構增長。

第三正規形式 (3NF) 規則精要

  • 消除重複群組:每組相關屬性建立獨立資料表並指定主鍵
  • 消除同表重複欄位
  • 每組相關資料建立獨立資料表,以唯一鍵識別每列
  • 消除冗余:僅依賴複合鍵部分的屬性移至獨立資料表
  • 移除套用至多列的資料至獨立資料表
  • 透過外鍵建立有效資料表關聯
  • 刪除不依賴主鍵的欄位

邏輯模型應維持 3NF,提供隨業務演進的彈性模型。雖然 3NF 部署時常效能不彰,但它是靈活設計的基石。

正規化實戰範例

以反正規化模型為起點,逐步遵循 1NF、2NF、3NF:

  • 1NF:移除重複群組(如 Address Line 1-3、Customer First/Last Name),建立新實體並定義主鍵/外鍵。姓名正規化可預留中間名、前後綴擴充空間。
  • 2NF:在 1NF 基礎上,移除部分相依於複合鍵的屬性(如 City/State/Zip Code 模式固定,獨立為 Zip Code 實體)。
  • 3NF:在 2NF 基礎上,移除遞移相依屬性(非鍵屬性由另一非鍵屬性決定),建立新實體並維護關聯。

反正規化模型 第一正規形式 第二正規形式 第三正規形式

反正規化策略

屬物理建模應用,將資料表合併以提升效能、降低管理複雜度。星型/雪花模式常用於資料倉庫(BI 系統):

  • 星型模式:中央事實表(時變事件)環繞維度表(屬性如位置、客戶、部件)
  • 雪花模式:將低基數欄位從維度表再拆分至次維度表

反正規化會增加冗余、降低靈活性,不建議用於邏輯模型,應作為物理建模滿足效能/管理需求的手段。

邏輯資料模型正規化最佳實踐

  • 始終遵循 3NF
  • 善用 一般化關聯(超型/子型):如「帳戶」為父實體,「開啟帳戶/關閉帳戶」為子型,各擁有獨特屬性,父實體保留共通屬性。此關聯不僅豐富語意,物理轉換時可選擇向上合併、向下推送或保持獨立三種策略。

無一般化關聯的帳戶實體 具一般化關聯的帳戶實體 一般化向上轉換 一般化向下轉換 一般化獨立表轉換

團隊共享協作機制

模型若無法在相關社群廣泛應用,組織價值有限。RDA 提供強大團隊共享功能:

  • 套件分離邏輯實體:降低大型模型複雜度,利於理解
  • 從套件建立子模型:將大模型拆解為小模型,僅簽出/簽入需變更的子模型,大幅減少合併衝突與耗時。若兩人分處不同子模型,可同時簽入互不干擾;衝突發生時合併較小範圍更高效。

建立子模型步驟

  1. Data Project Explorer 右鍵現有套件
  2. 選擇 Create Submodel from package

建立子模型操作

物理資料建模實戰

創建特定資料庫模型以滿足應用效能需求。規劃資料庫增長極具挑戰,尤其 BI 環境初始部署成功後常持續擴充資料源。

正規化與反正規化物理策略

  • OLTP/通用資料庫:採 3NF 維持設計彈性
  • 資料倉庫/資料集市:星型/雪花模式適合維度查詢,但需驗證符合邏輯模型設計關聯
  • 多用途廣泛數倉(ODS、報表、OLAP、Cube):採 IBM 分層資料架構
  • 極窄資料表(每列 ≤ 30 bytes):考慮反正規化,減少資料表數量降低查詢/管理複雜度

IBM 分層資料架構圖

架構五層(自上而下):儀表板靜態報表(固定期限)→ 維度/資料集市/多維資料集(年)→ 摘要資料/效能上卷資料(年)→ 接近 3NF/主題區/代碼參考表(年)→ 整理/明細/反正規化/原始來源(60/120/180 天)

索引設計最佳實踐

索引提供快速查找,對效能至關重要,但也增加 UPDATE/INSERT/DELETE/LOAD 成本、編譯成本與儲存空間。

  • 所有主鍵與大多數外鍵建立索引(多數連接發生於 PK-FK)
  • SQL WHERE 子句頻繁引用屬性考慮建索引(不等式謂詞如 WHERE cost <> 4 除外)
  • 等值與範圍查詢有效利用索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved