数据仓库技术与联机分析处理DataWarehouse&OLAP•数据库处理的两大应用–联机事务处理(OLTP)–决策支持系统(DSS)•数据库处理的两大应用–联机事务处理(OLTP)•操作型处理,为企业的特定应用服务•是对数据库的联机的日常操作,通常是对一个或一组记录的查询和修改•人们关心的是响应时间、数据的安全性和完整性–决策支持系统(DSS)•数据库处理的两大应用–联机事务处理(OLTP)–决策支持系统(DSS)•分析型处理,用于管理人员的决策分析•经常需要访问大量的历史数据•数据仓库+联机分析处理+数据挖掘•(DW+OLAP+DM)→DSS•数据仓库–是一个面向主题的、集成的、非易失的(不可修改)且随时间变化的数据集合,用来支持管理人员的决策•数据仓库的特点–面向主题•主题是在较高层次上对数据抽象•面向主题的数据组织分为两步骤–抽取主题–确定每个主题所包含的数据内容•每个主题在数据仓库中都是由一组关系表实现的–集成的–数据不可更改–随时间变化的•数据仓库的特点——面向主题•数据仓库的特点–面向主题–集成的•数据仓库的数据是从原有的分散数据库数据中抽取来的•消除数据表述的不一致性(数据的清洗)•数据的综合–数据不可更改–随时间变化的•数据仓库的特点——集成•数据仓库的特点–面向主题–集成的–数据不可更改•数据仓库的主要数据操作是查询、分析•不进行一般意义上的数据更新(过期数据可能被删除)•数据仓库强化查询、淡化并发控制和完整性保护等技术–随时间变化的•数据仓库的特点——数据不可更改•数据仓库的特点–面向主题–集成的–数据不可更改–随时间变化的•不断增加新的数据内容•不断删除旧的数据内容•定时综合•数据仓库中数据表的键码都包含时间项,以标明数据的历史时期•数据仓库的特点——随时间变化•数据仓库的结构OLTP系统RDBMSSybaseVSAMSAP/ERP5-10年过去详细数据当前详细数据轻度汇总数据高度汇总数据数据集市分析型CRM业务指标分析数据仓库数据仓库/决策分析系统EXCEL•数据仓库的结构–数据由操作型环境(综合)导入数据仓库–数据具有不同的细节级•早期细节级(过期数据)•当前细节级•轻度综合数据级(数据集市)•高度综合数据级•数据仓库建立的过程•粒度–是指数据仓库的数据单位中保存数据的细化或综合程度的级别–粒度级越小,细节程度越高,综合程度越低,回答查询的种类越多–粒度影响数据仓库中数据量的大小–粒度问题是设计数据仓库的一个重要方面•双重粒度–在数据仓库的细节级上创建两种粒度–短期储存的低粒度(真实档案),满足细节查询–具有综合的高粒度(轻度综合),做分析•分割–是指把数据分散到各自的物理单元中去,以便能分别独立处理,提高数据处理效率–是粒度之后的第二个主要设计问题–两个层次的分割•系统层:DBMS,一种定义•应用层:开发者,多种定义–多种分割的标准•日期:最常用的•地理位置•组织单位…...•数据仓库中的数据组织形式–简单堆积–轮转综合•数据按一定的格式进行轮转的累加–简化直接•按一定的时间间隔,对数据进行提取,是操作型数据的一个快照–连续•把新的快照追加到以前的连续数据上去•数据仓库中的数据组织形式–简单堆积•每日由数据库中提取并加工的数据逐天积累堆积•数据仓库中的数据组织形式–轮转综合•数据按一定的格式进行轮转的累加•数据仓库中的数据组织形式–简单堆积与轮转综合的比较•数据仓库中的数据组织形式–简化直接•按一定的时间间隔,对数据进行提取,是操作型数据的一个快照•数据仓库中的数据组织形式–连续•把新的快照追加到以前的连续数据上去•数据仓库的数据追加–数据追加•数据仓库的数据初装完成以后,再向数据仓库输入数据的过程称为数据追加–变化数据的捕获•时标法:加标识•DELTA法:对更新作记录•前后映象法:两次快照的对比•日志法:利用DBMS的日志,需改进•数据库的体系化环境–是在一个企业或组织内部,由各面向应用的OLTP数据库及各级面向主题的数据仓库所组成的完整的数据环境–操作型环境、分析型环境–四层体系化环境•操作型环境——OLTP•全局级——数据仓库•部门级——局部仓库•个人级——个人仓库,用于启发式的分析–数据集市(DataMart)•特定的、面向部门的小型数据仓库•是为满足用户特定需求而创建的数据仓库•是数据仓库的子集•数据库的体系化环境•数据库的体系化环境•数据仓库的开发生命周期•数据仓库的基本数据模式–星型模式(StarSchema)•事实表(facttable),存放基本数据,相关主题的数据主体(BCNF)•维(dimension),影响、分析主体数据的因素•量(measure),事实表中的数据属性•维表(dimensiontable),表示维的各种表•维是量的取值条件,维用外键表示•以事实表为中心,加上若干维表,组成星型数据模式•例:产品-商店-销售额•数据仓库的基本数据模式CustSalesLocationSalesProdSalesTimeSalesSalestimeidpk,fkproductidpk,fklocationidpk,fkcustomeridpk,fksalesrevenueunitssoldProductproductidpkmakemodelTimetimeidpkdateyearquartermonthweekLocationlocationidpkregiondistrictstoreCustomercustomeridpkcategorygroupSalesfactSalesmeasuresTimedimensionAttributesofthetimedimension•数据仓库的基本数据模式–雪花模式(SnowflakeSchema)•维一般是由若干层次组成•把维按其层次结构表示成若干个表•规范化、节省存储空间•但需多做连接操作•数据仓库的解决方案–通用的关系数据库系统–专门的数据仓库服务器•数据仓库系统的体系结构–数据仓库层–数据仓库工具层–最终用户•数据仓库系统–数据仓库•居系统的核心地位•是信息挖掘的基础–数据仓库管理系统•是整个系统的引擎•负责管理整个系统的运转–数据仓库工具•一般的查询工具、功能强大的分析工具•是整个系统发挥作用的关键•数据仓库系统一个集成化的产品集•数据仓库系统DesignWarehouseArchitectManageSybaseASIQIntegrateInformaticaEnterpriseConnectReplicationServerPowerMartVisualizeBrioCognosAdministerWarehouseControlCenterWarehouseControlCentre•数据分析模型–早期•静态数据值的相互比较–需求•从多个不同的数据源中综合数据•从不同的角度观察数据•多变的主题、多维数据•E-R不能完全支持•四种分析模型(Codd)–绝对模型•静态数据分析•只能对历史数据进行值的比较,描述基本事实•用户交互少–解释模型–思考模型–公式模型•四种分析模型(Codd)–绝对模型–解释模型•静态数据分析•在当前多维视图的基础上找出事件发生的原因–思考模型–公式模型•四种分析模型(Codd)–绝对模型–解释模型–思考模型•动态数据分析•多维分析•在决策者的参与下,找出关键变量•需要高级数据分析人员的介入–公式模型•四种分析模型(Codd)–绝对模型–解释模型–思考模型–公式模型•动态性最高的一类•自动完成变量的引入工作•数据仓库系统的工具层–查询工具•主要是对分析结果的查询•很少有对记录级数据的查询–验证型工具•多维分析工具•用户首先提出假设,然后利用各种工具通过反复、递归的检索查询以验证或否定假设–发掘型工具•从大量数据中发现数据模式•预测趋势和行为•联机分析处理——OLAP–是针对特定问题的联机访问和分析。–通过对信息的很多种可能的观察形式进行快速、稳定一致和交互性的存取,允许分析人员对数据进行深入观察•一些概念–变量是数据的实际意义,描述数据是什么–维是人们观察数据的特定角度–维的层次是维在不同细节程度的描述–维成员是维的一个取值•多层次维的维成员是各层次取值的组合•对应一个数据项,维成员是该数据项在该维中位置的描述–多维数组可以表示为(维1,维2,……,变量),如(地区,时间,销售渠道,销售额)–多维数组的取值称为数据单元(单元格)•可以理解为交叉表的数据格•一些基本操作–在多维数组的某一维选定一个维成员的动作称为切片。•舍弃一些观察角度–在多维数组的某一维上选定某一区间的维成员切块•多个切片的叠加–旋转是改变一个报告或页面显示的维方向•以用户容易理解的角度来观察数据•基于多维数据库的OLAP——MOLAP–以多维方式组织数据(综合数据)–以多维方式显示(观察)数据–多维数据库的形式类似于交叉表,可直观地表述一对多、多对多的关系•如:产品、地区、销售额–关系–多维–多维数据库由许多经压缩的、类似于数组的对象构成,带有高度压缩的索引及指针结构–以关系数据库存放细节数据、以多维数据库存放综合数据•基于关系数据库的OLAP——ROLAP–以二维表与多维联系来表达多维数据(综合数据)•星型结构•事实表,存储事实的量及各维的码值(BCNF)•维表,对每一个维,至少有一个表用来保存该维的元数据(多层次、冗余)•事实表通过外键与每个维表相联系•雪花、星座、雪暴–模拟多维方式显示(观察)数据•MOLAP与ROLAP–MOLAP•计算速度较快•支持的数据容量较小•缺乏细节数据的OLAP–ROLAP•结构较复杂•以关系模拟多维•支持适当细节的OLAP•较成熟–HOLAP是以上两种的综合•桌面级工具–BrioQuery(ROLAP)–BusinessObjects(ROLAP)–CognosImpromptu(ROLAP)–CognosPowerPlay(MOLAP)•服务器级OLAP–ArborSoftwareEssbase(MOLAP)–MicroStrategyDSSAgent(ROLAP)–Oracle’sExpress(hybridMOLAP/ROLAP)•SQL3对聚集的扩展(在GroupBy中扩展)SP(S#,P#,QTY)S#P#QTYS1P1300S1P2200S2P1300S2P2400S3P2200S4P2200Selectsum(QTY)asTOTQTYFromSP;SelectS#,Sum(QTY)asTOTQTYFromSPGroupByS#;…...•SQL3对聚集的扩展(在GroupBy中扩展)–GroupingSets:支持多个分组同时运算SelectS#,P#,SUN(QTY)asTOTQTYFromSPGroupByGroupingSets((S#),(P#))S#P#TOTQTYS1Null500S2Null700S3Null200S4Null200NullP1600NullP21000•SQL3对聚集的扩展(在GroupBy中扩展)–Rollup:上卷SelectS#,P#,SUN(QTY)asTOTQTYFromSPGroupByRollup(S#,P#)等同于GroupByGroupingSets((S#,P#),(S#),())S#P#TOTQTYS1P1300S1P2200S2P1300S2P2400S3P2200S4P2200S1Null500S2Null700S3Null200S4Null200NullNull1600•SQL3对聚集的扩展(在GroupBy中扩展)–Cube:立方体(交叉表)SelectS#,P#,SUN(QTY)asTOTQTYFromSPGroupByCube(S#,P#)等同于GroupByGroupingSets((S#,P#),(S#),(P#),())S#P#TOTQTYS1P1300S1P2200S2P1300S2P2400S3P2200S4P2200S1Null5