多维数据仓库的创建所使用和维护的技术与传统数据仓库有显著的不同。传统数据仓库在处理多维数据方面存在着较大的局限性,需对其进行结构和功能上的扩展,才能较好地用在多维决策分析方面。
设计和建立数据库是成功地创建数据仓库的一个关键步骤,这一步涉及的数据来自多种数据源,并且要把它们合并成一个单独的逻辑模型。不像OLTP 系统那样以高度的正规化形式存储数据,数据仓库中存储的数据以一种非正规化的形式存储数据以便提高查询的性能。数据仓库常常使用星型模式和雪花型模式来存储数据,作为OLAP 工具管理的基础,以便尽可能快地响应复杂查询。相比之下,星状结构更为简洁,便于OLAP 工作,并易于浏览,较雪花结构更适合于多维数据仓库的建模。下面就两种存储模式分别说明数据仓库中度量的建模。
1)星型模式
星型模式是最流行的实现数据仓库的设计结构。星型模式通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来执行典型的决策支持查询。一旦创建了事实表,那么可以使用OLAP 工具预先计算常用的访问信息。
星型模式是一种关系型数据库结构,在该模式的中间是事实表,周围是次要的表,数据在事实表中维护,维度数据在维度表中维护。每一个维度表通过一个关键字直接与事实表关联。维度是组织数据仓库数据的分类信息,例如时间、地理位置、组织等。维度用于父层和子层这类分层结构。例如,地理位置维度可以包含国家、城市等数据。因此,在该维度表中,维度由所有的国家、所有的城市组成。为了支持这种分层结构,在维度表中需要包括每一个成员与更高层次上维度的关系。
维度关键字是用于查询中心事实表数据的唯一标识符。维度关键字就像主键一样,把一个维度表与事实表中的一行链接起来。这种结构使得很容易构造复杂的查询语句,并且支持决策支持系统中向下挖掘式的分析。事实表包含了描述商业特定事件的数据。例如银行业务或者产品销售。事实表还包含了任何数据合计,例如每一个地区每月的销售情况。一般地,事实表中的数据是不允许修改的,新数据只是简单地增加进去。维度表包含了用于参考存储在事实表中数据的数据,例如产品描述、客户姓名和地址、供应商信息等。把特征信息和特定的事件分开,可以通过减少在事实表中扫描的数据量提高查询性能。维度表不包含与事实表同样多的数据,维度数据可以改变,例如客户的地址或者电话号码改变了。
通过降低需要从磁盘读取数据的数据量,星型模式设计有助于提高查询性能。查询语句分析比较小的维度表中的数据来获取维度关键字以便在中心的事实表中索引,可以减少扫描的数据行。星型模式的结构如图7.7所示。
图7.7 星型模式结构示意图
以下从工业企业销售管理数据仓库和保险业务多维数据仓库的需要,分析一下星状模型的构建模式。
①以销售机会作为一个主题,可以同其他几个维表组成一个星状的关系结构,如图7.8所示,粗略表示出各维之间的联系。
图7.8 销售机会数据仓库的星型关系结构(www.xing528.com)
星型数据关系模型中的事实表包含了所有纬度表的外键(Foreign Key),这些外键指向各纬度表的首键(Primary Key),如图7.9所示。利用星链接(Star Join)星型数据关系模型可以大大提高查询速度,主要原因是在事实表中每个纬度都有深度索引,而且查询先在体积小得多的维度上过滤很大的事实表,从而首先获得较小的相关数据集。
这相对于单纯从一个很大的数据表中利用单个SQL语句查询来说显然要有效得多。
图7.9 销售机会数据仓库的星型链接
②以保险公司业务为主题来考虑维的构建。数据仓库中定义4 个维:时间维、部门维、保险种类维、地理维。其中时间维、部门维和保险种类维属于非空间维,地理维属于空间维。事实表中包括4 个度量:保费、保额、赔款和地理指针。其中,保费、保额和赔款是数值型度量;地理指针是一个空间度量,代表指向地图上相应区域的空间指针集合。图7.10 详细表示出维的具体度量。
图7.10 保险业务多维数据仓库的星状模型
2)雪花模式
雪花模式是星型模式的一种扩展形式,在这种模式中,维度表存储了正规化的数据,这种结构通过减少磁盘读的数量而提高查询性能。维度表分解成与事实表直接关联的主维度表和与主维度表关联的次维度表,次维度表与事实表间接关联。雪花模式的结构示意图如图7.11所示。
图7.11 雪花模式结构示意图
在一般的多维数据仓库中,利用雪花模式的建模并不是很多,在这里不作举例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。