3.2.2 数据仓库的架构方式及其比较

3.2.2  数据仓库的架构方式及其比较

传统的关系数据库一般采用二维数表的形式来表示数据,一个维是行,另一个维是列,行和列的交叉处就是数据元素。关系数据的基础是关系数据库模型,通过标准的SQL语言来加以实现。

数据仓库是多维数据库,它扩展了关系数据库模型,以星形架构为主要结构方式的,并在它的基础上,扩展出理论雪花形架构和数据星座等方式,但不管是哪一种架构,维度表、事实表和事实表中的量度都是必不可少的组成要素。下面解析由这些要素构成的数据仓库的架构方式。

1.星形架构

星形模型是最常用的数据仓库设计结构的实现模式,它使数据仓库形成了一个集成系统,为最终用户提供报表服务,为用户提供分析服务对象。星形模式通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来支持各种决策查询。星形模型可以采用关系型数据库结构,模型的核心是事实表,围绕事实表的是维度表。通过事实表将各种不同的维度表连接起来,各个维度表都连接到中央事实表。维度表中的对象通过事实表与另一维度表中的对象相关联这样就能建立各个维度表对象之间的联系。每一个维度表通过一个主键与事实表进行连接,如图3-10所示。

 1648400.gif

图3-10  星形架构示意图

事实表主要包含了描述特定商业事件的数据,即某些特定商业事件的度量值。一般情况下,事实表中的数据不允许修改,新的数据只是简单地添加进事实表中,维度表主要包含了存储在事实表中数据的特征数据。每一个维度表利用维度关键字通过事实表中的外键约束于事实表中的某一行,实现与事实表的关联,这就要求事实表中的外键不能为空,这与一般数据库中外键允许为空是不同的。这种结构使用户能够很容易地从维度表中的数据分析开始,获得维度关键字,以便连接到中心的事实表,进行查询,这样就可以减少在事实表中扫描的数据量,以提高查询性能。

在AdventureWorksDW数据仓库中,若以网络销售数据为事实表,把与网络销售相关的多个商业角度(如产品、时间、顾客、销售区域和促销手段等)作为维度来衡量销售状况,则这些表在数据仓库中的构成如图3-11所示,可见这几个表在数据仓库中是以星形模型来架构的。

星形模式虽然是一个关系模型,但是它不是一个规范化的模型。在星形模式中,维度表被故意地非规范化了,这是星形模式与OLTP系统中关系模式的基本区别。

使用星形模式主要有两方面的原因:提高查询的效率。采用星形模式设计的数据仓库的优点是由于数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表联接起来,查询访问效率较高,同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表进行连接时其速度较快,便于用户理解;对于非计算机专业的用户而言,星形模式比较直观,通过分析星形模式,很容易组合出各种查询。

1648401.gif 

图3-11  AdventureWorksDW数据仓库中部分表构成的星形架构

2.雪花形架构

雪花模型是对星形模型的扩展,每一个维度都可以向外连接多个详细类别表。在这种模式中,维度表除了具有星形模型中维度表的功能外,还连接对事实表进行详细描述的详细类别表,详细类别表通过对事实表在有关维上的详细描述达到了缩小事实表和提高查询效率的目的,如图3-12所示。

雪花模型对星形模型的维度表进一步标准化,对星形模型中的维度表进行了规范化处理。雪花模型的维度表中存储了正规化的数据,这种结构通过把多个较小的标准化表(而不是星形模型中的大的非标准化表)联合在一起来改善查询性能。由于采取了标准化及维的低粒度,雪花模型提高了数据仓库应用的灵活性。

这些连接需要花费相当多的时间。一般来说,一个雪花形图表要比一个星形图表效率低。

在AdventureWorksDW数据仓库中,以图3-11的架构图为基础,可以扩展出雪花模型的架构,“DimProduct”表有一个详细类别表“DimProductSubcategory”,而“DimCustomer”表也有一个表示客户地区的表“DimGeograph”表作为其详细类别表,将它们加入数据仓库后,整个数据仓库就是雪花形架构,如图3-13所示。

   错误!

  1648402.gif  

