雪花模型維度特徵在於維度表進一步正規化,形成多層外鍵關聯。以產品維度為例:DimProduct → DimProductSubcategory → DimProductCategory 架構三層關聯。
從 AdventureWorksDW2012 擷取核心欄位建立三張維度表,並依序加入主鍵與外鍵約束:
-- 建立三層維度表 SELECT ... INTO DimProduct FROM AdventureWorksDW2012.dbo.DimProduct; SELECT ... INTO DimProductSubcategory FROM AdventureWorksDW2012.dbo.DimProductSubcategory; SELECT ... INTO DimProductCategory FROM AdventureWorksDW2012.dbo.DimProductCategory; -- 定義主鍵 ALTER TABLE DimProductCategory ADD CONSTRAINT PK_CategoryKey PRIMARY KEY CLUSTERED(ProductCategoryKey); ALTER TABLE DimProductSubcategory ADD CONSTRAINT PK_SubCategoryKey PRIMARY KEY CLUSTERED(ProductSubcategoryKey); ALTER TABLE DimProduct ADD CONSTRAINT PK_Product PRIMARY KEY CLUSTERED(ProductKey); -- 定義外鍵關聯 ALTER TABLE DimProduct ADD CONSTRAINT FK_SubcategoryKey FOREIGN KEY(ProductSubcategoryKey) REFERENCES DimProductSubcategory(ProductSubcategoryKey); ALTER TABLE DimProductSubcategory ADD CONSTRAINT FK_CategoryKey FOREIGN KEY(ProductCategoryKey) REFERENCES DimProductCategory(ProductCategoryKey);

在 SSAS 維度設計師中,將三張表加入資料來源檢視,依外鍵關聯自動建立屬性關聯。雪花模型的優勢在於儲存空間較星狀模型節省,但查詢時需多次 JOIN,效能權衡需視資料量與查詢模式決定。