1、第第1章章 数据仓库与数据挖掘概述数据仓库与数据挖掘概述第三章 数据仓库设计3.1数据仓库中的数据模型概述3.2概念模型设计3.3逻辑模型设计3.4 物理模型设计3.1数据仓库中的数据模型概述数据仓库中的数据模型概述在数据仓库的构建过程中,将客观事物从现实世界的存在到计算机物理实现的抽象过程划分为四个阶段,即现实世界、概念世界、逻辑世界和计算机世界3.1数据仓库中的数据模型概述数据仓库中的数据模型概述所谓现实世界,即客观存在的世界,它是存在于现实中的各种客观事物及其相互关系的总和。对于数据仓库而言,它的内容只是完整的客观世界的一个真子集,包含了对特定决策进行支持所必需的所有客观对象。3.1数据
2、仓库中的数据模型概述数据仓库中的数据模型概述所谓概念世界,是人们对现实世界中对象的属性进行条析、逐步概括和归纳之后,将其以抽象的形式反映出来的结果,它包括概念和关系两大部分内容。3.1数据仓库中的数据模型概述数据仓库中的数据模型概述所谓逻辑世界,是指人们依据计算机物理存储的要求,将头脑中的概念世界进行转化,从而形成的逻辑表达结果。这一结果的形成,可以帮助人们将需要描述的对象从概念世界转入计算机世界。3.1数据仓库中的数据模型概述数据仓库中的数据模型概述计算机世界,是指现实世界中的客观对象在计算机中的最终表达形式,即计算机系统中的实际存储模型。客观对象的内容只有在计算机中实现了物理存储,才能供人
3、们有效地进行分析和处理。3.1数据仓库中的数据模型概述数据仓库中的数据模型概述三种模型对对象进行分析概括,去粗取精、去伪存真,得到一系列的基本概念与基本关系,这样,就形成了概念世界中的结果概念模型。对概念模型进行细分,简化基本概念的内涵,细化实体间的逻辑关系,以便最终在计算机中得到实现,这就构成了逻辑模型。依据计算机所能接受的方式,将逻辑模型的内容进一步转化为可体现在计算机系统中的模式,就得到了物理模型。3.1数据仓库中的数据模型概述数据仓库中的数据模型概述数据仓库构造过程中各种数据模型的层次与相互关系元数据,即有关数据的数据,是数据仓库中关于数据、数据操作和应用程序的结构与意义的描述信息,是
4、数据仓库的核心部件。元数据模型是指数据仓库中所有元数据的整体,它体现于数据仓库的设计、开发和使用过程的始终,对于概念模型、逻辑模型、计算机模型之间的转化和数据仓库的建立,都是不可或缺的。粒度模型,是指数据仓库在构造过程中各种粒度参数的总和。在从概念模型构造逻辑模型,由逻辑模型转换成计算机模型,最终构建数据仓库的过程,它也起着至关重要的作用。3.2概念模型设计概念模型设计3.2.1企业模型建立企业模型建立 建立企业模型是构建数据仓库的第一步。要建立起完整、正确的概念模型,必须首先建立起完整、准确的企业模型。描述了企业在进行决策支持时所需的数据的内容,以及数据之间相互依存、相互影响的关系,反映了企
5、业内各部门、各层次员工对信息的供需情况。人们可以针对该模型所揭示的内容,分步骤地构建企业的数据仓库,逐步加以完善。在构建企业模型时,最常用的方法是E-R图法,即“实体-关系图”。3.2概念模型设计概念模型设计3.2.1企业模型建立企业模型建立 E-R图改进:事实实体:(Fact Entity):用于表示现实世界中一系列相互关联的事实,一般是查询分析的焦点,在E-R图中用矩形表示;维度实体(Dimension Entity):用于对事实实体的各种属性作细化的描述,是开展查询分析的重要依据,在E-R用菱形表示;引用实体(Quotation Entity):对应于现实世界中的某个具体实体或对象,在事
6、务数据查询时能提供详细的数据,在E-R图中用六角形表示。3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 第一范式:字段都是单一属性的,不可再分3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 第二范式:满足第二范式(2NF)必须先满足第一范式(1NF),同时非主属性完全依赖于主关键字(学号,课程名称)(姓名,年龄,成绩,学分)(课程名称)(学分)(学号)(姓名,年龄)学生:Student(学号,姓名,年龄)课程:Course(课程名称,学分)选课关系:SelectCourse(学号,课程名称,成
7、绩)3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 第三范式:满足第三范式(3NF)必须先满足第二范式(2NF),同时属性不依赖于其它非主属性(学号)(姓名,年龄,所在学院,学院地点,学院电话)(学号)(所在学院)(学院地点,学院电话)学生:(学号,姓名,年龄,所在学院)学院:(学院,地点,电话)3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 数据仓库的反规范化的处理关系型数据库进行规范化处理的目的,是为了解决数据库中插入、修改异常和数据冗余度高的问题。规范化处理的结果,表现为将一个复杂的、依赖关系众多的大表分解成为若干个内容简洁、关系清楚的小表。3.2概念
8、模型设计概念模型设计3.2.2数据模型规范数据模型规范 数据仓库的反规范化的处理对于数据仓库来说,这种分解结果也不是最佳的。因为数据仓库要实现对决策的支持,常常需要进行大规模的查询操作,这种操作必然涉及对众多小表进行动态的关联。这不仅给CPU带来了巨大的运算压力,而且还要求数据库系统必须有足够的存储容量,以作为关联操作的缓冲区,同时,对多个小表的同步访问,也给系统的I/O带来了考验3.2概念模型设计概念模型设计3.2.2数据模型规范数据模型规范 数据仓库的反规范化的处理3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 E-R图方法具备较好的可操作型,形式简明,易于理解,对于
9、客观世界中的事物具有良好的描述能力,因此,它是设计数据仓库的有力工具。但是E-R图法也存在着“重点不突出”的缺陷,它所描述的所有实体,其地位是平等的,反映不出管理者和决策者所重点关心的对象。因此,需要数据仓库中的概念模型。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型星形模型是最常用的数据仓库设计结构的实现模式,它使数据仓库形成了一个集成系统,为最终用户提供报表服务和分析服务3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星形模型通过使用一个包含主题的事实表和多个维度表来支持各种决策查询。星形模型可以采用关系型数据库结构,模型的核心是事实表
10、,围绕事实表的是维度表。通过事实表将各种不同的维度表连接起来,各个维度表都连接到中央事实表。维度表中的对象通过事实表与另一维度表中的对象相关联这样就能建立各个维度表对象之间的联系。每一个维度表通过一个主键与事实表进行连接。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型事实表主要包含了描述特定商业事件的数据:订单号、销售员号、客户号、产品号、日期标识、地区名称、数量、总价等。维度表主要包含了存储在事实表中数据的特征数据:订货日期、客户名称、客户地址、销售员姓名、产民名称等。每一个维度表利
11、用维度关键字通过事实表中的外键约束于事实表中的某一行,实现与事实表的关联。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型优点:由于数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表联接起来,查询访问效率较高;同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表进行连接时其速度较快;对于非计算机专业的用户而言,星形模型比较直观,通过分析星形模型,很容易组合出各种查询。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型缺点:当业务发生变化时,原来的维度不能满足要求,需要增加维度,
12、由于事实表中的主键是由所有的维度表中的主键组成,所以这种维度的变化带来的数据的变化是非常复杂的;数据冗余量很大,不适合大数据量的情况3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 雪花型模型雪花形模型是对星形模型的扩展,每一个维度都可以向外连接多个详细类别表。在这种模式中,维度表除了具有星形模型中维度表的功能外,还连接对事实表进行详细描述的详细类别表。详细类别表通过对事实表在有关维上的详细描述达到了缩小事实表和提高查询效率的目的。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 雪花型模型雪花模型对星形模型的维度表进一步标准化,对星形模型中的维度表进行
13、了规范化处理。雪花模型的维度表中存储了正规化的数据,这种结构通过把多个较小的标准化表(而不是星形模型中的大的非标准化表)联合在一起来改善查询性能,提高了数据仓库应用的灵活性。这些连接需要花费相当多的时间。一般来说,一个雪花形图表要比一个星形图表效率低。3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 雪花型模型3.2概念模型设计概念模型设计3.2.3常见的概念模型常见的概念模型 星型模型与雪花型模型的比较3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 当前细节级当前细
14、节级来自数据源的数据,所反应的都是当前的业务情况,因此在导入数据仓库之后,首先作为当前细节级数据进行存储。这些数据规模较大,实时性强,是数据仓库用户最感兴趣的部分。当前细节级的数据,一方面依据数据仓库的既定规则,经过处理,得到轻度综合级和高度综合级的数据,另一方面,随时间的推移,逐渐“老化”,成为历史细节级的数据。3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 历史细节级历史细节级当前细节级的数据对于决策的支持程度,随数据发生时间的久远而降低。为了有效控制数据仓库中当前细节级数据的规模,保证系统的运行效率,在设计数据仓库时,设定一个合理的时间阈值,将当前细节级数据
15、中发生时间超过该阈值的部分,即已经“老化”的数据,转为历史细节级的数据,并以合适的方式进行存储。3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 轻度综合级轻度综合级为了有效控制数据仓库中进行决策支持时的系统开销,对当前细节级的数据,通常以一定的时间段为单位进行综合。这一设定的时间段参数又称为“粒度”。以较小的粒度生成的综合数据,称为“轻度综合级数据”。3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 高度综合级高度综合级以较长的时间段,即较大的粒度,对当前细节级的数据进行综合而形成的结果,称为“高度综合级数据”。高度综合级的数据内容十分
16、精炼,可以认为是一种“准决策数据”。3.3逻辑模型设计逻辑模型设计3.3.1数据仓库的数据综合数据仓库的数据综合 3.3逻辑模型设计逻辑模型设计3.3.2数据仓库的数据分割数据仓库的数据分割 数据分割是指把数据分散存储到多个物理存储单元中,可提高数据处理的灵活性,达到以下目的:3.3逻辑模型设计逻辑模型设计3.3.2数据仓库的时间分割数据仓库的时间分割 数据分割的依据和粒度,应随数据仓库所在行业的特点而变。常用的分割依据包括:3.3逻辑模型设计逻辑模型设计3.3.2数据仓库的数据分割数据仓库的数据分割 证券行业证券行业设定时间阈设定时间阈值,数据量值,数据量也会达到也会达到GB以年为单以年为单
17、位进行分位进行分割,阈值割,阈值为为3年,工年,工作量减少作量减少1/3分析不同等分析不同等级城市的交级城市的交易状况,可易状况,可以按营业部以按营业部所在地理位所在地理位置进行分割置进行分割考察不同等级城市中各种考察不同等级城市中各种委托方式对交易量的贡献,委托方式对交易量的贡献,也可同时按地理位置和委也可同时按地理位置和委托方式进行数据分割托方式进行数据分割3.3逻辑模型设计逻辑模型设计3.3.3数据仓库的数据组织数据仓库的数据组织 3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度是指数据仓库中数据单元的详细程度和级别。数据越详细,粒度就越小,级别也就越低
18、;数据综合度越高,粒度就越大,级别也就越高3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响粒度对数据分析的影响3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响:影响逻辑结构设计粒度对数据分析的影响:影响逻辑结构设计AdventureWorksCycles公司的管理者想按照国家、区域、分区域和分区域内的销售员这样的层次关系来查看公司的销售情况3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响:影响逻辑结构设计粒度对数据分析的影响:影响逻辑结构设计3.
19、3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响:影响数据的存储粒度对数据分析的影响:影响数据的存储电话公司记录:每个顾客每月有200条记录,每条记录需要200个字节存储,总共需要40000个字节。但每个顾客一个月的综合信息只有1条,存储只需200字节。可见低粒度和高粒度在存储空间上差别很大3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响:影响分析效果粒度对数据分析的影响:影响分析效果数据的综合使得细节信息丢失。若分析需求的粒度小于设计的粒度,则需求不可能得到满足;若分析需求的粒度大于设计的粒度,则
20、查询会在更小的粒度上进行统计运算后才能回答,这将增加用户的等待时间。3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度对数据分析的影响:影响分析效果粒度对数据分析的影响:影响分析效果李某在2008年2月21号是否在上海买了一辆变速车张某某在2008年1月到2008年12月自行车配件的总消费是多少细节数据综合数据3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧数据仓库的性能和存储空间是一对矛盾。如果粒度设计得很小,则事实表将不得不记录所有的细节,储存数据所需要的空间将会急剧的膨胀;若设计的粒度很大,虽然由于
21、事实表体积大而带来的诸多问题能够得到一定程度的缓解,但决策者不能观察细节数据。粒度的设计成了事实表设计中的重要一环。3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧设计步骤粗略估算确定合适的粒度级的起点,可以粗略估算数据仓库中将来的数据行数和所需的直接存取存储空间,粗略估算可以按照以下步骤完成。确定数据仓库中将要创建的所有表,然后估计每张表中行的大小(确切大小可能难以知道,估计一个下界和一个上界就可以了)。估计一年内表中的最少行数和最多行数 将各表中行数可能的最大值和最小值分别乘以数据的最大长度和最小长度3.3逻辑模型设计逻辑模型设计3
22、.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧设计步骤(2)确定双重或单一的粒度一旦估计完成后,根据数据仓库环境中将具有的总的行数的大小,设计和开发必须采取不同的方法。3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧设计步骤(3)确定粒度的级别计划在数据仓库中进行的分析类型将直接影响到数据仓库的粒度划分。将粒度的层次定义得越高,就越不能在该仓库中进行更细致的分析。粒度层次为月按日汇总的信息分析3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧设计步骤(3
23、)确定粒度的级别数据仓库通常在同一模式中使用多重粒度。例如,可以用低粒度数据保存近期的财务数据和汇总数据,对时间较远的财务数据只保留粒度较大的汇总数据。这样既可以对财务近况进行细节分析,又可以利用汇总数据对财务趋势进行分析,这里的数据粒度划分策略就需要采用多重数据粒度。3.3逻辑模型设计逻辑模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计 粒度的设计技巧粒度的设计技巧设计步骤设计原则粒度设计主要是权衡粒度级别,对于业务量大,分析要求比较高的情况下,最佳解决办法则是采用多重粒度的形式。而针对具体的某个事实的粒度而言,应当采用“最小粒度原则”,即将量度的粒度设置到最小。3.3逻辑模型设计逻辑
24、模型设计3.3.4数据仓库的粒度设计数据仓库的粒度设计报刊名称报刊名称订阅人姓名订阅人姓名订阅人订阅人ID订阅人年龄订阅人年龄订阅人性别订阅人性别联系电话联系电话支付金额支付金额期刊编号期刊编号收寄地址收寄地址所在支局所在支局营业员姓名营业员姓名支局电话支局电话。订阅总人数订阅总人数总订阅金额总订阅金额人均订阅金额人均订阅金额总金额同比增长总金额同比增长订阅量最大报刊订阅量最大报刊订阅量最小报刊订阅量最小报刊订阅人性别比例订阅人性别比例订阅人年龄层次比例订阅人年龄层次比例3.4物理模型设计物理模型设计数据仓库的物理数据模型,是指逻辑模型在计算机世界中的具体实现方法,包括物理存取方式的设计、数据
25、存储结构的构造、数据存放位置的确定等。数据仓库的物理数据模型是在逻辑模型的基础上实现的。3.4物理模型设计物理模型设计3.4.1物理模型设计要点物理模型设计要点(1)对数仓库所依据的DBMS必须有深入的了解,特别要了解数据的存储结构和存取的现实方法。(2)对数据仓库的数据环境,尤其是业务数据的数量规模、使用频度、操作方式等方面的特点,要有全面的了解,以便采取有效措施,对系统时间和空间的使用效率进行平衡和优化。(3)对数据仓库外部储存设备的特性,必须有足够的了解,如I/O接口的特性、数据分组的方法、RAID的种类与现实手段等。3.4物理模型设计物理模型设计3.4.1物理模型设计要点物理模型设计要
26、点 物理模型设计的主要内容,包括以下几个方面:3.4物理模型设计物理模型设计3.4.2事实表的设计事实表的设计 3.4物理模型设计物理模型设计3.4.2事实表的设计事实表的设计 在数据仓库中,业务数据主要记录在事实中。因此,在物理模型的层次上看,事实表不仅是数据仓库的核心,也是构成数据仓库的所有类型的表中体积最大的表。为了保证数据仓库系统的效率,减少查询、备份、恢复等操作所需要的时间,降低数据过于集中而带来的风险,在设计事实表时,必须注意数据分割、粒度控制等环节,并合理设置每个事实表中列的数量,将过于复杂的表加以分解。此外,还可以将历史数据归档到独立的事实表中,从而有效地控制表的大小。3.4物理模型设计物理模型设计3.4.3维度表的设计维度表的设计 完成事实表的设计之后,就应当根据逻辑模型来设计维度的模型。在设计事实表和维度表之间的关系时,应注意尽可能让维度表中的数据直接参考事实表,避免通过其他的中介而间接参考事实表的做法,以防止在查询中出现大量的表的相互关联,给系统的CPU、I/O通道及存储设备增加太大的负担,这样才能保证系统具有较高的效率。3.4物理模型设计物理模型设计3.4.3维度表的设计维度表的设计 维度表的内容,是对所依附的事实表的某些信息的描述,这种描述应具有以下特征3.4物理模型设计物理模型设计3.4.4物理模型对数据仓库性能的影响物理模型对数据仓库性能的影响