图3-12  雪花模型架构示意图

1648403.gif 

图3-13  AdventureWorksDW数据仓库中部分表构成的雪花形架构

3.星形与雪花形架构的比较

在3.1节的讨论中可以得知,在数据仓库中表与表之间是不必满足3个范式的,也不必考虑数据冗余,相反,为了在分析型查询中获得较好的性能,数据仓库中的表还应该尽量集中同类型的数据,同时把有些常见的统计数据进行合并。按照这种思想,图3-13中的“DimProductSubcategory”表和“DimGeograph”表可以并入“DimProduct”表和“DimGeograph”表中使整个数据仓库呈现星形架构,但是微软在设计AdventureWorksDW数据仓库时并没有这样做,反而在“DimProductSubcategory”表和“DimProduct”表及“DimGeograph”表和“DimGeograph”表之间设计成满足一定范式要求的结构,下面将解释其原因。

标准的关系数据表不能满足数据的分析能力,所以对表进行非标准化处理以形成数据仓库中特有的星形架构方式,但这样一来,如果所有的分析维度都作为事实表的一个直接维度,数据的冗余是相当大的,比如将“DimProductSubcategory”表合并到“DimProduct”表中,的确能形成一个关于产品所有属性的维度,但要在一张表中表达产品类别属性和产品的属性,需要的存储空间是相当大的。由此可以看出,在星形架构的基础上扩展出雪花形架构,实质上是在分析查询的性能和数据仓库的存储容量2方面进行权衡的结果。表3-3具体比较了2种类型的架构差异。只有明确了这些差异,才能在设计数据仓库时选择最合适的架构方式。

表3-3  雪花形与星形层次结构的差异

 

   

  花  形

行数

可读性

容易

表格数量

搜索维的时间

4.星座模式

一个复杂的商业智能应用往往会在数据仓库中存放多个事实表,这时就会出现多个事实表共享某一个或多个维表的情况,这就是事实星座,也称为星系模式(galaxy schema)。
在AdventureWorksDW数据仓库中有多个事实,为了便于显示,取最重要的2个事实表“FactInternetSales”和“FactResellerSales”作为星座模式的例子。由于对网络销售和批发商销售的分析有很多观察视角都是相同的,因而这2个事实表共享的维度表较多,比如促销手段、时间和产品等。在数据库关系图中把它们的关系表现出来后,如图3-14所示。

1648404.gif  

图3-14  数据仓库的事实星座模式示例

5.数据集市

数据集市是在构建数据仓库的时候经常用到的一个词汇。如果说数据仓库是企业范围的,收集的是关于整个组织的主题,如顾客、商品、销售、资产和人员等方面的信息,那么数据集市则是包含企业范围数据的一个子集,例如只包含销售主题的信息,这样数据集市只对特定的用户是有用的,其范围限于选定的主题。

数据集市面向企业中的某个部门(或某个主题)是从数据仓库中划分出来的,这种划分可以是逻辑上的,也可以是物理上的。例如在AdventureWorksDW数据仓库中就是逻辑上划分的数据集市。

数据仓库中存放了企业的整体信息,而数据集市只存放了某个主题需要的信息,其目的是减少数据处理量,使信息的利用更加快捷和灵活。

数据仓库由于是企业范围的,能对多个相关的主题建模,所以在设计其数据构成时一般采用星系模式,AdventureWorksDW数据仓库就是这种情况。而数据集市是部门级的,具有选定的主题,可以采用星形或雪花模式。
图3-15是数据仓库、数据集市和数据立方之间的关系,通过此图可以更好地理解这3个概念。  
                          错误!

1648405.gif 

图3-15  数据仓库、数据集市和数据立方之间的关系     

 

轉載自http://www.违规广告.com/art/200710/58772.htm

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7899089/viewspace-613953/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7899089/viewspace-613953/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值