OLAP技术

6.4基于多维数据库的OLAP(MOLAP)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

6.4.1 多维数据库

维的概念:产品维,地域维等等,

在关系数据库中,多对多的关系是转化为一对多的关系的,这样有利于 数据的一致性和规范化,符合事务处理系统的需求,但是关系表需要更多的表项和存储空间;对于需要处理大量数据的OLAP来说,还是应该选择存储容量需求较小的方式---多维表;

在OLAP中需要使用多种综合层次的数据,因此对数据进行聚合(求和)的处理是非常普遍的,关系表的处理会大大增加系统的响应时间;但对于多维表,由于它本身就是按照维度组织的,在多层次数据统计上有明显的优越

6.4.2维的分类

维的层次主要是为了进行数据钻取分析,让用户能够查看不同层次的数据,维的分类是对维取值的划分,通常是为了在不同的类别间进行比较,比如"通话""短信"对移动公司的收益贡献分别是多少。

6.4.3多维数据库的存储

多维数据库扩展到三维甚至更高维形成类似超立方体结构的存储问题:

MDDB由许多带有高度压缩的索引及指针结构的对象组成;

MDDB中时间维的重要性;

6.5基于关系数据库的OLAP(ROLAP)

6.5.1维表和事实表

ROLAP如何使用关系数据库的二维表来表达多维的概念??

ROLAP将多维数据库中的对位结构划分为两类表:一类是维表,用来记录维度信息;另一类是事实表(FACT),用来存储维度交叉点处的度量信息以及各个维度的码值;

总的来说,用维表来记录多维数据库中的维度,将多维立方体的坐标轴上的各个取值记录在一张维度表中,这样对于一个n维数据,ROLAP中就存在了n张维表。一个维表的抽取过程,是从一个由时间维,商品维和销售市场维组成的数据立方体,每个维度有若干个取值,例如时间维的取值(2001.2002.2003.2004)我们可以分别将3个维度抽取为3个维表:时间维表,商品维表,销售市场维表;

对于每一个维,至少有一个表用来保存该维的元数据,即维的描述信息,包括维的层次及成员类别等;

事实表的抽取:以上面的数据立方体为例,有时间维度,商品维,销售市场维,将产品的销售额定为度量(sale),事实表的表结构为(time_id,prod_id,market_id,sales),事实表的这种结构最大的好处是通过字节数很少的外键同维表相连,大大节省了存储空间;

维表/事实表结构在存储上的优势~~与多维数据表的比较

多维数据库在系统响应时间上的优点是通过牺牲存储空间为代价换来的。

6.5.2星型模型和雪花模型

通过将事实表和维表进行连接,就得到雪花模型结构,通过维表的主键,对事实表和每个表做连接操作,事实表记录的就是在这些因素(维表)限制下对问题考虑结果;

星型模型问题的出现:当问题涉及的维度很多或是维度层次复杂,事实表中的条目数迅速增加,导致事实表所占用的存储空间增大加快;

这种情况下,考虑使用“雪花模型”结构:例如在客户性别维,客户年龄维,客户职业维,客户教育程度维,客户基本信息维这些维度都同某个客户相关,它们之间可以通过客户标识来联系,可以定义一个客户维,将以上维和客户维进行连接,结果是在星型的一个角上出现了一个分支,这种变种的星型模型成为雪花模型,其中时间维和客户维都用了多于一张的维表来表示。

小结:

基于关系数据库的OLAP的维表和事实表都是用二维关系表的方式存放的,因而事实的提取需要通过将维表和事实表的连接操作来完成,但是因为对每个维的连接只需要一次连接,性能就成为此方案的一个关键问题;

6.5.3星座模型和雪暴模型

N/A

猜你喜欢

转载自blog.csdn.net/lijieneptune/article/details/3278975