数据仓库设计ppt课件.ppt
第三章 数据仓库设计,第3章 数据仓库设计,3.1 数据仓库的需求与规划 3.1.1 数据库设计方法简述 3.1.2 数据仓库开发流程 3.1.3 数据仓库需求分析 3.1.4 数据仓库规划3.2 建立数据仓库 3.2.1 数据仓库的平台与结构选择 3.2.2 数据仓库接口与中间件设计,3.2.3 数据仓库的数据抽取、加载与复制 3.2.4 数据仓库逻辑模型的确定 3.2.5 数据仓库物理模型的确定 3.2.6 数据仓库测试3.3 数据仓库典型解决方案,3.1.1 数据库设计方法简述,在相当长的一段时期内,数据库设计主要采用的是手工试凑方法。 按照规范设计的思想,一般将数据库设计细分为数据库需求分析阶段、数据库概念设计阶段、数据库逻辑设计阶段、数据库物理设计阶段、数据库实施阶段和数据库运行、维护六个阶段。,在数据库实施阶段,设计人员的主要工作是使用DBMS所提供的语言和宿主语言,根据数据库逻辑设计阶段和数据库物理设计阶段的成果建立数据库,并编制和调试数据库应用程序。,在数据库运行和维护阶段,设计人员的主要工作是将是运行后的数据库正式运行,并在运行过程中,对数据库所反映出的问题不断修改、评价、调试和完善。 实际上,数据库实际步骤也包括了数据库应用系统的设计过程。,有关对数据处理特性的描述中,不同的数据库的设计过程、数据库设计的不同阶段应该具有不同的数据模式。如在需求分析阶段,应该是用户应用需求模式;在概念设计阶段,应该是产品的概念模式;而在逻辑设计阶段,则应该是有关数据产品支持的数据模型。,从数据仓库的应用角度来看,DSS分析员一般是企业的中上层管理人员,他们对决策分析的需求不能预先做出规范的说明,只能给设计人员一个抽象的(模糊的)描述。,图3-1 数据库设计步骤,应用需求(数据、处理),转换规则、DBMS功能、优化方法,需求收集和分析,设计概念结构,设计逻辑结构,数据模型优化,设计物理结构,评价设计,性能预测,物理实现,试验性运行,使用、维护数据库,应用要求,DBMS详细特征,需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段,数据库实施阶段,数据库运行、维护阶段,不满意,不满意,图3-2 数据库结构设计(1),设 计阶 段,设 计 描 述,数 据,处 理,需 求分 析,数据字典、全系统中数据项、数据流、数据存储的描述,数据流图和判定表(判定树)、数据字典中处理过程的描述,概念结构设计,逻辑结构设计,概念模型(E-R图),数据字典,系统说明书包括:A.新系统要求、方案和概图B.反映新系统信自流的数据流图,某种数据模型,关系,非关系,系统结构图(模块结构),图3-2 数据库结构设计(2),物理设计,实施阶段,运行维护,性能监测、转储/恢复数据库重组和重构,新旧系统转换、运行、维护(修正性、适应性、改善性维护),存储安排方法选择存取路径建立,分区1,分区2,模块设计IPO表,IPO表输入:输出:处理:,编写模式装入数据数据库试运行,Creat.Load,程序编码、编译联结、测试,Main( )IfThenend,图3-3 数据库的不同模式,应用要求,应用要求,应用要求,应用要求,概念模式,逻辑模式,外模式,外模式,外模式,外模式,内模式,应用1,应用2,应用3,应用4,应用1,应用2,应用3,应用4,综合,转换,映象,映象,3.1.2 数据仓库开发流程,设计和建立数据仓库应采取工程管理的方式进行。1.数据仓库系统的4个阶段(1)设想阶段:在数据仓库设想阶段,一般是为了适应特定的商业应用提出数据仓库系统的发展前景。(2)规划和成长阶段:此阶段为开展商业活动。,(3)控制阶段:在这个阶段要用控制和整合的办法将应用系统整合,把聚焦点正确地转移到“集中化方法”上,以求在企业级的真正数据仓库中,为企业决策分析提供强有力的支持,从而将多个数据仓库结合起来,形成一个决策支持环境。(4)稳定阶段:主要任务是在使用决策支持和数据仓库过程中不断的改进,是数据仓库逐渐成熟。,2. 数据仓库的开发流程,(1)数据仓库规划分析阶段,在该阶段的工作内容主要包括:A.分析数据仓库应用环境,调查数据仓库开发需求,完成数据仓库的开发规划。 B.建立包括实体关系图、星型模型、雪花模型、元数据模型以及数据源分析的主题区数据模型,并根据主题区数据模型开发数据仓库逻辑的模型。,(2)数据仓库设计实施阶段,在该阶段的工作内容主要包括:A.按照数据仓库的逻辑模型设计数据仓库的体系结构。 B.设计数据仓库的物理数据库。C.用物理数据库元数据填充面向最终用户的元数据库。D.对数据仓库中每个目标字段确认其在业务系统或外部数据源中的数据来源。,E.开发(或购买)用于抽取、清洁、交换和合并数据等中间件的程序。F.将数据从现有系统中传送到仓库中。(3)数据仓库的使用维护阶段,在该阶段的工作内容主要包括:A.将数据仓库投入实际应用,并在应用中改进和维护数据仓库。B.对数据仓库进行效益评价,以为下一个循环提供依据。,图3-4 数据仓库的生命周期开发应用全过程,开发概念模型,规划与确定需求,数据仓库评价,数据仓库维护,数据仓库应用,填充与测试数据仓库,开发中间件,确定数据抽取源,数据库与元数据设计,设计体系结构,开发逻辑模型,数据仓库开发过程,规划分析阶段,设计实施阶段,使用维护阶段,3. 数据仓库的开发特点,数据仓库的使用也即在数据仓库中建立DSS应用。数据仓库的开发特点包括:(1)数据仓库开发要从数据出发 (2)数据仓库使用的需求不可能在开发初期就明确(3)数据仓库的开发是一个不断循环的过程,是启发式的开发。,3.1.3 数据仓库需求分析,数据仓库的需求分析根据不同领域可以划分为业主(投资者)的需求、设计的需求、开发者的需求和最终用户的需求等方面。,(1)业主需求的分析 数据仓库的业主关心的是创建数据仓库的目标,建立数据仓库给组织战略带来的影响,创建数据仓库所需的投资费用以及所具有的应用前景。业主常常参与数据仓库概念模型的认可和评审,批准开发方案,为系统以后的不断升级和连续投资进行决策。,(2)设计者需求的分析 数据仓库设计者不但要收集业主对数据仓库的需求,还要收集实现这些需求所需的技术要求。设计者介于投资者和实现者之间。,企业结构规划(EAP)法是用于结构设计的一种最有效的方法,在该法中,设计者可以实现以下3种结构。A.数据结构。B.应用程序结构。C.技术结构。(3)开发者需求的分析 开发者负责数据仓库各个构件的物理安装和集成。,开发者需求进一步包括如下四个方面: A.技术需求 B.试用需求 C.数据仓库产品就绪需求 D.开发与使用人员及其技术需求,(4)最终用户需求的分析 数据仓库相对最终用户而言是一个黑箱,他们只能通过查询、报表工具和数据仓库内部信息的某种影射关系来访问数据仓库内部数据。因而,最终用户的需求主要体现在对工作流程的分析、决策的查询需求、报表需求、操作需求和数据需求等方面。同时,在进行数据仓库的最终用户需求分析时,还需要对数据仓库的主题域、信息的粒度、数据仓库的维度进行分析。,3.1.4 数据仓库规划,1.项目开发小组(1)项目开发小组概述: 不是所有的团体都是小组。一个团体要作为一个小组成功地运作,必须具备三个基本的条件:A.要完成的任务必须清楚明确。B.小组必须是明确确定的。C.小组必须对它的项目有自始至终的控制。,建立高效小组的四项基本原则是内聚力、目标、反馈和共同工作框架。(2)创建项目开发小组 当小组开始成为整体的时候,他们首先要确定和接受一系列共同的目标。 确立目标后要做的第一件事就是明确责任。 没有明确的职责分工,就、小组就要花一些时间去搞清楚什么事情必须做、决定谁来做哪一件工作、决定什么时候做和怎样去做。,小组确定了目标、分派好角色后,就要确定一个达到目标的战略了。 小组成员接着再确定他们将要用来开始工作的资料,并将其存档。 小组成员们都很忙,他们可能没有多少时间来聚在一起,这就破坏了小组工作的一个关键交流。,2.项目开发小组对数据仓库规划,与其他项目一样,一个好的计划能带来有效的开端,数据仓库项目开发小组必须要对即将开发的数据仓库项目进行整体规划,作出项目开发计划书,以使项目变得易于理解。,表3-1 数据仓库项目对照表(1),项 目 1,项 目 2,业务驱动因素,竞争性的市场使一家金融组织认识到,它 必须开始利用其日常活动中包含的大量信息。企业的资产很多,但它没有预测其信用卡使用状况和利润率的能力,一家财产和事故保险公司无法为有多张保险单和复杂保险险种的顾客传递统一的结账数据。因此要求将多个来源中的数据与一个能生成统一报表和进行用户查询的数据模型对应起来,数据范围,一个主题区“信用卡”,多个主题区,包括“收入”、“赔款”和“顾客”,业务原因,向接受该银行信用卡的组织宣传信用卡(如趋势、人口统计特征等)的决策支持项 目,业务支持,数据合并,分类,战略性的,战术性的,时间范围,3-6个月的增加业务价值,6-9个月取得初步成果,技术范围,公司近期政策要求把所有新的商务软件都放在客户机/服务器体系结构上,用现在技术迅速产生结果,以后可以加入新技术,表3-1 数据仓库项目对照表(2),项目方法,高度循环性的DW开发,项目每六个月交付一次成果,然后继续逐步交付结果,假设/约束,可以得到优秀的员工;最终用户一开始就能接受特别查询,可以得到优秀员工,角色,用户项目代表项目经理 数据建模人员业务分析人员系统分析员 开发人员 用户主题事务专家,用户项目代表项目经理 数据建模人员业务分析人员系统分析员 开发人员 用户主题事务专家,所选的步骤,建模决策者的需求主题区分析源系统分析最终用户(EU)访问方法设计EU访问方法界定EU访问方法开发交换设计物理数据库设计DW开发DW填充和实现,建模DSS体系结构决策者的需求主题区分析源系统分析EU访问方法设计变换设计物理数据库设计DW开发DW填充和实现,除了项目开发计划书外,项目开发小组的项目规划活动还将产生:A.文档化的业务驱动因素。B.数据范围。C.时间范围。D.业务原因。,E.总体方法。F.参与者及其作用。G.假设和约束。H.项目管理战略。,3.2.1 数据仓库的平台与结构选择,1.数据仓库的技术平台(1)单层结构:主要是指在数据源和数据仓库之间共享平台,或者让数据源、数据仓库、数据集市与最终用户工作站使用同一个平台。(2)客户/服务器两层结构:在这类结构中,一层为客户机,一层为服务器。最终用户访问工具在客户层运行,而数据源、数据仓库和数据集市位于服务器上。该技术结构一般用于普通规模的数据仓库。,(3)三层客户/服务器结构:这类结构包括基于工作站的客户层、基于服务器的中间层和基于主机的第三层。主机(宿主)层负责管理数据源和可选的源数据转换;服务器运行数据仓库和数据集市软件,并存储仓库的数据;客户工作站运行查询和报表运用程序,且还可以存储从数据集市或数据仓库卸载的局部数据。(4)多层式结构:这是在三层客户/服务器结构上发展起来的数据仓库结构。,2. 数据仓库的体系结构,(1)信息获取层:负责数据的收集、提纯、净化和聚合,以及从组织外部数据源和组织的业务处理系统中获取数据。(2)信息存储层:提供包含时点信息的单一逻辑信息,这种数据通常以最分散的方式存放需要尽可能使物理设计符合数据模型,这对最终产生满足各种设计要求的灵活性是十分重要。(3)信息传递层:是数据仓库结构中支持一套共用的表示工具和分析工具的组成部分。,3.数据仓库的数据库设计,数据仓库的数据库主要包含存储用户进行决策分析的数据库和描绘数据的元数据库。 存储用户分析数据的数据库可以采用关系型数据库、多维数据库和对象数据库实现。 元数据库是数据仓库的灵魂。没有元数据库,用户就无法对数据仓库数据进行良好的定义、组织和管理。,3.2.2 数据仓库接口与中间件设计,1.数据仓库的数据源确定以及与业务处理系统接口的设计(1)数据仓库的数据源确定 要为数据仓库从数据源中抽取为管理决策分析所使用的数据源,首先要对所抽取的数据源进行正确的定义。数据源的定义要确定数据仓库主题所需各数据源的详细情况,包括数据源所在计算机平台、拥有者、数据结构、使用该数据源的处理过程、数据仓库更新计划等。,为了保证数据的更新需要,还需要为数据仓库中的每个目标列确认它在业务系统或外部数据源中的数据来源规则,以便利用数据获取中间件,从源系统中获取数据,并加载到数据仓库中。,(2)数据仓库与业务处理系统的接口设计 在确定了数据仓库的数据源以后,就需要考虑数据仓库与作为数据源的业务处理系统的接口设计。,由于业务处理系统环境小,各个应用系统都有自己独立的、特殊的需求,在各自的过程中没有考虑到以后与其他系统的集成问题,在其基础上建立的数据仓库需要完成与业务处理系统接口的设计,所以设计的接口应该具有这样一些功能:,A.从面向应用和操作环境生成完整的数据。B.数据基于时间的转换。C.数据的聚集。D.对现有数据系统的有效扫描,以便今后数据仓库的数据追加。,数据追加的方法主要有:A.对操作型数据打上时间戳。B.使用系统日志或审计日志。C.修改程序代码。D.使用前映像或后映像文件。,2. 数据仓库的中间件设计,(1)拷贝中间件,主要有如下4种: A.代码发生器。 B.数据复制工具。 C.数据泵。 D.广义数据获取工具和设备。,(2)用于数据库访问的网关中间件:主要用于解决数据仓库与数据源和客户端之间的网络协议不同所造成的数据传输困难的问题。,(3)对数据仓库进行监控的中间件:主要用于对数据仓库的应用选择适当的资源,如可以根据系统的负载选择恰当的计算机完成数据库事务;如果有的计算机不可用,可以自动选择可用的计算机进行事务处理;可以根据用户对数据仓库的使用频率以及数据量来调整数据仓库。,3.2.3 数据仓库的数据抽取、加载与复制,1.数据仓库的数据抽取 数据仓库的数据抽取是数据仓库成功的关键。“垃圾进,垃圾出”的原则说明了数据抽取的重要性。在操作数据上执行的数据抽取,应该依据元数据中定义的标准数据格式处理数据。在抽取过程中,应该在将数据传递到数据仓库系统之前,从元数据存储中读到这种域定义,将数据转换或修补以适合新标准。 数据的抽取处理实际上被个别情况所驱动。,2. 数据仓库的数据加载,在数据被抽取后,可把数据加载到数据仓库中。数据加载之前,首先需要对准备加载的数据进行清理,即对数据按照标准进行格式化处理,这些清理工作可在一个专门的数据清理区或数据准备区内进行。 数据清理工作必须严格依据元数据的定义进行,一旦数据清理结束,则将经过净化和转换的数据加载到合适的数据仓库事实表中。在数据加载后,还要更新元数据仓库中的元数据,以反映刚完成的数据加载活动,并对受影响的概括数据重新概括处理。,3. 数据仓库数据的复制与发行,一个完整的复制结构应能完成以下的复杂任务:.A.不会受到系统失败等问题的影响,保证提供可靠的数据复制。B.只传送符合数据完整性规则的一致数据。C.可优化传送过程,减少在捕获或修改数据和复制品作为结果传送之间的时间。,技术和数据结构应保证数据发行系统完成以下的功能:A.保证数据发行以适时和有效的方式进行。B.保证只发送被排序的数据。C.建立正确的和所需要的服务水平标准。,3.2.4 数据仓库逻辑模型的确定,对数据仓库逻辑模型的确定要涉及数据仓库粒度划分、数据分割策略及关系模型定义等内容。 1.数据仓库粒度划分:数据仓库的逻辑设计中需要解决的一个重要问题是决定数据仓库粒度的层次划分;粒度层次的划分适当与否直接影响到数据仓库中要存储的数据量和查询方法。,2.确定数据分割策略:数据分割是指把逻辑上整体的数据分割成较小的、可以独立管理的物理单元进行存储的方法。使用数据分割便于数据的重构、重组和恢复,从而提高创建索引和顺序扫描的效率。使用数据分割的同时也可有效地支持数据概括。,在设计数据仓库的数据分割时,最主要的是选择适当的分割标准。选择适当的数据分割标准一般需要考虑以下三个方面的因素。(1)数据量:数据量的大小是决定是否进行数据分割和如何分割的主要因素。(2)数据分析处理的对象:数据分割是与数据处理的对象紧密联系的,不同主题内数据分割的标准不同。,(3)粒度分割的策略:进行数据分割设计时,更重要的是将数据分割标准与粒度层次的划分策略统一起来。,3.关系模型定义,无论数据仓库的概念模型是ER模型、星型模型还是雪花模型,其最后的物理实现必然是以各种表来完成的。这些表有的是由指标实体转换而成,有的是由维实体而来,有的是从详细类别实体所来。 指标实体在转换成事实表时,往往会形成多个事实表。,4. 数据仓库的实体定义,在设计逻辑模型时,必须对逻辑模型中的每个实体进行具有的定义。在定义之前必须明确实体究竟是另一个实体的部分还是具有独立性的实体。 在逻辑数据模型中不仅要确定实体、实体之间的关系和实体所具有的列,还要进一步确定实体列中的主键列,实体之间关系的外部键列,实体物理存储的一些特性。,要从实体的众多事实数据中识别用户所需要的数据就需要在不同的列中选择某个可以惟一识别数据表行的列作为主键列,主键列通常由一个或多个列组成,要求主键列必须识别实体的一个实例。 在实体的列中除了主键列的确定外,还要确定一些侯选键列和外部键列。,3.2.5 数据仓库物理模型的确定,1.数据仓库设计的规范 由于在数据仓库中包含多种表、列与域等,为保证数据仓库的设计、实施和管理保持稳定,不产生混乱,需要对物理数据模型中的实体、表、列等进行规范化处理,使整个数据仓库的物理数据模型能够保持一致。数据仓库的规范化内容主要有完整清晰的数据定义,合适的数据格式等。,2. 确定数据结构的类型,在数据仓库的结构中,可能包含这样一些数据类型的任意组合:细节数据、概括数据、外部数据、多维数据、数据子集、专门数据缓存、复制数据和存档数据。数据仓库设计人员必须确定符合设计目标的数据结构类型。,在数据仓库中进行数据非规范化处理的优点有:A.能够减少对表联结的需求,提高数据仓库性能。B.能够减少编写专门决策支持应用程序的必要性,因为运用一些专门的查询工具,可以更容易地访问数据。C.可让用户以直观的易于理解的工具查看数据。,3.确定索引策略,数据仓库的数据量很大,要对数据的存取路径进行仔细的设计和选择。由于数据仓库的数据一般很少更新,因而可以设计索引结构来提高数据存取效率。,4.确定数据存放位置,同一个主题的数据并不要求存放在相同的介质上。 在设计数据的布局时要注意遵循以下原则:A.不要把经常需要连接的几张表放在同一服务器上。B.把要进行公共连接的表放在同一服务器上。C.如果几台服务器之间的连接会造成严重的网络业务量的问题,则要考虑服务器复制表格。,D.考虑把整个企业共享的细节数据放在主机或其他集中式服务器上。E.别把表格和它们的索引放在同一设备上。RAID阵列分为如下八个级别实现:RAID0RAID75.确定存储分配,3.2.6 数据仓库测试,在完成数据仓库的实施阶段中,需要对数据仓库进行各种测试。测试工作中要包括单元测试和系统集成测试。,1. 单元测试,当数据仓库的每个单独组件完成后,就需要对它们进行单元测试,单元测试的目的是寻找存于单个程序、存储过程和其他位于一些独立环境中的模块的错误。在测试过程中不仅要求单元能对各种正常情况进行正确处理,也要求对各种错误情况具有防御能力,不至由于某个用户的误操作导致系统的崩溃。,2. 系统集成测试,在完成数据仓库单元测试以后,还需要进行数据仓库的集成测试,测试是验证每个单元与数据仓库系统和子系统之间的接口完好,能够正常传递数据,执行系统的整体功能。,在测试之前必须依据数据仓库的所有组件功能、数据仓库应用方法和数据仓库开发计划,制定详细的测试计划。 在完成数据仓库的系统集成测试以后,就可以进行数据仓库数据的首次加载。 在数据仓库交付用户使用之前,需要对数据仓库进行交付测试。,3.3 数据仓库典型解决方案,1. Sybase 提供的数据仓库解决方案2. SAS提供的数据仓库解决方案(1)SAS与数据仓库(2)SAS数据仓库设计,3. Platinum提供的数据仓库解决方案,Platinum Decision Base是一个数据转换和移动工具,可以用它来建造数据集市和数据仓库。Decision Base包含图形映射工具、数据精化和数据转移、仓储技术(它能在C/S环境下定义创建和修改数据仓库)。,Decision Base 由以下部分组成:(1)Decision Base Desktop:为建立应用提供一个图形化用户界面。(2)Decision Base Metadata Manager:用来创建和组装企业的元数据存储。(3)Decision Base Data Movement Server & Manager:用来创建和组装数据集市。,4.其他解决方案,(1)HP公司解决方案(2)IBM解决方案(3)Informix公司解决方案(4)Oracle数据仓库解决方案,小结,3.1 数据仓库的需求与规划3.2 建立数据仓库3.3 数据仓库典型解决方案,