目录
- 四、数据仓库的概念模型
- (一)多维数据模型
- (二)维度与粒度
- 五、数据仓库的逻辑模型
- (一)多维模型
- (二)星形模型
- (三)雪花模型
- 六、数据仓库的物理模型
- (一)位图索引模型
- (二)广义索引模型
- (三)连接索引模型
- (四)RAID存储结构
四、数据仓库的概念模型
概念数据模型(Conceptual Data Model,简称概念模型):对现实管理决策中各个主题及其特征的数据抽象表示。
概念模型应具有特点:
(1)能够比较真实地模拟或抽象表示用户的决策主题;
(2)表示方法简单直观且易于用户理解;
(3)与计算机系统支持的具体数据模型无关;
(4)易于向数据仓库的逻辑数据模型转换;
学术研究的概念模型: ①数据锥体(Data Cube)模型,②维事实模型DFM(Dimensional Fact Model),③ StarER模型,④多维模式CMS(Conceptual Multidimensional Schema),⑤扩展ER模型,⑥ DWER模型等。
(一)多维数据模型
定义2-1 称A(维度1,维度2,…,维度n;变量1,…,变量k)是一个名称为A的n维数组,也称A为n维超立方体(Hypercube)或多维数据模型(多维模型)。
多维数据模型通常用于描述决策分析的一个主题框架。
1、变量
决策分析的度量指标,一个描述数据实际意义的名称。它描述数据 “是什么”,即已经发生过的事实(Fact)。
变量的取值为连续型实数,如企业 “销售收入”,“管理成本”,旅客入住宾馆的 “入住人次”,“人均天数” 等。
2、维度
决策分析人员观察数据(度量指标、事实)的一个特定角度称为维度,也简称维。例如,时间、地理就是两个不同的维度。
3、维的层次
决策分析人员在某个维度上观察数据(度量指标)时需要的细节程度称为维的层次,也称作维的级别。
(1)时间维的层次可以有:日、周、旬、月、季、年等不同的维层次,即决策分析人员可以观察每日入住人次,也可以观察每周、每月或每年的入住人次。
(2)辖区维的层次可以公安部,某省公安厅、某市公安局、某县公安分局、某乡派出所等。
(3)地理维的层次可有全国,省份,地市,区县,乡镇等层次。
4、维成员
维成员就是一个维度在某个维层次上的一个具体取值。2014年1月和2014年2月就是在时间维的 “月” 层次上的两个维成员;2014年3月1日,2014年3月2日等都是时间维度上 “日” 层次上的两个维成员。
5、多维数据集
多维数组的每个维度都指定了确定的维成员、且每个变量对应于每个维成员都赋予了具体的数值,就称一个多维数据集。
6、数据单元(单元格)
多维数据集指定维成员后对应变量值的一个存储空间。因此,每个单元格描述了一个确定的事实。
关于Hotel多维模型的一个多维数据集。它一共有48个单元格,其中(2014年1月,福建,龙湾;143)对应的数据单元格描述了这样一个事实:在2014年1月份,福建省有143人次入住龙湾公安分局辖区的宾馆。
7、多维数据集的两种结构
(1)超立方体结构(Hypercube):描述一个决策主题的三维或更多维数组,且每个维彼此垂直,数据空间的各个单元格都取定了相同层次的维成员。
(2)多立方体(Multicube)结构:用若干个较小的超立方体结构表示一个大的超立方体结构。
(二)维度与粒度
数据的粒度是指数据仓库的数据单元中所保存数据的综合程度。数据的综合程度越高,其粒度就越粗。反之,数据的综合程度越低,其粒度也就越细。
多维数据集数据的粒度与维的层次是两个联系密切,而且内涵一致的概念,即维的层次刻画了数据的粒度,维的层次越低,数据的粒度就越小,反之,维的层次越高,数据的粒度就越大。
数据粒度设计深刻地影响存放在数据仓库中数据占用存储空间的大小和所能回答的查询类型。数据粒度小,即维的层次低可以回答许多细节的查询需求,但占用过多的存储空间。
五、数据仓库的逻辑模型
逻辑数据模型(Logical Data Model)是用户从数据仓库管理系统中所看到的、具体的 DWMS 所支持的数据模型。
商品化的数据仓库管理系统(DWMS)产品中,主要有两大类可供用户选择。
(1)基于关系模型的数据仓库管理系统(Relational DWMS,RDWMS),如 SQL Server、Oracle、DB2 等。前实际应用最多的一类,它们都是在以前的 RDBMS 产品中增加多维数据存储管理和控制相关的功能形成的。
(2)基于多维模型的数据仓库管理系统,称为多维数据库管理系统(Multi-Dimensional DataBase Management System,NMDDBMS),也称纯多维数据库管理系统。直接支持多维数据模型,即多维数据模型无需特殊转换,即可交由 NMDDBMS 进行集中存储和管理控制。
(一)多维模型
若用纯多维数据库管理系统作为 DW 的管理平台,则多维数据模型既是数据仓库的概念模型,又是数据仓库的逻辑模型,而多维数据集都存储在多维数据库中。
1、多维数据库
多维数据库(Multi-Dimesional DataBase,简称是长期存储在计算机内的、可共享的多维数据集合。MDDB 将所有数据都以 n 维数组的形式存储。
2、多维数据库管理系
多维数据库管理系统是位于用户与操作系统之间的一层数据管理软件,负责对多维数据库进行统一管理和控制,并为用户和应用程序提供访问多维数据库的方法等。
3、纯多维数据库管理系统Caché
Caché 是美国 Intersystems 公司推出的一款纯多维数据库管理系统,是一种面向对象的多维数据库管理系统,并支持 SQL 的访问方式。该系统具有以下特点。
(1)速度快;
(2)使用简单
(3) 接口容易;
(4)对象型编辑
(5)真正C/S的3层结构
(6)灵活性,可不经修改便能在多种操作系统平台上(如Windows98/NT、各种UNIX和Linux)运行。
(7)支持WEB开发;
(8)价格便宜
在美国和欧洲的HIS系统(Hospital Information System)中,使用 Caché 多维数据库管理系统所占的比例是最大的,被医疗界公认为首选数据库。哈尔滨医科大学第一临床医学院2007年实施了基于 Caché 的 HIS 系统。
4、多维数据库存储
多维数据集用超立方体结构(Hypercube),或多立方体结构(Multicube)表示,因此,采用纯多维数据库管理系统(MDDBMS)来存储和管理多维数据集是一种理想的方法。
(1)多维数据库存储的优点:
多维数据库存储多维数据集,其数据显示直观、计算处理效率高,特别便于汇总。
(2)多维数据库存储的缺点:
① 增加维度操作麻烦:超立方体(3维)建立前必须确定各个维度及其层次关系。但建立后若要增加一个新的维度,就要重建立新的超立方体(4维)。
② 维度增多引起灾难:超立方体随着维度的增多,其数据量呈指数增长,有可能导致数据文件超过操作系统文件空间上限。
③ 实时细节数据缺乏:超立方体存储的都是前期抽取的汇总级别数据,缺乏事实细节数据。
(二)星形模型
若用户选择 RDWMS 产品,多维数据集就必须按照关系模式组织数据,存放在基本表中。
星形模型由一个事实表和多个维度表的连接表示多维数据模型,其中矩形表示事实表,凹圆角矩形表示维度表,并用直线表示其间的主键-外键联系。星形模型是多维数据模型在关系数据库中的组织和存储结构描述,即它是多维数据模型的关系模型表示方法。因此,星形模型是多维数据模型的一种逻辑模型。
1、事实表
事实表是星型模型结构的核心,它至少应包含两个部分,一是多维数据模型的事实(变量),也就是度量指标值,另一个是由主键和若干外键。
事实表可以通过外键与维度表的主键连接,帮助用户理解度量指标值的实际意义,还可以按照维度表中维度层次进行各种统计和分析。
2、维度表
维度表就是存放多维数据模型维度信息的基本表,它也包括两个部分,一个是主键,并作为外键存放在事实表中。另一个是维度名称和维层次等细节信息,它为事实表中的每个事实提供了详细的描述信息。
3、星形模型的优势
(1)星形模型围绕一个确定的主题, 体现了数据仓库对数据结构和组织的要求。
(2)星形模型表达直观,易于理解且设计相对容易。
(3)星形模型维度表包含了用户经常查询和分析的属性,优化了对数据库的浏览,在维度表和事实表之间没有任何 “迷宫 ”,使查询的过程变得简单而直接。
(4)星形模型为 OLAP 提供了良好的工作条件,使 OLAP 能通过星形连接和星形索引,显著提高查询性能。
(3)设计相对较为简单,因为不用考虑关系模式规范化化问题。
4、星形模型的不足
(1) 维度表通常是非规范化的,造成很大的数据冗余。
(2) 由于星形模型中各个维度表主键的组合构成事实表的主键,导致维度的变化非常复杂、 费时。
(3)维度属性的复杂形成的大维度问题,比如长文本字段占用存储空间,维度数据不易更新和维护,大维度表填充数据难度增大。
(4)处理维的层次关系比较困难,特当维的属性复杂时。
(5)无法表达 “多对多” 的联系。
(三)雪花模型
1、雪花模型的概念
雪花模型是星形模型按照关系数据库规范化理论对维度表进行分解的结果。其目的是消除数据冗余,同时增加更多对事实进行细节描述的信息,提高查询分析的灵活性。但其查询效率通常比星型模型表示的多维数据集要低一些。
2、雪花模型优势
因为雪花模型是对星形模型维度表进行分解和规范化的结果,所以具有如下优势:
(1)减少了一定数据冗余量,节约了许多存储空间;
(2)处理复杂维度和更新维度更加容易;
(3)表示“多对多”的联系方便
(4)查询分析更具灵活性;
3、雪花模型的不足
(1)事实表与维度表、详细类别表联系比较复杂,用户不易理解。
(2)浏览查询多维数据内容相对困难。
(3)额外的详细类别连接操作导致查询性能下降。
六、数据仓库的物理模型
物理数据模型(Physical Data Model),是描述数据在存储介质上组织结构的数据模型,它不但与具体的 DBMS 有关,而且还与操作系统和硬件有关,是机器世界物理层次的数据模型。
(一)位图索引模型
- 重要实用:在数据仓库的存储结构中,位图索引是一项非常重要且实用的索引模型。
- 索引条件:对于那种只取少量几个离散值的属性列(属性取值种类在1%以下)来说,位图索引就是用一个二进制串,代替基本表中某一列的取值。
- 索引效果:使我们在不触及数据记录的情况下,直接通过位图索索引而快速地获得查询结果。
例
某市公安局所在地有200万人口,其户籍登记信息包括姓名,性别、婚姻状况、籍贯等100多个属性。不失一般性,下表仅列出6条记录作为例子。
现在希望快速地查找出满足条件:性别=“男”and 婚姻状况=“未婚”的所有记录。
1、不用索引查询
如果不使用索引,就必须从数据库中逐一读出每一条记录到内存,然后判断该记录是否满足查询条件。鉴于户籍信息登记表的属性较多(102个),且登记表中有200万条记录,因此这样的查询过程需要花费较长的时间。
2、用位图索引查询
显然,户籍信息登记表的性别属性只有 “男”、“女” 两种取值,而婚姻状况只有 “未婚”、“已婚”、“离异” 三种取值,即属于只取少量几个离散值的属性,因此可以为其分别创建位图索引。
性别属性有“男”、“女”两种取值,可以为性别属性列创建两个位图索引,即两个二进制串。性别 “男” 的位图索引,用二进制串101001表示,其中每一个位表示对应行的性别是否为“男”。是男则该位取1,否则为0。性别取“女”时对应的位图索引为010110。这样就得到性别属性的所有位图索引,如下表所示。
对于婚姻状况这一个属性列,由于它有三种取值,因此,应该建立三个位图索引, “已婚”的位图索引为110010,“未婚”的为001000,“离异”的为000100。可得到婚姻状况属性的所有位图索引,如下表所示。
查找:性别=“男”and 婚姻状况=“未婚”的所有记录?取出性别“男”的位图索引101001,取出婚姻状况“未婚”的位图索引001001。对两个位图索引进行合取运算,得001001。 001001的第3位和第6位是1,从户籍登记表中读出第3和第6条记录就是我们需要查询的结果。
位图索引总结:
(1)由于位图索引为二进制串,占用空间少且仅仅涉及位的逻辑运算,在内存中可实现快速运算,并提高查询效率
(2)位图索引用于类别统计也非常高效,比如,在户籍登记表中要统计已婚人员数量,只需要统计“已婚”位图索引中1的个数即可,而不需要读取登记表的每一条记录来逐一判断累加。
3、位图索引的适用条件
通常,属性取值种类占总记录数的1%以下就比较适合创建位图索引。
(二)广义索引模型
- 广义索引:决策分析人员最关心而且经常需要查询的、关于数据仓库的一些统计数据。
- 索引目的:提高数据的查询速度。
- 创建方法:从操作型数据环境抽取数据并向数据仓库中装载的同时,可以根据用户的需要建立各种广义索引,而每一次向数据仓库追加数据时,就重新生成或更新这些广义索引的内容。这样就无需为建“广义索引”而重新去扫描数据仓库。
- 创建条件:对于一些经常性的统计数据查询,如果预先建立了 “广义索引”,就可直接通过直接查询广义索引来代替对事实表的查询,其查询速度显然要比直接查询事实表要快很多。
(三)连接索引模型
- 连接索引:事实表和维度表中满足连接条件的元组主键形成的索引项,并保留在数据仓库系统之中。
- 索引使用:每当需要将事实表和维度表进行连接运算时,就直接利用链接索引项的指针进行连接运算。
设有关系 R(Rid,A,B,C,D)和S(Sid,W,X,Y,Z),有1000条记录,其中 Rid 和 Sid 分别是主键。
它们的全连接为 RS(Rid,Sid,A,B,C,D,W,X,Y,Z)有10个属性,100万条记录的大表。
它们的链接索引由两个主键属性形成的索引项(Rid,Sid)构成,虽然也有100万条记录,但显然比全连接结果要小得多。
假设满足 R.A=S.W 的记录总数为2000条。
- 若不用连接索引,查询满足 R.A=S.W 的记录,必须从共有100万条记录的全连接关系RS(Rid,Sid,A,B,C,D,W,X,Y,Z)中筛选这2000条记录。
- 使用链接索引:如果事先建立了 R.A=S.W 的连接索引表RS(Rid,Sid),根据前面分析它仅有2000条记录。
(四)RAID存储结构
数据仓库这种大数据的存储问题,可以选用 RAID(Redundant Array of Inexpensive Disk)技术支持的廉价冗余磁盘阵列。
虽然 RAID 磁盘阵列包含多块磁盘,甚至几百块磁盘,但是在操作系统下是作为一个独立的大型存储设备进行管理的。
RAID 技术分为 RAID0、1、2、3、4、5,6,7 等几个不同的等级标准,RAID0 又可以配合后面几种进行更多的功能组合,形成 RAID10、30、50 等工作方式。这些等级标准分别为用户提供了速度、价格、容量和安全性不相同的磁盘阵列的多种选择。
- RAID 0,又称为磁盘条带化(Striping)工作方式。
- RAID 1,又称为镜像(Mirroring)工作方式。
- RAID 10(或者叫RAID0+1)也可以简单的理解成两个分别由多个磁盘组成的RAID0阵列再进行镜像。
- 由于 RAID 2 是一种比较特殊的专用 RAID 模式,与现有的磁盘驱动器不兼容,因实现成本比较高,目前还没有实际应用。
- RAID 3 是在 RAID 2 基础上发展而来的,采用并行传输及校验工作方式(Parallel transfer with parity)。主要的变化是用相对简单的异或逻辑运算(XOR, eXclusive OR)校验代替了相对复杂的汉明码校验,从而大幅降低了成本。
- RAID 4 采用带奇偶的条块化工作方式,它是 RAID 0 和 RAID 3 工作方式的结合,也称为具有共享校验硬盘的独立数据硬盘(Independent Data disks with shared Parity disk),I/O 传输率比 RAID 3 高,但磁盘空间利用率比 RAID 0 低。
- RAID 5是目前应用最广泛的 RAID 技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上。以 n 块硬盘构建的 RAID 5 阵列可以有 n-1 块硬盘的容量,存储空间利用率非常高。
经过多年的发展,RAID技术级别虽然种类众多,但一个突出的局限性就是,无法容忍两块硬盘同时故障的情况发生。
- RAID 6 正是为了解决这个问题而诞生的。 RAID 7 称为最优的异步高 I/O 速率和高数据传输率磁盘(Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates)。
- RAID 7完全可以理解为一个独立的存储计算机,它自己的操作系统,有自己的处理器,有自己的总线,而不是通过简单的插卡就可以实现的。
随着 RAID 技术的成熟,新的技术标准也不断出现,比如还有 RAID 5E、RAID 5EE、RAID 1E、RAID DP 和 RAID ADG 等新的标准,它们都试图采用各种新的技术,从不同的侧面来保护数据仓库。
对于一般中小企业,由于缺乏计算机系统管理人才,使用 RAID 1 磁盘阵列的数据仓库服务器会有更高的可靠性、且易于管理。