《数据仓库的架构.doc》由会员分享,可在线阅读,更多相关《数据仓库的架构.doc(3页珍藏版)》请在金锄头文库上搜索。
1、数据仓库是多维数据库,它扩展了关系数据库模型,以星形架构为主要结构方式的,并在它的基础上,扩展出理论雪花形架构和数据星座等方式,但不管是哪一种架构,维度表、事实表和事实表中的量度都是必不可少的组成要素1 星形架构星形模型是最常用的数据仓库设计结构的实现模式,它使数据仓库形成了一个集成系统,为最终用户提供报表服务,为用户提供分析服务对象。星形模式通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来支持各种决策查询。星形模型可以采用关系型数据库结构,模型的核心是事实表,围绕事实表的是维度表。通过事实表将各种不同的维度表连接起来,各个维度表都连接到中央事实表。维度表中的对象通过事实表与
2、另一维度表中的对象相关联这样就能建立各个维度表对象之间的联系。每一个维度表通过一个主键与事实表进行连接。事实表主要包含了描述特定商业事件的数据,即某些特定商业事件的度量值。一般情况下,事实表中的数据不允许修改,新的数据只是简单地添加进事实表中,维度表主要包含了存储在事实表中数据的特征数据。每一个维度表利用维度关键字通过事实表中的外键约束于事实表中的某一行,实现与事实表的关联,这就要求事实表中的外键不能为空,这与一般数据库中外键允许为空是不同的。这种结构使用户能够很容易地从维度表中的数据分析开始,获得维度关键字,以便连接到中心的事实表,进行查询,这样就可以减少在事实表中扫描的数据量,以提高查询性
3、能。星形模式虽然是一个关系模型,但是它不是一个规范化的模型。在星形模式中,维度表被故意地非规范化了,这是星形模式与OLTP系统中关系模式的基本区别。 使用星形模式主要有两方面的原因:提高查询的效率。采用星形模式设计的数据仓库的优点是由于数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表联接起来,查询访问效率较高,同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表进行连接时其速度较快,便于用户理解;对于非计算机专业的用户而言,星形模式比较直观,通过分析星形模式,很容易组合出各种查询。2 雪花形架构雪花模型是对星形模型的扩展,每一个维度
4、都可以向外连接多个详细类别表。在这种模式中,维度表除了具有星形模型中维度表的功能外,还连接对事实表进行详细描述的详细类别表,详细类别表通过对事实表在有关维上的详细描述达到了缩小事实表和提高查询效率的目的。雪花模型对星形模型的维度表进一步标准化,对星形模型中的维度表进行了规范化处理。雪花模型的维度表中存储了正规化的数据,这种结构通过把多个较小的标准化表(而不是星形模型中的大的非标准化表)联合在一起来改善查询性能。由于采取了标准化及维的低粒度,雪花模型提高了数据仓库应用的灵活性。这些连接需要花费相当多的时间。一般来说,一个雪花形图表要比一个星形图表效率低。3星形与雪花形架构的比较在数据仓库中表与表
5、之间是不必满足3个范式的,也不必考虑数据冗余,相反,为了在分析型查询中获得较好的性能,数据仓库中的表还应该尽量集中同类型的数据,同时把有些常见的统计数据进行合并。标准的关系数据表不能满足数据的分析能力,所以对表进行非标准化处理以形成数据仓库中特有的星形架构方式,但这样一来,如果所有的分析维度都作为事实表的一个直接维度,数据的冗余是相当大的,的确能形成一个关于产品所有属性的维度,但要在一张表中表达产品类别属性和产品的属性,需要的存储空间是相当大的。在星形架构的基础上扩展出雪花形架构,实质上是在分析查询的性能和数据仓库的存储容量两方面进行权衡的结果。雪花形与星形层次结构的差异星形雪花形行数多少可读性容易难表格数少多搜索维的时间快慢