主讲:王名扬信息学院《数据仓库与数据挖掘》引言近年来,由于计算机和网络的应用,计算开始向两个不同的方向拓展:广度计算:将计算机的应用范围扩大,实现广泛的数据交流,如互联网的出现;深度计算:希望计算机参与更多的数据分析与决策制定事务型(操作型)数据处理:数据库分析型数据处理:数据仓库数据处理的环境由原来的以单一数据库为中心的数据环境发展为以数据仓库为基础的体系化环境。第2章数据仓库的基本概念第2章数据仓库的基本概念2.1什么是数据仓库2.2数据立方体2.3数据仓库的三级模型2.4数据仓库的设计2.5提高数据仓库设计性能的几种方法2.1什么是数据仓库1.什么是数据仓库?数据仓库(DataWarehouse)数据仓库是为构建分析型数据处理环境而出现的一种数据存储和组织技术。用来保存从多个数据库或其它信息源选取的数据,并为上层应用提供统一用户接口,完成数据查询和分析。在数据仓库的发展过程中,许多人作出重要贡献:Devlin&Murphy(1988):发表关于数据仓库论述的最早文章;WilliamH.Inmon(1993):《BuildingtheDataWarehouse》,首次系统阐述数据仓库的思想、理论,被尊为“数据仓库之父”。数据仓库(DataWarehouse)数据仓库的定义很多,但却很难有一种严格的定义:它是一个提供决策支持功能的数据库,它与公司的操作数据库分开维护。为统一的历史数据分析提供坚实的平台,对信息处理提供支持。数据仓库是一个面向主题的、集成的、随时间而变化的、不容易丢失的数据集合,支持管理部门的决策过程.---W.H.Inmon数据仓库回答的问题数据仓库将为高层管理人员的科学决策提供可靠依据。去年各个地区各个产品的销售量和销售额?10年以来各厂商每季度的销售额占有比例的变化情况?如果某种产品的销售价格打9折,利润将发生怎样的变化?今年销售量下降的主要因素(时间、地区、部门、商品)是什么?数据仓库的作用两个主要作用:——存储经过加工处理的决策需要的数据※存储数据的一种形式※加工和集成后的再存储——查询和决策分析的依据※为数据驱动型的决策支持提供数据基础数据仓库的关键特征关键特征:面向主题;集成的;随时间而变化的(时变的);不容易丢失的(非易失)。1)面向主题在较高层次上对分析对象的数据进行一个完整、一致的描述,能完整、统一管理各个分析对象所涉及的企业各项数据以及数据之间的联系。—高层次:很高的数据抽象级别,如整个企业、组织161)面向主题面向主题,是数据仓库显著区别于关系数据库系统的一个特征;给出数据仓库中数据组织的基本原则,数据仓库中所有数据都是围绕某一主题组织、展开的;主题是一个在较高层次将数据归类的标准,每一个主题基本对应一个宏观的领域。如,一个生产企业的数据仓库所组织的主题可能是产品订货分析和货物发运分析,而按应用组织的话可能为财务子系统、供应子系统、销售子系统、人力资源子系统和生产调度子系统等。典型的主题领域:客户、产品、交易、账目等。171)面向主题关注决策者的数据建模与分析,而不是集中于组织机构的日常操作和事务处理。181)面向主题但数据的产生都是基于应用而产生,因此数据在进入数据仓库之前,必然要经过加工和集成,将原始数据结构做一个从面向应用到面向主题的大转变。20【例】一家采用“会员制”经营方式的商场,按业务建立起若干子系统,并按业务处理要求建立各自数据库模式:采购子系统:订单(订单号,供应商号,总金额,日期)订单细则(订单号,商品号,类别,单价,数量)供应商(供应商号,供应商名,地址,电话)销售子系统:顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)销售(员工号,顾客号,商品号,数量,单价,日期)21人事管理子系统:员工(员工号,姓名,性别,年龄,文化程度,部门号)部门(部门号,部门名称,部门主管,电话)库存管理子系统:领料单(领料单号,领料人,商品号,数量,日期)进料单(进料单号,订单号,进料人,收料人,日期)库存(商品号,库房号,库存量,日期)库房(库房号,仓库管理员,地点,库存商品描述)22传统的面向应用进行数据组织方式的特征为:重点在“数据”和“处理”;通常要反映一个企业内数据的动态特征;所生成的各项数据库模式与企业实际的业务处理流程中所涉及的单据及文档,有很好的对应关系。23面向应用到面向主题的转变:面向主题的数据组织方式应分为两个步骤:抽取主题确定每个主题所包含的数据内容仍以商场为例,它所应有的主题包括:商品、供应商、顾客。每个主题有各自独立的逻辑内涵,对应一个分析对象。24商品:商品固有信息:商品号,商品名,类别,颜色等商品采购信息:商品号,供应商号,供应价,供应日期,供应量等商品销售信息:商品号,顾客号,售价,销售日期,销售量等商品库存信息:商品号,库房号,库存量,日期等25供应商:供应商固有信息:供应商号,供应商名,地址,电话等。供应商品信息:供应商号,供应价,供应日期,供应量等。顾客:顾客固有信息:顾客号,顾客名,性别,年龄,文化程度,住址,电话等。顾客购物信息:顾客号,商品号,售价,购买日期,购买量等。26从面向应用面向主题丢弃了原来不必要,不适合分析的信息。将分散在各子系统中的有关主题的信息集成,形成关于商品的一致信息。不同主题之间也有重叠的内容,但只是逻辑上的重叠,细节级上的重叠,另外主题间并不是两两重叠。供应商顾客商品1)面向主题2)集成性一个数据仓库是通过集成多个异种数据源来构造的;关系数据库,一般文件,联机事务处理记录数据仓库中的综合数据不能从原有的数据库系统直接得到,需使用数据清理和数据集成技术对数据进行处理:统一源数据中所有矛盾之处(命名约定、编码结构、属性度量等)进行数据综合和计算主要做两个工作:293)数据不易丢失(稳定的)尽管数据仓库中的数据来自于操作数据库,但他们却是在物理上分离保存的操作数据库的更新操作不会出现在数据仓库环境下。只进行两种数据访问:数据的初始装载;查询操作。314)随时间而变化的(时变的)数据仓库从历史的角度来提供信息:时间范围比操作数据库系统要长的多操作数据库系统:主要保存当前数据;数据仓库:从历史的角度提供信息(比如过去5-10年)数据仓库中的每一个关键结构都隐式或显式地包含时间元素,时间维是数据仓库中一个非常重要的维度;而操作数据库中的关键结构可能就不包括时间元素。2.为什么要建立数据仓库?35回顾:数据组织的发展过程总起来讲,数据组织的发展经历了四个阶段:人工管理阶段(1946年-20世纪50年代中期之前)文件系统管理阶段(20世纪50年代后期到60年代中期)数据库阶段(20世纪60年代后期-80年代中期之前)高级数据库阶段(20世纪80年代中期)36数据程序无独立性数据不能长期保存数据无法共享人工管理阶段(1)人工管理阶段37文件管理阶段数据程序分开存储数据程序相互依赖数据冗余度大数据不一致性(2)文件管理阶段38数据程序完全独立数据可以共享数据模型表示数据结构数据库阶段(3)数据库阶段39分布式数据库多媒体数据库数据仓库高级数据库阶段(3)数据库阶段40从数据库到数据仓库管理信息的处理类型:(1)事务型处理:业务操作处理,用来协助企业对相应事件或事务的日常商务活动进行处理。是事件驱动、面向应用的,通常是对一个/组记录的增、删、改以及简单查询等,以满足组织特定的日常管理需要(数据库);(2)分析型处理:用于管理人员的决策分析,例如DSS、EIS和多维数据分析等。帮助决策者分析数据以察看趋向、判断问题。分析型处理经常要访问大量的历史数据,支持复杂的查询分析(数据仓库)。事务型处理分析型处理细节的综合的,提炼的当前的代表过去的数据可更新的不可更新,只读的事务驱动分析驱动面向应用面向分析一次操作数据量小一次操作数据量大支持日常操作支持管理需求二者的区别42事务型与分析型环境的分离要摆脱传统数据库面临的困境,必须将用于事务处理的数据环境和用于数据分析的数据环境分离:(1)事务型处理:以传统数据库为中心进行企业的日常业务处理,其使用人员通常是企业的具体操作人员;处理企业业务的细节信息,以实现企业的业务运营;(2)分析型处理:分析数据背后的关联和规律,为企业决策提供可靠依据,其使用人员通常是企业的中高层管理者,或从事数据分析的工程师;处理企业的宏观信息,而非具体细节,以为企业的决策者提供支持信息。43分离示意图44转换同时进行的集成3.数据仓库与数据挖掘的关系?数据仓库:是一种存储技术,它能适应于不同用户对不同决策需要提供所需的数据和信息。数据挖掘:是一种分析技术,研究各种方法和技术,从大量的数据中挖掘出有用的信息和知识。二者的区别47成功的数据挖掘的关键之一是通过访问正确的、完整的和集成的数据,以进行深层次的分析,而这正是数据仓库所能提供的;数据仓库不仅是集成数据的一种方式,而且为数据挖掘提供了一个极佳的操作平台;如果数据仓库与数据挖掘能实现有效的联结,将给数据挖掘带来各种便利和功能。二者的联系48首先,大多数数据挖掘工具要在集成的、一致的和经过清理的数据上进行挖掘。需要在挖掘过程中有个费用昂贵的数据清理、数据变换和数据集成过程,而已经完成这一系列操作的数据仓库,完全能为数据挖掘提供需要的挖掘数据;二者的联系49其次,在数据仓库的构造过程中,已经围绕数据仓库组建了包括数据存取、数据集成、数据合并、异种数据库转换、ODBC/OLEDB的链接、Web访问和服务工具以及报表与OLAP分析工具等全面的数据处理和数据分析基础设施,而这为数据挖掘的开展提供了重要的基础设施;二者的联系50此外,在数据挖掘过程中,常需要进行探测式的数据分析,选择相关数据,对各种数据选择不同的粒度,以不同的形式提供知识和结果。而数据仓库中的OLAP完全可为数据挖掘提供有关的数据操作支持。因此,数据仓库促进了数据挖掘的发展,而数据挖掘可看作联机分析处理的高级阶段。二者的联系51注意:数据仓库并不是数据挖掘的必要条件:数据挖掘不一定必须建立在一个数据仓库上,数据仓库不是必要条件;基于在开发数据仓库过程中所进行的数据集成、清洗和准备,才使得数据仓库对于数据挖掘有着重要的价值。数据挖掘:数据库中的知识挖掘(KDD)–数据挖掘——知识挖掘的核心数据清洗数据集成数据库数据仓库任务相关数据选择数据挖掘模式评估典型数据挖掘系统的体系结构2.2数据立方体55数据立方体数据仓库和OLAP工具是基于多维数据模型的。在多维数据模型中,数据以数据立方体(datacube)的形式存在。如,某公司可能创建一个数据仓库sales,记录商店的销售情况,且涉及time,item,location。则,典型的3-D数据立方体如图:56数据立方体尽管我们经常把数据立方体看作3-D几何结构,但实际上,在数据仓库中,数据立方体是n-D的。先考察2-D立方体:二维的数据表。如,要观察Allelectronics公司销售数据中Vancouver每季度销售的商品。这些数据就可用二维的数据表表示。在此二维表中,Vancouver的销售用维time和维item表示,所显示的事实或度量是dollars-sold(单位:$1000)表157假定想根据time,item和location观察数据,其中location是城市Chicago,NewYork和Vancouver。则此3-D的立方体可以以2-D数据表的序列来表示。表258当然,我们也可直接用3-D的立方体的形式来表示这些数据。图159假定增加一维,如supplier来观察销售数据,则此时数据立方体变成4维。观察4-D事物非常麻烦,但我们可以将其看作3-D立方体的序列。维{time,item,location,supplier};度量为dollars-sold(单位:$1000)图260数据立方体多维数据模型为不同角度上的数据建模和观察提供了一个良好的基础。那么,在数据仓库中,如何通过数