在實際工作中多維分析的商業(yè)智能解決方案涎永,根據(jù)事實表和維度表的關(guān)系思币,又可將常見的模型分為星型模型和雪花型模型。在設(shè)計邏輯型數(shù)據(jù)的模型的時候羡微,就應(yīng)考慮數(shù)據(jù)是按照星型模型還是雪花型模型進行組織谷饿。
一、星型模型
星型模型:是一種多維的數(shù)據(jù)關(guān)系妈倔,它由一個事實表(Fact Table)和一組維表(Dimension Table)組成博投。每個維表都有一個維作為主鍵,所有這些維的主鍵組合成事實表的主鍵盯蝴。事實表的非主鍵屬性稱為事實(Fact)毅哗,它們一般都是數(shù)值或其他可以進行計算的數(shù)據(jù)听怕;如下圖:
星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu),多維數(shù)據(jù)集的每一個維度都直接與事實表相連接虑绵,所以數(shù)據(jù)有一定的冗余
二尿瞭、雪花型模型
雪花型模型:當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時翅睛,其圖解就像多個雪花連接在一起声搁,故稱雪花模型。雪花模型是對星型模型的擴展捕发。它對星型模型的維表進一步層次化疏旨,原有的各維表可能被擴展為小的事實表,形成一些局部的?"層次?"?區(qū)域扎酷,這些被分解的表都連接到主維度表而不是事實表檐涝。
通過最大限度地減少數(shù)據(jù)存儲量以及聯(lián)合較小的維表來改善查詢性能。雪花型結(jié)構(gòu)去除了數(shù)據(jù)冗余法挨。
三谁榜、星型模型VS雪花型模型
星型模型和雪花模型的對比,可以從以下四個角度來對比坷剧。
1惰爬、查詢性能角度來看
在OLTP-DW環(huán)節(jié),由于雪花型要做多個表聯(lián)接惫企,性能會低于星型架構(gòu);但從DW-OLAP環(huán)節(jié)陵叽,由于雪花型架構(gòu)更有利于度量值的聚合狞尔,因此性能要高于星型架構(gòu)。
2巩掺、模型復(fù)雜度角度
星型架構(gòu)更簡單方便處理
3偏序、層次結(jié)構(gòu)角度
雪花型架構(gòu)更加貼近OLTP系統(tǒng)的結(jié)構(gòu),比較符合業(yè)務(wù)邏輯胖替,層次比較清晰研儒。
4、存儲角度
雪花型架構(gòu)具有關(guān)系數(shù)據(jù)模型的所有優(yōu)點独令,不會產(chǎn)生冗余數(shù)據(jù)端朵,而相比之下星型架構(gòu)會產(chǎn)生數(shù)據(jù)冗余。
四燃箭、總結(jié)
根據(jù)項目經(jīng)驗冲呢,一般建議使用星型模型。因為在實際項目中招狸,往往最關(guān)注的是查詢性能問題敬拓,至于磁盤空間一般都不是問題邻薯。當然,在維度表數(shù)據(jù)量極大乘凸,需要節(jié)省存儲空間的情況下厕诡,或者是業(yè)務(wù)邏輯比較復(fù)雜、必須要體現(xiàn)清晰的層次概念情況下营勤,可以使用雪花型模型木人。