[摘要] 以連鎖超市數(shù)據(jù)倉庫數(shù)據(jù)模型為典型案例,在分析星型模型的優(yōu)勢和不足的基礎(chǔ)上,提出了把星型模型擴展為雪花模型的基本方法。并通過聚集事實表等途徑,使星型模型和雪花模型的特色和優(yōu)勢得到有效的應(yīng)用。為數(shù)據(jù)倉庫的聯(lián)機分析處理和數(shù)據(jù)挖掘奠定了基礎(chǔ)。
[關(guān)鍵詞] 連鎖超市 數(shù)據(jù)倉庫 星型模型 雪花模型設(shè)計 雪花模型應(yīng)用
信息技術(shù)的迅速發(fā)展和企業(yè)管理決策的迫切需要,使數(shù)據(jù)倉庫技術(shù)應(yīng)運而生。
1993年,數(shù)據(jù)倉庫之父W.H.lnmon將數(shù)據(jù)倉庫定義為:“一個面向主題的、集成的、隨時間變化的、非易失性的數(shù)據(jù)集合,用以支持管理層的決策”。數(shù)據(jù)倉庫的概念,決定了數(shù)據(jù)倉庫特有的數(shù)據(jù)組織模式和廣泛的應(yīng)用前景。
數(shù)據(jù)模型是開發(fā)和構(gòu)建數(shù)據(jù)倉庫(集市)的基礎(chǔ);是聯(lián)機分析處理和數(shù)據(jù)挖掘的重要條件。星型模型和雪花模型是基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫的兩種典型的數(shù)據(jù)模型。目前,數(shù)據(jù)倉庫星型模型已被廣泛應(yīng)用。而雪花模型的實用價值還處在進一步認識和開發(fā)階段。
一、連鎖超市數(shù)據(jù)倉庫星型數(shù)據(jù)模型
“星型模型”是數(shù)據(jù)倉庫廣泛采用的數(shù)據(jù)模型。它能準確、簡潔地描述出實體之間的邏輯關(guān)系。建立數(shù)據(jù)倉庫的數(shù)據(jù)模型,一般都是在對應(yīng)用主題分析的基礎(chǔ)上,首先建立星型模型?,F(xiàn)以超市數(shù)據(jù)倉庫為例,認識和理解數(shù)據(jù)倉庫星型模型。
一個典型的星型模式包括一個大型的事實表和一組邏輯上圍繞這個事實表的維度表。
事實表是星型模型的核心,事實表由主鍵和度量數(shù)據(jù)兩部分組成。星型模型中各維度表主鍵的組合構(gòu)成事實表的主鍵。事實表中存放的大量數(shù)據(jù),是同主題密切相關(guān)的、用戶最關(guān)心的度量數(shù)據(jù)?!颁N售”是超市的主題,因此,在事實表中,要準確記載各超市所有商品的銷售數(shù)量、營業(yè)額、利潤等度量數(shù)據(jù)。
維度是觀察事實、分析主題的角度。維度表的集合是構(gòu)建數(shù)據(jù)倉庫數(shù)據(jù)模式的關(guān)鍵。維度表通過主鍵與事實表相連。用戶依賴維表中的維度屬性,從事實表中獲取支持決策的數(shù)據(jù)。圍繞銷售主題,連鎖超市數(shù)據(jù)倉庫有以下典型的維度及其屬性:
客戶維:在客戶維中,建立了客戶的基本信息、是否為會員客戶、客戶居住地域等屬性。
商品維:商品不僅決定了超市的經(jīng)營范圍,商品的結(jié)構(gòu)、品牌、質(zhì)量直接影響營業(yè)額。在商品維中,設(shè)計了商品代碼、商品名稱、商品類別、品牌名稱、包裝類別以及商品的基本信息等維度屬性。
時間維:在數(shù)據(jù)倉庫的多維數(shù)據(jù)結(jié)構(gòu)中,時間維往往是不可少的一個維度。因為每項“銷售事實”都是在一定的時間或者時間段內(nèi)發(fā)生。針對需求,時間維采用日、月、季、年四個屬性。
連鎖店維:各連鎖店承擔了全部商品的銷售業(yè)務(wù)。連鎖店的服務(wù)質(zhì)量直接影響企業(yè)的競爭力、銷售業(yè)績和企業(yè)利潤。連鎖店維中建立了連鎖店名、所在地域等維度屬性。
根據(jù)分析主題和需求,建立連鎖超市數(shù)據(jù)倉庫(集市)星型數(shù)據(jù)模型,如圖1所示。
圖1 連鎖超市數(shù)據(jù)集市星型模型
二、星型模型的優(yōu)勢和不足
1.星型模型的優(yōu)勢
星型模型在數(shù)據(jù)倉庫中具有很大優(yōu)勢:
(1)星型模型圍繞一個確定的主題,體現(xiàn)了數(shù)據(jù)倉庫對數(shù)據(jù)結(jié)構(gòu)和組織的要求;
(2)星型模型簡單、清晰的結(jié)構(gòu)準確反映了用戶的需求,使用戶易于理解;
(3)星型模型維度表包含了用戶經(jīng)常查詢和分析的屬性,優(yōu)化了對數(shù)據(jù)庫的瀏覽,在維度表和事實表之間沒有任何“迷宮”。使查詢的過程變得簡單而直接。
(4)星型模型為OLAP提供了良好的工作條件,使OLAP能通過星型連接和星型索引,顯著提高查詢性能。
2.星型模型的不足
星型模型也有明顯的不足:
(1)星型模型是非規(guī)范化的,星型模型以增加存儲空間為代價來提高多維數(shù)據(jù)的查詢速度,造成很大的數(shù)據(jù)冗余;非規(guī)范化的、含有大量冗余的維度表,會使數(shù)據(jù)切片變得更加復(fù)雜。
(2)由于星型模型中各維度表主鍵的組合構(gòu)成事實表的主鍵。當星型模型的維不能滿足要求時,維的變化是非常復(fù)雜、耗時的。
(3)維度屬性的復(fù)雜形成的大維度問題。大維度中的長文本字段占用存儲空間,維度數(shù)據(jù)不易更新和維護;向大維度表填充數(shù)據(jù)難度增大;對事實表的查詢涉及大維度表時,會影響效率。
(4)當維的屬性復(fù)雜時,處理維的層次關(guān)系比較困難。
(5)對“多對多”關(guān)系,星型模型無能為力。
三、連鎖超市數(shù)據(jù)集市的“雪花模型”設(shè)計
“雪花模型”是針對星型模型存在的不足和數(shù)據(jù)分析處理的需要,在星型模型的基礎(chǔ)上拓展而來的。將“星型模型”中的維表規(guī)范化,對維度表、特別是大維度表的屬性按層次和類別進行分解,形成一些局部的層次區(qū)域,就得到一個以事實表為中心的“雪花模型”。
在連鎖超市數(shù)據(jù)倉庫的星型模型中,客戶維和商品維都是典型的大維度。這是因為:大的連鎖超市,客戶維和商品維很深,累計可能有數(shù)以萬計的客戶和上萬種商品;客戶維和商品維很寬,根據(jù)需要,這兩種維可以有多個維度屬性。
將大維度表“雪花化”方法是:
1.按維屬性的層次分解
維度的層次性體現(xiàn)在用戶觀察數(shù)據(jù)的粒度不同。例如:在數(shù)據(jù)集市中,商品、商品品牌、分類是商品的三個不同層次??蛻艟S中,客戶、會員客戶、分地域的客戶是客戶的三個不同層次。
2.按維的屬性類別分解
維屬性之間有一些是互不關(guān)聯(lián)的屬性,例如:商品的品牌和包裝,是否為會員客戶,他們之間無層次關(guān)系。把維的屬性類別分解形成維的局部星型關(guān)系。
3.將非分析數(shù)據(jù)進行分離
維度表中的有些屬性與事實表中的度量數(shù)據(jù)無直接關(guān)系。例如:商品的詳細信息,大小、規(guī)格;會員客戶的基本信息等。將這些信息分離成一片“雪花”,使維表和事實表盡量“精練”。提高了多維查詢的速度。當我們需要這些信息時,才到這片雪花中查找。
總之,雪花模型要在星型模型的基礎(chǔ)上,描述出屬性間清晰的層次和分類關(guān)系。把圖1所示的連鎖超市數(shù)據(jù)倉庫(集市)星型模型“雪花”化,就得到該集市的雪花模型。如圖2所示。
圖2 連鎖超市數(shù)據(jù)集市雪花模型
四、數(shù)據(jù)倉庫的“雪花模型”的應(yīng)用
從形式上看,雪花模型比星型模型結(jié)構(gòu)復(fù)雜,但設(shè)計好的雪花模型卻有星型模型難以替代的應(yīng)用價值。
雪花模型是星型模型的衍生。在研究雪花模型的應(yīng)用時,要用雪花模型的優(yōu)勢彌補星型模型的不足;還要充分繼承星型模型的優(yōu)勢,揚長避短,使數(shù)據(jù)模型能在構(gòu)建數(shù)據(jù)倉庫和開發(fā)應(yīng)用中更好地發(fā)揮作用。
1.雪花模型在處理大維度方面的應(yīng)用
數(shù)據(jù)倉庫的大維度問題雖然可以通過事實表來體現(xiàn),但這種方法導(dǎo)致事實表極為龐大且難于管理,當層次定義發(fā)生改變時,事實表需要重新設(shè)計和構(gòu)建。
雪花模型解決了星型模型中復(fù)雜的大維度問題。通過對維度表的屬性按層次和類別進行分解;將非分析數(shù)據(jù)進行分離,使大維度表得到有效的規(guī)范化處理,較好地消除了數(shù)據(jù)的冗余,從而使事實表的字段數(shù)和總長度減小,以節(jié)省存儲空間。
2.雪花模型在建立聚集事實表方面的應(yīng)用
事實表中數(shù)據(jù)的細節(jié)程度或綜合程度的級別稱為數(shù)據(jù)“粒度”。粒度是數(shù)據(jù)倉庫事實表的重要的特征。不同的需求,對粒度要求不同。
數(shù)據(jù)集市需要保留最低層次的細節(jié)數(shù)據(jù)。以滿足數(shù)據(jù)抽取、信息查詢和數(shù)據(jù)挖掘的需要;另一方面,為提供決策支持,需要多方面的高粒度的匯總數(shù)據(jù)。因此,需要把使用頻率高的匯總數(shù)據(jù)存放在聚集事實表中。雪花模型維度表清晰的層次關(guān)系為建立聚集事實表創(chuàng)造了條件。
根據(jù)聚集的概念,在有m維的雪花模型或星型模型中,可以建立多個n度聚集事實表(n<=m)。所謂n度聚集,就是把m維事實表中的n個維度提升到一定的層次,其余的(m-n)維保持最低層次。這樣生成的事實表同相應(yīng)衍生出的維表形成一個簡明的星型模型。例如:
為了分析會員客戶對各種品牌商品的購買情況,在雪花模型中對客戶維和商品維進行二路聚集即可。如圖3所示。
為了分析會員客戶一年中對各類商品的需求情況,在雪花模型中對客戶維、商品維和時間維進行的三路聚集即可。如圖4所示。
圖3 連鎖超市數(shù)據(jù)集市雪花模型二路聚集
圖4 連鎖超市數(shù)據(jù)集市雪花模型三路聚焦
通過各種聚集,不僅滿足了聯(lián)機分析處理和數(shù)據(jù)挖掘?qū)Ω鞣N數(shù)據(jù)粒度的要求,更可喜的是,由于聚集產(chǎn)生的是結(jié)構(gòu)簡單的星型模型,使星型模型的各種優(yōu)勢在這里得到發(fā)揮。
3.雪花模型在聯(lián)機分析處理(OLAP)中的應(yīng)用
聯(lián)機分析處理(OLAP)是基于數(shù)據(jù)倉庫的一種多維數(shù)據(jù)分析技術(shù),是數(shù)據(jù)倉庫的重要應(yīng)用。OLAP從數(shù)據(jù)倉庫中的某個特定主題的集成數(shù)據(jù)出發(fā),使用多維分析方法,對客戶端的請求,對數(shù)據(jù)進行切片、切塊、聚合、鉆取、旋轉(zhuǎn)等操作,并通過直觀的方式從多個角度、多個側(cè)面、多個層次及多種數(shù)據(jù)綜合程度對多維數(shù)據(jù)進行分析、比較,并把結(jié)果用表格或圖形方式顯示給用戶,使用戶了解數(shù)據(jù)背后蘊含的規(guī)律,以達到獲取相關(guān)決策信息的目的。
雪花模型及以雪花模型為依托生成的各層次的聚集事實表,為OLAP提供了良好的工作條件。例如,在對數(shù)據(jù)進行上鉆或下鉆時,只需要向OLAP工具提供相應(yīng)的不同粒度的聚集事實表即可。
為了改善數(shù)據(jù)匯總查詢的性能,可以建立一個匯總表,將常用的全部聚集事實表的表名、粒度、相應(yīng)的維度屬性存放在匯總表中,并通過數(shù)據(jù)倉庫元數(shù)據(jù)進行管理。這樣,OLAP就能根據(jù)匯總表的指示,選用不同粒度的聚集事實表進行切片、切塊、聚合、鉆取、旋轉(zhuǎn)等操作,提高了分析速度,彌補了雪花模型在查詢速度方面的不足。
4.雪花模型在多對多關(guān)系處理中的應(yīng)用
在實際的問題中,數(shù)據(jù)倉庫的數(shù)據(jù)會出現(xiàn)“多對多”的關(guān)系。多對多關(guān)聯(lián)不可能在星型模式中實現(xiàn)。但可通過雪花模型將“多對多”的關(guān)系轉(zhuǎn)化成多個“一對多”關(guān)系來處理。
總之,雪花模型提高了數(shù)據(jù)倉庫應(yīng)用的靈活性。使系統(tǒng)進一步專業(yè)化和實用化。
五、結(jié)束語
星型模型和雪花模型是基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫的兩種典型的數(shù)據(jù)模型。星型模型是雪花模型的原型,雪花模型是星型模型的衍生。各有所長,各有特色。在實際應(yīng)用中,要對具體問題作出具體分析,還要針對OLAP和挖掘工具的需要,在兩種模式之間作出權(quán)衡和選擇。使數(shù)據(jù)模型在數(shù)據(jù)倉庫的構(gòu)建和應(yīng)用中發(fā)揮出更好的作用。
參考文獻:
[1]W.H.Inmon著王志海等譯:數(shù)據(jù)倉庫[M].機械工業(yè)出版社,2003
[2]Paulraj Ponniah著段云峰等譯:數(shù)據(jù)倉庫基礎(chǔ)[M].電子工業(yè)出版社,2004
[3]Jiawei Han Micheline Kamber著,范明,等譯.數(shù)據(jù)挖掘概念與技術(shù)[M].機械工業(yè)出版社,2004
[4]平靜林平瑞:元數(shù)據(jù)管理及其在數(shù)據(jù)倉庫中的應(yīng)用[J].平原大學(xué)學(xué)報,2006(8):130~132
[5]彭曉東:基于數(shù)據(jù)倉庫的綜合決策支持系統(tǒng)的設(shè)計研究[j].電腦開發(fā)與應(yīng)用,2003(6):11~20