多維數據模型是為了滿足用戶從多角度多層次進行數據查詢和分析的需要而建立起來的基於事實和維的數據庫模型,其基本的應用是為了實現OLAP(Online Analytical Processing)。
其中,每個維對應於模式中的一個或一組屬性,而每個單元存放某種聚集度量值,如count或sum。數據立方體提供數據的多維視圖,並允許預計算和快速訪問匯總數據。
《數據挖掘:概念與技術》中例舉如下模型
數據立方體允許以多維數據建模和觀察。它由維和事實定義。
維是關於一個組織想要記錄的視角或觀點。每個維都有一個表與之相關聯,稱為維表。
事實表包括事實的名稱或度量以及每個相關維表的關鍵字。
在數據倉庫的研究文獻中,一個n維的數據的立方體叫做基本方體。給定一個維的集合,我們可以構造一個方體的格,每個都在不同的匯總級或不同的數據子集顯示數據,方體的格稱為數據立方體。0維方體存放最高層的匯總,稱為頂點方體;而存放最底層匯總的方體稱為基本方體。
數據倉庫的概念模型
最流行的數據倉庫概念是多維數據模型。這種模型可以以星型模式,雪花模式,或事實星座模式的形式存在。
1.星型模式(Star schema):事實表在中心,周圍圍繞地連接着維表(每維一個),事實表包含有大量數據,沒有冗余。
2.雪花模式(Snowflake schema):是星型模式的變種,其中某些維表是規范化的,因而把數據進一步分解到附加表中。結果,模式圖形成類似雪花的形狀。
雪花模型相較於星座模型,是把維表進行了規范化。
事實星座(Fact constellations):多個事實表共享維表,這種模式可以看作星座模式集,因此稱作星系模式(galaxy schema),或者事實星座(fact constellation)
事實星座模式是把事實間共享的維進行合並。
對概念進行分層,有利於數據的匯總。
多維數據模型上的OLAP操作
上卷(roll-up):匯總數據
通過一個維的概念分層向上攀升或者通過維規約
下鑽(drill-down):上卷的逆操作
由不太詳細的數據到更詳細的數據,可以通過沿維的概念分層向下或引入新的維來實現
上卷和下鑽如圖1所示。
切片和切塊(slice and dice)
投影和選擇操作
轉軸(pivot)
立方體的重定位,可視化,或將一個3維立方體轉化為一個2維平面序列
其他OLAP操作
鑽過(drill_across):執行涉及多個事實表的查詢
鑽透(drill_through):使用關系SQL機制,鑽到數據立方體的底層,到后端關系表
參考:
《數據挖掘:概念與技術》
《王燦-數據挖掘視頻教程》
《數據倉庫的多維數據模型》:http://webdataanalysis.net/web-data-warehouse/multidimensional-data-model/