第四讲数据仓库数据库与数据仓库数据不一致可频繁删除数据存放短期数据(3个月内)存在数据冗余数据仓库概述数据仓库与CRM有着难以割舍的密切关系,客户关系管理的很多工作都是以数据仓库为基础展开的。利用数据仓库,企业可以对客户行为进行分析和预测,从而制定准确的市场策略、发现重点客户和评价市场性能。对于客户量大、市场策略对企业影响较大的企业来说,必须在客户关系管理系统中包含数据仓库。数据仓库的产生早期的数据库主要支持联机事务处理传统数据库不能满足决策支持对数据库的要求(1)事务处理和分析处理的性能特性不同(2)数据集成问题(3)历史数据问题(1)事务处理和分析处理的性能特性不同所有联机事务处理强调的是数据更新处理性能和系统的可靠性。在事务处理环境中,用户的行为特点是数据的存取操作频率高,每次操作处理的时间短。在分析处理环境中,用户的行为模式与此完全不同,强调的是数据处理和分析的能力。在传统数据库系统基础上的决策支持(DSS)应用程序可能需要连续几个小时,从而消耗大量的系统资源。联机分析和事务处理对系统的要求不同,同一个数据库在理论上难以做到两全,将具有如此不同处理性能的两种应用放在同一个环境中运行显然是不适当的。(2)数据集成问题DSS需要集成的数据。全面而正确的数据是有效的分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。当前绝大多数企业内数据的真正状况是分散而非集成的。造成这种分散的原因有多种,主要有事务处理应用分散、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据。(3)历史数据问题事务处理一般只需要当前数据,在数据库中一般也是存储短期数据,且不同数据的保存期限也不一样,即使有一些历史数据保存下来了,也被束之高阁,未得到充分利用。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有历史数据的详细分析,是难以把握企业的发展趋势的。DSS对数据在空间和时间上都有了更高的要求,而事务处理环境难以满足这些要求。要提高分析和决策的效率和有效性,分析型处理及其数据必须与操作型处理及其数据相分离。必须把分析型数据从事务处理环境中提取出来,按照DSS处理的需要进行重新组织,建立单独的分析处理环境,数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。数据仓库的数据从联机的事务处理系统、异构的外部数据源、脱机的历史业务数据中得到。它是一个联机的系统,专门为分析统计和决策支持应用服务,通过它可满足决策支持和联机分析应用所要求的一切。数据仓库的概念和特征著名的数据仓库专家W.H.Inmon在其著作《BuildingtheDataWarehouse》一书中给予如下描述:数据仓库(DataWarehouse)是一个面向主题的(SubjectOriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策。数据仓库概念的两个层次功能上:数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;内容和特征上:数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。数据仓库特点-面向主题数据仓库是面向主题而进行数据组织的。主题是一个在较高层次上对数据的抽象,在逻辑意义上,它是对企业中某一宏观领域所涉及的分析对象,即将数据组织成主题域。数据仓库特点-集成数据仓库中的数据是集成的。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。在数据仓库建设中,这是最关键最复杂的一个步骤,主要工作有:一是,进行数据的综合和计算;二是,统一源数据中所有不一致和矛盾的地方(如同名异义、异名同义、字长不一致、单位不一致等)。数据仓库四个特点-相对稳定操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。数据仓库四个特点-相对稳定的数据仓库四个特点-反映历史变化数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。数据仓库中的数据时间期限要远远长于操作型系统中的数据时间期限。操作型系统的时间期限一般是60~90天,而数据仓库中数据的时间期限通常是5~10年。数据仓库四个特点-反映历史变化数据仓库本质如果说传统数据库系统的要求是快速、准确、安全、可靠地将数据存进数据库中的话,那么数据仓库的要求就是能够准确、安全、可靠地从数据库中取出数据,经过加工转换成有规律信息之后,再供管理人员进行分析使用。数据仓库所要研究和解决的问题就是从数据库中获取信息。数据仓库系统体系结构数据源数据源是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等。数据的存储与管理数据的存储与管理是整个数据仓库系统的核心。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。OLAP服务器OLAP服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。前端工具前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。联机分析处理(OLAP)联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大量数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据分析的概念即OLAP。联机分析处理(OLAP)OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,这些信息是从原始数据直接转换过来的,它们以用户容易理解的方式反映企业的真实情况。OLAP大部分策略都是将关系型的或普通的数据进行多维数据存贮,以便于进行分析,从而达到联机分析处理的目的。这种多维DB也被看作一个超立方体,沿着各个维方向存贮数据。OLAP的多维数据概念维是人们观察问题的特定角度,例如:时间维、地理维、产品维。假定某某是个百货零售商,有一些因素会影响他的销售业务,如商品、时间、商店。这里,商品、时间和商店都是维。各个商店的集合是一维,时间的集合是一维,商品的集合是一维。维就是相同类数据的集合,也可以理解为变量。而每个商店、每段时间、每种商品都是某一维的一个成员。每个销售事实由一个特定的商店、特定的时间和特定的商品组成。OLAP的多维数据概念数据单元。多维数据集的取值称为数据单元。当在多维数据集的每个维都选中一个维成员以后,这些维成员的组合就惟一确定了观察变量的值。OLAP多维数据分析1.切片和切块(SliceandDice)在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在“城市、产品、时间”三维立方体中进行切块和切片,可得到各城市、各产品的销售情况。2.钻取(Drill)钻取包含向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)操作,钻取的深度与维所划分的层次相对应。3.旋转(Rotate)/转轴(Pivot)通过旋转可以得到不同视角的数据。案例说明现有某企业1995和1996两年,在广州和上海两个城市的各类电器产品的销售数据。该组数据就是典型的多维数据,其维度分别为时间、城市、产品。OLAP的分析方法(一)切片、切块OLAP的分析方法(二)钻取按时间维向下钻取按时间维向上钻取60OLAP的分析方法(三)旋转如果需要比较同一个季度中不同年份的部门销售数据,那么应该如何调整上表的数据组织方式?OLAP的分析方法(三)旋转练习一已有2000至2009年间全国省会城市的中心城区和郊区的平均房价数据,请问该数据应如何用三维数据立方来表示?如果想抽取广州地区2000至2009年中心城区和郊区的平均房价数据应如何对数据立方进行切片?如果想抽取2005年全国省会城市的中心城区和郊区的平均房价数据应如何对数据立方进行切片?年份城市地段000905广州南京……中心城区郊区…………广州05练习二已知南京广州武汉三个省会城市的2008年平均房价和季度平均房价,请画出数据钻取的表格。2008年平均房价南京广州武汉2008年平均房价第一季度第二季度第三季度第四季度南京广州武汉练习三已知南京广州武汉三个省会城市2008年和2009年每个季度的平均房价。如果要比较同一年不同季度的房价,那么应该如何列出数据?如果要比较不同年同一季度的房价,那么应该如何列出数据?2008年2009年第一季度第二季度第三季度第四季度第一季度第二季度第三季度第四季度广州南京武汉第一季度第二季度第三季度第四季度20082009200820092008200920082009广州南京武汉课堂练习已有2005至2009年间全国各大区域(华东、华南、华西、华北)不同收入人群(高中低)的家庭支出数据,请问该数据应如何用三维数据立方来表示?如果想抽取华东地区2005至2009年不同收入人群的家庭支出数据,应如何对数据立方进行切片?如果想抽取2007年全国各大区域的不同收入人群的家庭支出数据,应如何对数据立方进行切片?如果想比较同一地区内不同收入人群的家庭支出,应如何列出数据?如果想比较不同地区内同等收入人群的家庭支出,应如何列出数据?课堂练习请举例说明OLAP的多维数据结构,和切片、钻取、旋转三种分析方法。课堂练习请找出三种主流的数据仓库产品,并画表列出它们的生产厂商,产品特点,主要工具,价格范围,不足之处。(3)请举例说明OLAP的多维数据结构,和切片、钻取、旋转三种分析方法。(3)请简述数据仓库的体系结构和各组成部分的功能。(2)请简述数据仓库建设的基本步骤。(2)