第二章数据仓库的设计◆数据仓库与传统数据库设计方法的区别◆数据仓库的三级模型◆提高数据仓库性能的各种技术◆数据仓库的设计方法和步骤2.1数据仓库设计方法概述一、数据仓库设计与数据库系统设计区别◆面向的处理类型不同DB:操作型数据环境,面向具体应用DW:分析型环境,面向分析,一般开发是从最基本的主题开始,不断发展新的主题,完善已有的主题。◆面向的需求不同DB:有较确定的应用需求,有比较确切的信息流DW:需求灵活,没有固定的模式,用户甚至不能清楚需求,不可能从用户出发来进行数据仓库设计。◆系统设计目标不同DB:事务处理性能(主要是事务处理响应时间)是主要目标DW:建立一个全局的数据环境,保证数据的四个基本特征,数据全局一致性,实现对数据的全局管理和控制◆数据来源或系统的输入不同DB:通常来自组织外部,主要考虑如何将获得的数据用适当的方式存储、如何对对数据进行联机的查询更新操作,保证数据安全可靠。DW:主要来自已存在的系统内部,主要考虑如何从现存的数据源中得到完整一致的数据,如何对数据进行转换、综合,如何提高数据分析的效率◆系统设计的方法和步骤不同DB:业务过程和规则比较规范(如库存管理、采购业务管理等),有独立的收集需求和分析需求的阶段。一般采用生命周期法。DW:面向的管理人员一般不能对分析的需求作出规范说明,需求分析贯穿整个过程。数据仓库的开发应用像生物一样具有其特有的、完整的生命周期,数据仓库的开发应用周期可以分成:数据仓库规划分析阶段数据仓库设计实施阶段数据仓库的使用维护阶段这三个阶段是一个不断循环、完善、提高的过程。在一般情况下数据仓库系统不可能在一个循环过程中完成,而是经过多次循环开发,每次循环都会为系统增加新的功能,使数据仓库的应用得到新的提高。二、数据仓库的开发方法及步骤2.2数据仓库设计的三级模型数据模型:模型是对现实世界进行抽象的工具。在信息管理中需要将现实世界的事物及其有关特征转换为信息世界的数据才能对信息进行处理与管理,这就需要依靠数据模型作为这种转换的桥梁。这种转换一般需要经历从现实到概念模型,从概念模型到逻辑模型,从逻辑模型到物理模型的转换过程。现实世界概念世界逻辑世界计算机世界信用特性属性列(字段、数据项)张三个体实体记录顾客整体同质总体表文件顾客与产品整体间联系异质总体数据库DW数据模型与OLTP数据模型区别:(1)不包含纯操作型数据(2)扩充了主键结构,增加了时间属性(3)增加大量的导出数据一、概念模型表示方法:实体-关系模型(E-R)模型顾客变动信息商品变动信息顾客号商品固有信息顾客固有信息顾客号供应商号开户日期日期销售数量日期商品号商品顾客销售二、逻辑模型目前数据仓库还是建立在关系数据库基础上的,所以在数据仓库中采用的逻辑模型就是关系模型,主题以及主题之间的联系都是通过关系来表示。关系模型概念简单、清晰、用户易懂,并且有严格的数学基础和关系数据理论。表示方法:关系模式即关系名(属性1,属性2,…)三、物理模型物理模型:逻辑模型在数据仓库中的实现,如物理存取方式,数据存储结构,数据存放位置,存储分配等。设计物理模型考虑因素:I/O存取时间、空间利用率、维护代价等。考虑到数据仓库中的数据量大而且操作单一等特点,可采用一些提高数据仓库性能的技术,如:合并表、引入冗余、生成导出数据、建立广义索引等。四、高级模型、中级模型和低级模型高级模型:即E-R模型低级模型:即物理数据模型,与数据库相同中间模型:DIS(dataitemset)数据项集。可以看作是E-R图的细分,每个实体有一个DIS对应,其中的数据项分为四个组别:基本数据项组、二级数据项组、联接数据项组、类型数据项组数据仓库之父W.H.Inmon在《BuildingtheDataWarehouse》一书中对数据仓库的三级模型有另一种提法:高级模型、中级模型和低级模型联接数据组:本主题域与其他主题域的联系,体现E-R模型中的“联接”,一般是一个主题的公共码键。其余三组数据组的划分依据不同程度的数据稳定性,基本数据组二级数据组类型数据组以顾客主题为例:顾客号、顾客名、性别等信息,是基本不变的,可以列为基本数据组,主码一般列入基本数据组;顾客住址、文化程度、电话等虽然也基本稳定,但是存在变化的可能,列为二级数据组;顾客的购物记录是经常变化的,列入类型数据组。2.3提高数据仓库的性能一、粒度划分粒度:数据仓库中数据的详细程度和级别,粒度越大。数据综合程度越高,不同粒度级别的数据对应不同类型的分析处理。粒度划分是否得当是影响数据仓库性能的一个重要方面。粒度划分:(1)先要确定所有数据仓库中的表,估计每个表的大约行数,这里只估计一个上下限。注:粒度划分的决定性因素不是总的数据量而是总行数(2)根据估算出的数据行,来确定是否要划分粒度。一般情况下,如果一年内数据行数超过100,000,就应该考虑粒度的划分。二、分割分割:把逻辑上是统一整体的数据分割为较小的、可以独立管理的物理单元(分片)进行存储。分割优点:便于重构、重组、恢复,以提高创建索引和扫描的效率以商场为例,以时间段和商品大类为分割标准,对销售数据进行分割:1996年家电类日用化工类副食类服装类第一季度第二季度第三季度分片1分片5分片9分片2分片6分片10分片3分片7分片11分片4分片8分片12分割标准确定考虑因素主要有:(1)数据量(并非行数)(2)数据分析处理的实际情况(3)粒度划分策略数据量:数据量的大小是决定是否进行数据分割的主要因素,如果数据量小,可以不进行分割或者选择单一标准分割成较小的分片与分析处理的对象紧密联系即不同主题内数据分割的标准不同,如商品主题内对数据的分割采用商品大类、商品小类、时间等标准;“供应商”主题采用地理位置和时间来分割与粒度的划分策略统一如“商品”主题内关于销售数据的粒度是按时间和商品类别划分的,在每一粒度层次上,对数据的分割也按时间和商品类别来分割。这样便于对每个分片上的数据进行综合三、合并表(归并表)为了解决一些例行的分析处理而采用的技术。如果某些例行的查询经常设计到多个表的数据项,在查询的时候需要多表的联接操作,如果这几个表分散在不同的物理块中,联接的开销会很大。为了节约I/O开销,把这些表的记录混合放在一起,降低联接操作的代价四、广义索引广义索引也是为了提高数据仓库中数据访问速度而采用的一种索引技术。主要是处理一些最值问题。如作为销售主管,可能会问:这个月销售量最差的是那种产品?可以把这些最差的商品的名称或记录的存放地址单独列在一个索引文件中,这就是“广义索引”。2.4数据仓库设计步骤数据仓库的设计可以分为以下几个步骤:◆概念模型设计◆技术准备工作◆逻辑模型设计◆物理模型设计◆数据仓库生成◆数据仓库运行与维护一、概念模型设计概念模型设计所要完成的工作:界定系统边界确定主要的主题域及其内容1、界定系统的边界从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,它将决策者的数据分析的需求用系统边界的定义形式反映出来。要做的决策类型有哪些?决策者感兴趣的是什么问题?这些问题需要什么样的信息?要得到这些信息需要包含原有数据库系统的哪些部分的数据?2、确定主要的主题域在这一步中,要确定系统所包含的主题域,然后对每个主题域的内容进行较明确的描述,描述的内容包括:主题域的公共码键;主题域之间的联系;充分代表主题的属性组3、“商场”实例系统边界的设计(1)界定系统的边界建设数据仓库的根本目的:经营者能够更加准确的把握商场的经营状况,主要是商品的销售信息和采购信息。所进行的主要分析:分析顾客的购买信息商品供应市场的变化趋势商品供应商的信用等级要进行以上分析所需要的数据:商品的销售数据商品的采购数据商品的库存数据顾客信息供应商信息将系统的边界定义为原有的销售子系统、采购子系统、库存子系统的集合。(2)确定主要的主题域根据分析的要求,可以确定数据仓库的三个主要主题:商品、供应商、顾客主题的描述二、技术准备工作这一阶段的工作包括:技术评估,技术环境准备。形成技术评估报告、软硬件配置方案、系统(软、硬件)总体设计方案。1、技术评估进行技术评估,就是确定数据仓库的各项性能指标。管理大数据量的能力;进行灵活数据存取的能力;根据数据模型重组数据的能力;透明的数据发送和接收能力;周期性的成批装载数据的能力;2.技术环境准备网络;所采用的操作系统;进出数据仓库的界面(主要是数据查询和分析工具);管理数据仓库的软件。如DBMS三、逻辑模型设计进行的工作主要:分析主题域,确定当前要装载的主题确定粒度层次划分确定数据分割策略关系模式定义对每个当前要装载的主题的逻辑实现进行定义,并将相关内容记录在数据仓库的元数据中。1、分析主题域数据仓库的设计方法是一个逐步求精的过程,在进行设计时,一般是一次一个主题或一次若干个主题地逐步完成的。从得出的所有主题中选择首先要实施的主题域。在“商场”实例中,通过“商品”主题可以较全面的了解商场的经营状况。因此可以首先选择“商品”主题进行实施。2、粒度层次划分粒度层次划分适当与否直接影响到数据仓库中的数据量和所适合的查询类型。确定数据仓库的粒度划分,可以通过估算数据的总行数来确定是采用单一粒度还是多重粒度,以及粒度划分的层次。“商场”数据仓库中,一个会员制的商场一般可以经营上千种商品,考虑到商品的销售数据量最大,对商品的销售分析主要是:进行销售统计和销售趋势分析。最好采用多重粒度,如某种商品的周统计销售数据、某类商品的月统计数据、季统计数据等等3、确定数据分割策略要选择适当的数据分割的标准,一般要考虑以下几方面因素:数据量(而非记录行数)、数据分析处理的实际情况、简单易行以及粒度划分策略等。数据量的大小是决定是否进行数据分割和如何分割的主要因素;数据分析处理的要求是选择数据分割标准的一个主要依据,因为数据分割是跟数据分析处理的对象紧密联系的;考虑数据分割的标准与粒度划分层次是适应的。4、关系模式定义数据仓库的每个主题都是由多个表来实现的,表之间依靠主题的公共码键联系在一起,形成一个完整的主题。以“商品”主题为例,考虑到商品的粒度划分层次、分割标准等,可将“商品”主题分为以下几个表来实现:公共码键:商品号(1)商品固有信息商品表(商品号、商品名、颜色、类型…..)/*细节级*/商品采购信息:采购表1(商品号、供应商号、供应日期、供应价)/*细节级*/采购表2(商品号、采购月份、采购总量….)采购表3(商品号、采购季度、采购总量….)……/*时间段不同的综合表商品销售信息:销售表1(商品号、顾客号、销售日期、销售量)/*细节级*/销售表2(商品号、时间段1、销售总量)……/*时间段不同的综合表四、物理模型设计这一步所做的工作:确定数据的存储结构---RAID技术确定索引策略——B树索引位图索引等确定数据存放位置——磁带磁盘等确定存储分配优化1、确定数据的存储结构一个数据库管理系统往往都提供多种存储结构,不同的存储结构有不同的实现方式,在选择合适的存储结构时应该权衡三个方面的主要因素:存取时间、存储空间利用率和维护代价。2、确定索引策略数据仓库的数据量很大,数据都是不常更新的,因而可以设计多种多样的索引结构来提高数据存取效率。3、确定数据存放位置同一个主题的数据并不要求存放在相同的介质上。常常要按数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类的数据分别存储在不同的存储设备中。4、确定存储分配优化许多数据库管理系统提供了一些存储分配的参数如:数据块的尺寸、缓冲区大小和个数等。五、数据仓库的生成(ETL工具)通过专用的数据抽取工具或者通过自行编程实现数据抽取、转换和装载。六、数据仓库的使用和维护建立DSS应用,使用数据仓库理解需求,调整和完善系统,维护数据仓库。1.建立DSS应用DSS应用主要可分为两类:例行分析处理启发式分析处理例行分析处理:是指那些重复进行的分析处理,通常属于部门级的应用,如部门统计分析,报表分析等等;启发式的分析处理:而个人级的分析应用随机