第二章数据仓库设计2.1数据仓库系统设计概述2.2数据仓库设计的三级数据模型2.3提高数据仓库的性能2.4数据仓库中的元数据2.5数据仓库设计步骤2.1数据仓库系统设计概述数据仓库是一个面向数据分析型处理的数据环境,数据仓库的数据具有四个基本特征:面向主题的、集成的、不可更新的、随时间不断变化的。这些特点都说明了数据仓库从数据组织到面向的数据处理都与数据库系统有较大区别,因此数据仓库的设计方法也不同于传统的数据库系统的开发方法。1.数据仓库设计的特点(1)数据仓库的系统设计是面向分析的,它的开发往往是从最基本的主题开始,不断地发展新的主题,完善已有的主题,最终建立起一个面向主题的分析型数据环境。(2)数据仓库系统设计时,用户的需求是模糊的,这就决定了不可能从用户需求出发进行数据仓库的设计。1.数据仓库设计的特点(续)(3)数据仓库系统设计的主要目标是建立起一个全局一致的数据环境,以此作为企业决策支持系统的基础。(4)数据仓库系统的数据来源于已存在的数据库系统。(5)数据仓库系统的设计采用CLDS方法。DW建模构建DWDSS应用编程测试理解需求数据获取,集成外部数据DBDB2.数据仓库的系统设计方法创建数据仓库的工作是在原有的数据库的基础上进行的。这种从已有数据出发的数据仓库设计方法称为“数据驱动”的系统设计方法。“数据驱动”系统设计方法的基本思路:(1)利用以前所取得的工作成果进行系统建设,识别出当前系统设计与已做工作的“共同性”。2.数据仓库的系统设计方法(续)(2)从已有的DBS出发,按照分析领域对数据及数据之间的联系重新考察,组织数据仓库中的主题。(3)最核心的是利用数据模型有效地识别原有数据库中的数据和数据仓库中主题的数据的“共同性”。2.数据仓库的系统设计方法(续)数据仓库系统开发的策略选择,传统的采用自顶向下和自底向上两种策略:自顶向下的策略:先建立一个全局数据仓库的结构,然后在此基础上建立部门的数据集市和个人的数据仓库。这是一种系统解决方案,能最大限度地减少集成问题,但开发周期长,费用高,并且缺乏灵活性。2.数据仓库的系统设计方法(续)自底向上的策略:即数据集市方法,提供了灵活性,低花费,并能迅速回报投资。此方法的核心是:从最关心的部分开始,先以最少的投资,完成企业当前的需求,获得最快的回报,然后再不断扩充,完善。两种策略都可能存在某些问题,下面推荐一种以递增、进化的方式实现数据仓库。多层数据仓库企业数据仓库数据集市数据集市分布式数据集市定义高层数据模型模型提炼模型提炼递增、进化地开发数据仓库的策略:2.数据仓库的系统设计方法(续)第一步:在一个合理时间内定义一个高层次的企业数据模型,在不同的主题和可能的应用之间,提供企业范围的,一致的、集成的数据视图。这将大大减少今后的集成问题,尽管在今后企业数据仓库和数据集市开发中还需要进一步提炼。2.数据仓库的系统设计方法(续)第二步:基于上述相同的企业数据模型,可并行地实现独立的数据集市和企业数据仓库。第三步:可构造分布式数据集市,通过网络中心集成数据集市,最后构造多层数据仓库。第二章数据仓库设计2.1数据仓库系统设计概述2.2数据仓库设计的三级数据模型2.3提高数据仓库的性能2.4数据仓库中的元数据2.5数据仓库设计步骤2.2数据仓库设计的三级数据模型在数据仓库设计过程中,存在三个不同的数据抽象层次(三个步骤),相当于DB设计中的概念模型、逻辑模型和物理模型。只是要注意它们的差别:数据仓库的数据模型中不包含纯操作的数据。数据仓库的数据模型扩充了码结构,增加了时间属性作为码的一部分。数据仓库的数据模型中增加了一些导出数据。1.概念模型最常用的是E-R模型。由于E-R模型具有良好的可操作性,形式简单,易于理解,便于交流,对客观世界的描述也较强。再加上目前数据仓库一般建立在关系DB基础上,为了和原有DB概念模型相一致,用E-R模型作为数据仓库的概念结构设计是合适的。1.概念模型(续)在数据仓库设计中,E-R图中的长方形表示主题;椭圆形表示主题的属性;菱形表示主题之间的联系;并用无向边把主题与属性连接起来,把菱形分别与有关的主题连接起来。2.逻辑模型(1)多维数据模型最流行的数据仓库数据模型是多维数据模型,这种模型可以以星型模式、雪花模式或事实星座模式存在(详情见第四章)。数据仓库设计中的逻辑模型可采用多维数据模型。2.逻辑模型(续)(2)关系模型由于对大型的数据仓库,多维数据模型实现困难,而关系模型可简化程序员的工作和数据仓库设计开发的工作,并且无论是主题还是主题之间的联系都可用关系表示,因此关系模型依然可以作为数据仓库设计的逻辑模型。2.逻辑模型(续)在具体设计数据仓库时,数据模型的选择可视情况而定。如果从一个比较细致的角度来观察构成数据仓库的组成部件,数据仓库的组成包括三个部分:2.逻辑模型(续)企业仓库:整个企业组织的主题数据集合。由于它提供企业范围内的数据集成,通常来自一个或多个操作型系统,或外部信息提供者,并且是跨功能的,包含了详细数据和汇总数据。因此建议用关系模型或事实星座模式。2.逻辑模型(续)数据集市:面向某个主题的数据仓库的一个子集。由于它为特定用户使用,其范围限于选定的主题,建议用多维数据模型。2.逻辑模型(续)操作数据存储(第三章专门介绍):是一种数据仓库的混合形式,它包含及时的、最近的、面向主题的和集成的信息。可用于企业日常的决策制定。其中的数据可作为数据仓库或数据集市的通用数据源。3.物理模型即逻辑模型在数据仓库中的实现。在进行数据仓库物理模型设计时,可根据数据仓库的数据量大,操作单一的特点,采取一些提高数据仓库性能的技术。如:合并表、建立数据序列、引入冗余、进一步细分数据、生成导出数据、建立广义索引等。第二章数据仓库设计2.1数据仓库系统设计概述2.2数据仓库设计的三级数据模型2.3提高数据仓库的性能2.4数据仓库中的元数据2.5数据仓库设计步骤2.3提高数据仓库的性能建立数据仓库过程中一个重要的问题是如何提高系统性能,因为DW的使用往往涉及大规模数据的查询。提高系统性能,主要是提高系统的物理I/O性能,即尽量减少每次查询处理要求的I/O次数,而使每次I/O又能返回尽量多的记录。可采用的技术如下:1.粒度划分粒度划分是数据仓库设计工作的一项重要内容,为了适应分析型处理,数据仓库一般都将数据划分为:详细数据、轻度综合、高度综合三级或更多级粒度。不同粒度级别的数据用于不同类型的分析处理。粒度的划分直接影响数据仓库中的数据量及可能查询的类型。1.粒度划分(续)进行粒度划分的第一步是估算数据仓库中数据的行数和所需的DASD数,然后统计一年和五年内可能出现的数据行数。第二步是根据估算出的数据行和DASD,决定是否要划分粒度以及如何划分。2.分割数据分割是数据仓库设计工作的另一项重要内容,是提高数据仓库性能的一项重要技术。数据分割是指把逻辑上是统一整体的数据分割成较小的,可以独立管理的物理单元(称为分片)进行存储,以便于重构、重组和恢复,以提高创建索引和顺序扫描的效率。2.分割设计数据分割最重要的就是选择适当的分割标准,一般要考虑下面几方面因素:(1)数据量的大小是决定是否进行数据分割和如何分割的主要因素。(2)数据分割是跟数据分析处理的对象紧密联系的。2.分割(续)(3)选择用于数据分割的标准应当易于实施。(4)进行数据分割设计时,更重要的是将数据分割标准与粒度的划分策略统一起来。3.数据仓库物理设计中的其他问题(1)合并表对一些例行的分析处理,它们要求的查询也是例行和相对固定的,当某一例行查询涉及固定的多个表的数据项,就可采用合并表。下面看一个例子:S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S1ACS20S1C1AS1C2BS1C3CS1C5CS2BCS21S2C1AS2C2AS2C4AS3CMA19S3C2BS3C4DS4DCI19S4C3CS4C5BS#C#GS1C1AS1C2BS1C3CS1C5CS2C1AS2C2AS2C4AS3C2BS3C4DS4C3CS4C5BS5C1BS5C3AS5C4AS表SC表合并表3.数据仓库物理设计中的其他问题(续)(2)建立数据序列对一些经常按照某一固定顺序访问并处理的数据记录,将数据严格按处理顺序存放到一个或几个连续的物理块中,形成数据序列。这样可在同一次调页中处理更多记录,而将物理I/O的次数降到最低。(顺序访问的数据最初可能分布在不同的物理块上)342232156714567Page-1Page-2Page-nPage-1Page-234232例:3.数据仓库物理设计中的其他问题(续)(3)引入冗余如果数据分析要涉及不同表的多个属性,一些表的某些属性可能在许多地方都要用到,且这些属性上的值是不常更新的,则可将这些属性复制到多个主题中,以减少处理时存取表的个数。3.数据仓库物理设计中的其他问题(续)与合并表方法不同,合并表是将两个或多个相关表的相关记录物理上存放在一起,但逻辑上仍是两个或多个表,即没有改变各表的关系模式,只是对表记录的存放策略的改进,并没有冗余的数据。而引入冗余是对表结构的改变,同一数据属性存在于多个关系模式中,这样的关系模式不再是规范化的。3.数据仓库物理设计中的其他问题(续)(4)表的物理分割前面讲的分割是表的逻辑分割,还可以依据数据的存取频率和稳定性进行表的物理分割。3.数据仓库物理设计中的其他问题(续)(5)生成导出数据事先在原始数据的基础上总结或计算,生成导出数据,则可在应用时直接利用这些导出数据。这样即减少了I/O的次数又免去了计算或汇总的步骤,还在更高级别上建立了公用数据源。3.数据仓库物理设计中的其他问题(续)(6)建立广义索引“广义索引”对于处理最值问题,效果非常明显。在从OLTP中抽取数据向数据仓库装载时,就重新生成这些“广义索引”的内容。不用为了建立“广义索引”而去扫描DW,而且这些索引都非常小,带来的方便是显而易见的。3.数据仓库物理设计中的其他问题(续)(6)建立广义索引如在将销售事实数据加入数据仓库时,可能建立的广义索引有:a.一次性购买数量最大的交易编号是什么?b.本星期购买的总金额是多少?c.本星期购买的商品总量是多少?d.本星期销售商品数量最多的分店是哪家?e.本星期销售商品数量最少的分店是哪家?3.数据仓库物理设计中的其他问题(续)(6)建立广义索引广义索引一般以元数据方式存放,这就和通常的索引有区别,但广义索引建立的目的也是为了帮助用户完成快速的信息查询,这和普通索引的目标是一致的。第二章数据仓库设计2.1数据仓库系统设计概述2.2数据仓库设计的三级数据模型2.3提高数据仓库的性能2.4数据仓库中的元数据2.5数据仓库设计步骤2.4数据仓库中的元数据元数据是关于数据的数据,它描述了数据的结构、内容、码、索引等项内容。DB中的数据字典也是一种元数据,但DW中,元数据的内容比DB中的数据字典更丰富、更复杂。设计一个描述能力强、内容完善的元数据,是有效管理DW的具有决定意义的重要前提。因此元数据的设计在整个DW设计中占有重要地位,是DW设计的重要组成部分。2.4数据仓库中的元数据(续)重要性:(1)元数据为决策人员访问DW提供直接或辅助信息;(2)元数据描述和管理从DBS到DW的数据转换;(3)元数据要管理DW中的数据。2.4数据仓库中的元数据(续)元数据的内容:(1)DW的主题描述:主题名,公共码键,描述信息等;(2)外部数据和非结构化数据的描述:外部数据源名,存储地点,存储内容描述;(3)记录系统定义:主题名,属性名,数据源系统,源表名,源属性名;(4)逻辑模型的定义:关系名,属性1,…,属性n;2.4数据仓库中的元数据(续)(5)数据进入DW的转换规则;(6)数据的抽取历史;(7)粒度的定义;(8)数据分割的定义;(9)广义索引:广义索引名,属性1,…,属性n;(10)有关存储路径和结构的描述。2.4数据仓库中的元数据(续)元数据包含a.静态元数据:主要与数据结构有关名称、描述