多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现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/