1.业务数据和分析数据使用方式的不同
普通数据库直接用于业务处理,因而需要严格约束表与表之间的关系,使数据在完整性等方面得到有效的保证。在设计这一类型的数据库的时,一般是先通过实体关系模型确定数据库中需要存储数据的表,再通过数据规范化方法(如第1、2、3范式等)改变这些表的结构,确定表的主外键,并以主外键为依据,在表之间建立起一对一或一对多的关系。图3-6即为AdventureWorks业务数据库中购买订单、买入商品运输方法和商品提供商等数据表之间的关系。从图中可以看出,对于购买订单报头这个表(PurchaseOrderHeader)而言,与供货商(Vendor)表、购买订单详情表(PurchaseOrderDetail)及运输方法表(ShipMethod)之间的关系是根据实际业务操作中应该有的关系来确定的,这样的数据库系统结构设计用于业务操作的信息化是很合适的。
图3-6 业务数据库中的表间关系示例
通过3.1节对事务处理和分析处理的比较可以得知,商务分析需要的数据库与业务数据库有很多地方不同,用于OLAP的数据应该是多维的。图3-7即为从购买地区、购买时间和产品名称等3个视角来分析购买订单时需要的一种数据立方。数据立方又称多维数据集,是使用分析数据的典型方式
图3-7 3个视角分析购买订单时需要的数据立方
2.理解仓库中的立方体
在第2章,我们从整体上掌握了商业智能的整个应用过程,相信在此过程中已经有了对数据立方的感性认识。为了理解数据仓库设计的方法,下面从使用的角度理解数据立方。
正像在数学中用X、Y、Z坐标轴表示3个空间创建一个立方体一样,可以以不同的商业视角为维度建立一个商业智能分析用的立方体,这些维的属性是立方体的坐标轴。例如可以从客户的视角去观察商业数据,这时应该建立客户维,而客户维中有客户所在的城市这一属性,因而在立方体中会出现城市坐标轴。同样,时间维中的日期属性可以作为坐标轴,产品维中的产品名称可以作为坐标轴出。这个立方体上的1个点包含3个值:用户所在的城市、特定的产品和特定的日期,图3-7的立方体就是这样建立的。通过不同的坐标轴的灵活组合,可以构成各种各样的数据立方体。使用时间仓库时的数据立方体也不都是三维的,由于商务视角的多样性,大多数情况下数据立方是以三维以上的方式组成的。
数据立方中多个维度的值是商务需求中需要观察的目标,这个目标的值一般叫度量值。度量值来源于构成商务观察目标的事实表中。例如在图3-7的立方体中,事实表中有全部产品的销售度量,那么,可以用立方体上的某一个点度量某产品在某一时间和某一城市的销售情况。
由于商业数据在数据仓库中的这种多维特性,为分析数据提供了极大的方便。
如果保持立方体的某些坐标轴的值不变而改变另外某一个轴,便可以看到度量在不同维上的变化情况。在上面的例子中,如果保持产品的名称和日期为常量,沿客户城市坐标轴移动,便可以得到在所有客户城市某一天某一产品的全部销售值。有这种分析需求的一般是地区经理。同样,可以根据财务经理、产品经理及总经理对商务分析的不同需求来对数据立方体进行不同角度的解析,如图3-8所示。
图3-8 不同视角的数据立方分析
认识事物一般是从此事物在实践中的应用开始的。以上对业务数据和分析数据使用方式的区别及对数据立方的具体使用方法的解析是认识数据仓库的基础。正是由于其作用的不同,所以设计时数据库和数据仓库的目标也不同。
3.数据仓库的设计目标
根据前面对2种数据处理方式的对比,可以得到设计数据库和数据仓库的目标之间的差异,其结果如图3-9所示。
图3-9 数据仓库和数据库目标的差异
现在的问题是这种多维分析的需求既然不能用业务数据库的方式满足,那又应该怎样解决。
实际上,为了在商务分析时能以多个视角对某个业务事实进行操作,构建分析用的数据仓库时引入了维度概念来表示分析视角,事实概念来表示分析对象,事实的量度来表示对象的分析结果。而这些概念在数据分析阶段(本书的第5章将要论述)会得到直接使用或进行一定的改动。因此,这些对象在数据仓库中的设计如何,将直接影响后续的分析工作,而它们之间的关系则构成了整个数据仓库的架构。
|