1.维是人们观察主题的特定角度,每一个维分别用一个表来描述,称为“维表”(Dimension Table),它是对维的详细描述。
2.事实表示所关注的主题,亦由表来描述,称为“事实表”(Fact Table),其主要特点是包含数值数据(事实),而这些数值数据可以进行汇总以提供有关操作历史的信息。
3.每个事实表包括一个由多个字段组成的索引,该索引由相关维表的主键组成,维表的主键也可称为维标识符。事实表一般不包含描述性的信息,维表包含描述事实表事实记录的信息。多个维表之间形成的多维数据结构,体现了数据在空间上的多维性,也可称为“多维立方体”。
DW的多维数据模型,又分为三种:星形模式、雪花模式和事实星座模式。下面分别介绍。
1. 星形模式(Star Schema)
大多数的DW都采用星形模式。星形模式的结构主要有以下三点:
●一个含大量而无冗余数据的事实表;
●若干相对含有较少数据的维表;
●每个维度自主组成一个维表,每个维表有一个维标识符与事实表发生联系,其图形描述呈星形。
2. 雪花模式(Snowflake Schema)
“维”一般是层次结构或格结构。在例2中,商品的层次结构为商品→类→大类,商品表中每个元组表示商品所属的类及大类;商店的层次为商店→市→省→国→洲,商店表中每个元组表示商店所在的市、省、国、洲;日期的层次为日→月→年,日期表中每个元组表示“日”所属的月、年。用星形模式表示,数据冗余较大,应改用雪花模式。
雪花模式是对星形模式的扩展,实际上是对星形模式的规范化。雪花模式对星形模式的维表进一步层次化,原来的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域。它的优点是最大限度地减少数据存储量,以及把较小的维表联合在一起改善查询性能
雪花模式增加了用户必须处理的表的数量,增加了某些查询的复杂性。但这可以使系统更进一步专业化和实用化,同时降低了系统的通用程度。
3. 事实星座模式(Fact Constellation Schema)
事实星座模式是指存在多个事实表,而这些事实表共享某些维表。实际上,事实星座模式是星形模式和雪花模式的组合。
3. OLAP的基本概念
在OLAP中有如下几个基本概念
(1)对象(Object)
在分析型处理中我们所关注与聚焦的分析客体,称为“对象”。一般在一个应用中有一个或若干个对象,它们构成了分析应用中的焦点。如在连锁商店的分析型应用中,其中一个对象为销售金额,它是本应用分析的聚集点。
(2)变量(Variant)
变量是数据的实际意义,即描述数据“是什么”。一般情况下,变量总是一个数值度量指标,例如“人数”、“单价”、“销售量”等都是变量,而“100”、“200”则是变量的一个值。
(3)维(Dimension)
在分析型应用中,对象可以从不同角度分析与观察,并可得到不同的结果。用“维”来反映对象的观察角度,如在连锁商店例中对销售金额可以有以下三个维:、
●时间维:可按时间段分析、统计其销售金额。
●商品维:可按不同商品分类分析、统计其销售金额。
●地域维:可按连锁店不同地域分析、统计其销售金额。
维有自己固有的特征,如层次结构(对数据进行聚合分析时要用到)、排序(定义变量时要用到)和计算逻辑(基于矩阵的算法),这些特征对进行决策是非常有用的。
(5)维成员
维的一个取值称为该维的一个维成员。如果一个维是多层次的,那么该维的维成员是由各个不同维层次的取值组合而成。例如时间维有日、月、年三个层次,分别在日、月、年上各取一个值组合起来,就得到了时间维的一个成员“某年某月某日”。
(6)多维数组
一个多维数组可以表示为如下形式:(维1,维2,…,维n,变量)。例如,若商品销售数据是按时间、地区和销售渠道组织起来的三维立方体,加上变量“销售额”,就组成了一个三维数组:(时间,地区,销售渠道,销售额)。
如果在此基础上再扩展一个商品维,就得到一个四维数组:(商品,时间,地区,销售渠道,销售额)。
(7)数据单元(单元格)
多维数组的取值称为数据单元。
当多维数组的各个维都选中一个维成员,这些维成员的组合就惟一确定了一个变量的值,此时数据单元就可以表示为:(维1维成员,维2维成员,…,维n维成员,变量的值)。
例如商品、地区、时间和销售渠道上各取维成员“牙膏”、“2004年1月”、“上海”和“批发”,就惟一确定了变量“销售额”的一个值(假设为100000),则该数据单元可以表示为:(牙膏,2004年1月,上海,批发,100000)。
4. OLAP与OLTP之间的比较
ROLAP的实现
1 将数据的多维结构划分为两类表:
事实表(用来存储事实的度量值及各个维的码值)
维度表(维的描述信息,包括维的层次及成员类别等)
2 按照两种结构设计:
星型模型
雪花模型
注:在ROLAP中,多维数据立方体并没有真正存在,通常需要在接受客户OLAP请求后,ROLAP服务器需要将SQL语句转化为多维存取语句,并利用连接运算拼合出多维数据立方体,因此ROLAP的响应时间较长。
基于多维数据库(MDDB)的OLAP-MOLAPOLAP服务器:存储OLAP服务软件和多维数据库
MDDB存储:采用“超立方体”形式
MDDB存取:多维操作
设计基本步骤:
(1)选择功能,例如,销售收入分析和财经分析报表。
(2)指明数字信息,例如存储类似销售收入和顾客的度量信息。
(3)确定维(时间,地区和产品等)以及每一维的粒度,例如,时间是按月和季度,地区按市、县或地区等。
(4)定义逻辑模型并装载多维数据存储,这可以直接从数据源中获得,也可以过滤并匹配数据仓库所选内容。
提供给用户的主要功能:
(1)对内涵查询的快速响应,只有快速响应才能保证分析和思考的过程。
(2)与多位数据库进行交互,使其支持预测、预先计划、进行预算等应用。
(3)发掘各维元素或信息间丰富的联系,以便发现微妙的关系。
(4)强大的计算引擎和比较分析,包括分级、比较、按百分比分类、最大值、最小值、平均值、平均转手率、按时期比较等。
(5)交叉维计算,或对基于电子表格的应用按行计算。
(6)综合统计和财务功能,如现金转账、趋势分析、时间序列分析等。
(7)灵巧计时,日期中的年、当前时刻、财务或内部的日历等。
(8)具有查询数据仓库底层细节数据的能力。
(9)沿单维或多维处理的基准点、表格、细剖和统览以及其他强有力的导航功能。
可能会遇到的问题:
(1)所支持的多维数据库的尺寸小于关系数据库的尺寸。这时可利用稀疏矩阵技术来节省空间,其副作用是增加操作、因为,存储的是概括和聚集信息,所以存储的需求要比原来的小。
(2)按粒度的级别(概括的、聚集的、预计算和派生的数据)来存储数据会带来副作用,如细剖无法达到细节数据级。
(3)高层次级别的数据具有访问和安全性控制,但没有基于使用的权限和子集级的访问控制。
(4)维结构的改变需要重组多维数据库,常用的备份和恢复功能会受限。
(5)因需要特定的前后端,会限制选择。但在扩充多维数据库的前后端后,又会导致它不能移植至另一多维数据库。
MOLAP首先对事实表中的所有外键进行排序,并将排序后的具体指标数值一一写进虚拟的多维立方体中。当然,虚拟的多维立方体只是为了便于理解而构想的,MOLAP实际的数据存储放在数据文件(Data File)中,其数据放置的顺序与虚拟的多维立方体按x,y,z坐标展开的顺序是一致的(如上图)。同时,为了数据查找的方便,MOLAP需要预先建立维度的索引,这个索引被放置在MOLAP的概要文件(Outline)中。
图中左边是ROLAP方式,右边是MOLAP方式,两者对应的是同一个三维模型。
- 对于常用的维度和维层次,在HOLAP中使用多维数据表来记录。
- 对于不常用的维度和数据,采用类似于ROLAP星型结构来存储。
- 允许将大量详细数据存放在关系数据库中,而聚集保持在分离的MOLAP存储中。
- HOLAP在主要性能上都介于 MOLAP和 ROLAP之间,其技术复杂度高于MOLAP和 ROLAP。
- HOLAP得益于ROLAP的可伸缩性,和MOLAP的快速计算。(如MS SQL SERVER)
- 在HOLAP的多维数据表中的数据维度少于MOLAP中的维度表,数据存储容量也少于MOLAP方式。
- HOLAP在数据存取速度上又低于MOLAP。