四大建模方法論比較
| 流派 | 代表人物 | 核心思想 | 適用層級 | 優點 | 缺點 |
| 關係式三範式 (3NF) | Codd / Inmon | 消除冗餘、正規化至 3NF | ODS / 企業資料倉庫核心層 | 資料一致性高、單一事實來源、支援任意查詢 | 查詢需多表 JOIN、效能較差、開發週期長 |
| Inmon 企業資料倉庫 (EDW) | Bill Inmon | 自上而下、主題導向、整合、非揮發、時變;分三層:ER層→資料項集層→物理層 | 企業級 EDW 核心 | 跨系統整合、歷史追蹤、單一版本真相 | 建模複雜、上線慢、需強治理 |
| Kimball 維度建模 | Ralph Kimball | 自下而上、業務流程導向、星型/雪花結構、事實表+維度表 | 資料集市 / 部門級 / BI 報表層 | 查詢快、易理解、開發快、適合 OLAP | 資料冗餘、ETL 複雜、跨主題一致性難 |
| 靈活暫存區建模 | 實務派 | 不拘範式、滿足 ETL 需求為主、多為暫存表、不對外公開 | Staging Area / Data Lake 原始區 | 彈性高、載入快、支援非結構化 | 無標準、難維護、不可直接供報表 |
Inmon 三層架構詳解
- 實體關係層 (ER Layer):企業級邏輯模型,高度正規化 (3NF),整合所有業務系統實體與關係,獨立於物理實作。
- 資料項集層 (Data Item Set Layer):依資料產生頻率、存取頻率、生命週期分組(如交易類、主資料類、參考類),物理化為資料項集,引入替代鍵。
- 物理層:資料項集在特定 DBMS 上的實作(分區、索引、壓縮、壓縮)。
Kimball 星型結構核心
-- 事實表 (窄、長、數值多)
CREATE TABLE FactSales (
DateKey INT NOT NULL REFERENCES DimDate(DateKey),
ProductKey INT NOT NULL REFERENCES DimProduct(ProductKey),
StoreKey INT NOT NULL REFERENCES DimStore(StoreKey),
CustomerKey INT NOT NULL REFERENCES DimCustomer(CustomerKey),
SalesAmount MONEY NOT NULL,
Quantity INT NOT NULL,
CONSTRAINT PK_FactSales PRIMARY KEY (DateKey, ProductKey, StoreKey, CustomerKey)
);
-- 維度表 (寬、扁平、描述性屬性多)
CREATE TABLE DimProduct (
ProductKey INT IDENTITY PRIMARY KEY,
ProductCode VARCHAR(20) NOT NULL,
ProductName NVARCHAR(100),
Category NVARCHAR(50),
SubCategory NVARCHAR(50),
Brand NVARCHAR(50),
Color NVARCHAR(20),
Size NVARCHAR(20),
UnitCost MONEY,
UnitPrice MONEY,
SCD_Type TINYINT DEFAULT 1 -- 緩慢變化維度類型
);
雪花結構
將維度進一步正規化(如 DimProduct 拆出 DimCategory、DimBrand),減少冗餘但增加 JOIN,查詢效能通常下降,除非維度極大且頻繁更新 才考慮。
SCD (緩慢變化維度) 三大類型
| 類型 | 處理方式 | 適用場景 |
| Type 1 覆蓋 | 直接 UPDATE,不保留歷史 | 錯誤修正、無歷史需求屬性 |
| Type 2 新增列 | INSERT 新列,加 StartDate/EndDate 或 IsCurrent | 需完整歷史(如價格、地址變更) |
| Type 3 新增欄位 | 加 Prev_Value 欄位,只保留上一版 | 僅需前後對比的少數屬性 |
實務建議:分層架構融合四大流派
Source Systems
│
▼
┌─────────────────────┐
│ Staging Area │ ← 靈活建模:原始落地、不轉型、支援全量/增量
│ (Raw / ODS) │
└─────────┬───────────┘
│ ETL (清洗、合併、代理鍵產生)
▼
┌─────────────────────┐
│ Enterprise DW │ ← Inmon 3NF:核心主題整合、單一真相、歷史保留
│ (Core 3NF) │
└─────────┬───────────┘
│ 依業務流程建模、去正規化
▼
┌─────────────────────┐
│ Data Marts │ ← Kimball 星型:BI 報表、OLAP、自助分析
│ (Star Schema) │
└─────────────────────┘
選型決策指南
- 企業級、跨系統整合、監管要求高 → Inmon 3NF 核心層 + Kimball 資料集市。
- 部門級、快速上線、報表導向 → 直接 Kimball 星型。
- 大數據、非結構化、探索性分析 → Data Lake + Schema-on-Read,暫存區靈活建模。
- 既有系統重構 → 漸進式:先建 Staging,再 3NF 核心,最後依需求產出星型集市。