• 1. 第3章 数据仓库和数据挖掘的OLAP技术本章要点 数据仓库的基本概念 多维数据模型 数据仓库的系统结构 数据仓库实现 数据立方体技术的近一步发展 从数据仓库到数据挖掘
  • 2. 数据仓库的发展自从NCR公司为Wal Mart建立了第一个数据仓库。 1996年,加拿大的IDC公司调查了62家实现了数据仓库的欧美企业,结果表明:数据仓库为企业提供了巨大的收益。 早期的数据仓库大都采用当时流行的客户/服务器结构。近年来分布式对象技术飞速发展,整个数据仓库体系结构从功能上划分为若干个分布式对象,这些分布式对象不仅可以直接用于建立数据仓库,还可以在应用程序中向用户提供调用的接口。 IBM的实验室在数据仓库方面已经进行了10多年的研究,并将研究成果发展成为商用产品。 其他数据库厂商在数据仓库领域也纷纷提出了各自的解决方案。
  • 3. 数据仓库的发展IBM: 在其DB2UDB发布一年后的1998年9月发布5.2版,并于1998年12月推向中国市场,除了用于OLAP(联机分析处理)的后台服务器DB2 OLAP Server外,IBM还提供了一系列相关的产品,包括前端工具,形成一整套解决方案。 Informix公司: 在其动态服务器IDS(Informix Dynamic Server)中提供一系列相关选件,如高级决策支持选件(Advanced Decision Support Option)、OLAP选件(MetaCube ROLAP Option)、扩展并行选件(Extended Parallel Option)等,这种体系结构严谨、管理方便、索引机制完善,并行处理的效率更高,其中数据仓库和数据库查询的SQL语句的一致性使得用户开发更加简便。
  • 4. 数据仓库的发展微软公司: 在其SQL Server7.0以及SQL Server2000中集成了代号为Plato的OLAP服务器。 Sybase: 提供了专门的OLAP服务器Sybase IQ,并将其与数据仓库相关工具打包成Warehouse Studio 。 PLATINUM: 提出了由InfoPump(数据仓库建模与数据加载工具)和Forest&Trees(前端报表工具)构成的一套较有特色的整体方案。 ; Oracle公司: 则推出从数据仓库构建、OLAP到数据集市管理等一系列产品包(如Oracle Warehouse Builder、Oracle Express、DataMart Suit等)。
  • 5. 数据仓库的我国的发展前景:随着计算机技术的发展,尤其是分布式技术的发展, 数据仓库在我国有着广阔的发展空间和良好的发展前景。例如: 由于银行商业化的步伐正在加大,各大中型银行在入世的机遇和挑战下,开始重新考虑自身的业务,特别是信贷风险管理方面特别注意,因而有关信贷风险管理和风险规章的基于数据仓库的决策支持系统的需求逐渐增多; 由于电子商务的迅速发展,越来越多的电子商务网站,开始考虑如何将数据仓库应用于商品销售分析、顾客的诚信度分析等,为客户提供更进一步的个性化服务; 如移动通信等各大型企业也开始考虑着手进行决策支持以及数据仓库规划。
  • 6. 数据挖掘的发展数据挖掘是与数据仓库密切相关的一个信息技术新领域,它是信息技术自然演化的结果。 随着数据库技术的迅速发展以及数据库管理系统的广泛应用,人们积累的数据越来越多,但缺乏挖掘数据中隐藏的知识的手段,导致了“数据爆炸但知识贫乏的”现象。 自80年代后期以来,联机分析处理(OLAP)和数据挖掘技术应运而生。
  • 7. 3.1数据仓库(Data Warehouse)数据仓库用来保存从多个数据库或其它信息源选取的数据, 并为上层应用提供统一 用户接口,完成数据查询和分析。 数据仓库是作为DSS服务基础的分析型DB,用来存放大容量的只读数据,为制定决策提供所需要的信息。 数据仓库是与操作型系统相分离的、基于标准企业模型集成的、带有时间属性的、面向主题及不可更新的数据集合。 W.H.Inmon对数据仓库所下的定义:数据仓库是面向主题的、集成的、稳定的、随时间变化的数据集合,用以支持管理决策的过程。
  • 8. 数据仓库的适用范围信息源中的数据变化稳定 或可预测应用不需要最新的数据 或允许有延迟应用要求 有较高的查询性能 而降低精度要求
  • 9. 数据仓库中数据的特点 面向主题 集成性 稳定性 时变性
  • 10. 面向主题主题:是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑上,它对应于企业中某一宏观分析领域所涉及的分析对象。 面向主题的数据组织方式可在较高层次上对分析对象的数据给出完整、一致的描述,能完整、统一的刻画各个分析对象所涉及的企业的各项数据以及数据之间的联系,从而适应企业各个部门的业务活动特点和企业数据的动态特征,从根本上实现数据与应用的分离。
  • 11. 集成性数据仓库中的数据是从原有分散的源数据库中提取出来的,其每一个主题所对应的源数据在原有的数据库中有许多冗余和不一致,且与不同的应用逻辑相关。为了创建一个有效的主题域,必须将这些来自不同数据源的数据集成起来,使之遵循统一的编码规则。因此,数据仓库在提取数据时必须经过数据集成,消除源数据中的矛盾,并进行数据综合和计算。经过数据集成后,数据仓库所提供的信息比数据库提供的信息更概括、更本质。
  • 12. 稳定性数据仓库中的数据反映的是一段时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于撰写快照进行统计、综合和重组的导出数据,而不是联机处理的数据。主要供企业高层决策分析之用,所涉及的数据操作主要是查询,一般情况下并不进行修改操作,即数据仓库中的数据是不可实时更新的,仅当超过规定的存储期限,才将其从数据仓库中删除,提取新的数据经集成后输入数据仓库。
  • 13. 时变性时变性:许多商业分析要求对发展趋势做出预测,对发展趋势的分析需要访问历史数据。因此数据仓库必须不断捕捉OLTP数据库中变化的数据,生成数据库的快照,经集成后增加到数据仓库中去;另外数据仓库还需要随时间的变化删去过期的、对分析没有帮助的数据,并且还需要按规定的时间段增加综合数据。
  • 14. 支持管理决策 数据仓库支持OLAP(联机分析处理)、数据挖掘和决策分析。OLAP从数据仓库中的综合数据出发,提供面向分析的多维模型,并使用多维分析的方法从多个角度、多个层次对多维数据进行分析,使决策者能够以更加自然的方式来分析数据。数据挖掘则以数据仓库和多维数据库中的数据为基础,发现数据中的潜在模式和进行预测。因此,数据仓库的功能是支持管理层进行科学决策,而不是事务处理。
  • 15. 数据仓库的技术要求大量数据的组织和管理:包含了大量的历史数据,它是从数据库中提取得来的,不必关心它的数据安全性和数据完整性。 复杂分析的高性能体现:涉及大量数据的聚集、综合等,在进行复杂查询时经常会使用多表的联接、累计、分类、排序等操作。 对提取出来的数据进行集成:数据仓库中的数据是从多个应用领域中提取出来的,在不同的应用领域和不同的数据库系统中都有不同的结构和形式,所以如何对数据进行集成也是构建数据仓库的一个重要方面。 对进行高层决策的最终用户的界面支持:提供各种分析应用工具。
  • 16. 操作数据库与数据仓库的区别操作数据库系统的主要任务是联机事务处理OLTP 数据仓库在数据分析和决策方面为用户提供服务,这种系统称为联机分析处理OLAP
  • 17. 事务型处理与分析型处理事务型处理:即操作型处理,是指对数据库的联机操作处理。事务型处理是用来协助企业对响应事件或事务的日常商务活动进行处理。它是事件驱动、面向应用的,通常是对一个或一组记录的增、删、改以及简单查询等。事务型处理的应用程序和数据是紧紧围绕着所管理的事件来构造的。在事务型处理环境中,数据库要求能支持日常事务中的大量事务,用户对数据的存取操作频率高而每次操作处理的时间短。
  • 18. 分析型处理分析型处理:用于管理人员的决策分析,例如DSS、 EIS、和多维分析等。它帮助决策者分析数据以察看趋向、判断问题。分析型处理经常要访问大量的历史数据,支持复杂的查询。在分析型处理中,并不是对从事务型处理环境 中得到的细节数据进行分析。细节数据量太大,会严重影响分析的效率,而且太多的细节数据不利于分析人员将注意力集中于有用的信息。分析型处理过程中经常用到外部数据,这部分数据不是由事务型处理系统产生的,而是来自于其他外部数据源。
  • 19. 事务型处理数据和分析型处理数据的区别 事务型处理数据 分析型处理数据 细节的 综合的,或提炼的 在存取瞬间是准确的 代表过去的数据 可更新 不可更新,只读的 操作需求事先可知道 操作需求事先不知 生命周期符合SDLC 完全不同的生命周期 对性能要求高 对性能要求宽松 一个时刻操作一个单元 一个时刻操作一个 事务驱动 分析驱动 面向应用 面向分析 一次操作数据量小 一次操作数据量大 支持日常操作 支持管理需求
  • 20. OLTP和OLAP的区别用户和系统的面向性: OLTP是面向顾客的,用于事务和查询处理 OLAP是面向市场的,用于数据分析 数据内容: OLTP系统管理当前数据. OLAP系统管理大量历史数据,提供汇总和 聚集机制.
  • 21. 数据库设计: OLTP采用实体-联系ER模型和面向应用的 数据库设计. OLAP采用星型或雪花模型和面向主题的数 据库设计. 视图: OLTP主要关注一个企业或部门内部的当前 数据,不涉及历史数据或不同组织的数据 OLAP则相反.
  • 22. 访问模式: OLTP系统的访问主要由短的原子事务组成. 这种系统需要并行和恢复机制. OLAP系统的访问大部分是只读操作.
  • 23. 为什么需要分离的数据仓库分离操作数据库系统和数据仓库的主要 原因是提高两个系统的性能.操作数据库系统是为已知的任务和负载设计的,而数据仓库的查询通常是复杂的,涉及大量数据在汇总级的计算,在操作数据库系统上处理OLAP查询,可能会大大降低操作任务的性能.
  • 24. 3.2 多维数据模型数据仓库和OLAP工具基于多维数据模型,该模型将数据看作数据立方体形式 数据立方体允许以多维对数据建模和观察.具体图形详见71页图3-1
  • 25. 多维数据库模式星型,雪花和事实星座模式是主要的存在形式 星型模式包含一个大的包含大批数据的事实表和一系列维表.如73页图3-4 雪花模式是星型模式的变种,不同的是将某些维表规范化.如74页图3-5 事实星座模式对应多个事实表共享维表.如74页图3-6
  • 26. 定义模式的例子定义图3-4的星型模式: 定义立方体: Define cube sales_star[time,item,branch,location]: dollars_sold=sum(sales_in_dollars), units_old=count(*)
  • 27. 定义维 Define dimension time as (time_key,day,day_of_week,month,quarter,year)
  • 28. 度量的分类和计算分布的: 设数据被划分为n个集合,函数在每一部分上的计算得到一个聚集值.如果将函数用于n个聚集值得到的结果,与将函数用于所有数据得到的结果一样则该度量是分布的,如count(),sum()等
  • 29. 代数的: 如果一个聚集函数能够由一个具有M个参数的代数函数计算,且每个参数都可以用一个分布聚集函数求得.如avg()可以由sum()/count()计算,其中sum()和count()是分布聚集函数.
  • 30. 整体的: 如果一个聚集函数无法用具有M个参数的代数函数进行这一计算,则这个函数称是整体的,如rand()等 许多度量可以用关系的聚集操作计算 对应图2-4,我们也可写出SQL语句.
  • 31. 计算dollars_sold和units_soldSelect sum(s.number_of_units_sold*s.price) Sum(s.number_of_units_sold) From time t,item i,branch b,location l,sales s, Where s.time_key=t.time_key and s.item_key=i.item_key and s.branch_key=b.branch_key and s.loation_key=l.location_key Group by s.time_key,s.item_key,s.branch_key,s.location_key
  • 32. 概念分层全序相关 偏序相关(具体见3,4章) Country year City quarter month week Street day
  • 33. 多维数据模型的OLAP操作上卷操作,通过维规约,在数据立方体上进行聚集. 下钻操作,是上卷操作的逆操作,由不太详细的数据到更详细的数据. 切片和切块,切片在给定的数据立方体的一个维上进行选择,切块则是在两个或两个以上的维进行选择. 转轴操作,转动数据的视觉,是目视操作. 如图2-10所示
  • 34. 3.3 数据仓库的系统结构自顶向下视图,使我们可以选择数据仓库所需的相关信息. 数据源视图,揭示被操作数据库系统捕获存储和管理的信息. 数据仓库视图,包括事实表和维表. 商务查询视图,从最终用户的角度透视数据仓库中的数据.
  • 35. 数据仓库设计过程选取待建模的商务处理 选取商务处理的粒度,例如单个事务,一天的快照等 选取用于每个事实表记录的维. 选取将安放在事实表中的度量如图3-4中的dollars_sold和units_sold
  • 36. 三层数据仓库结构底层数据仓库服务器,使用称作网间连接程序的应用程序,由操作数据库和外部数据源提取数据. 中间层是OLAP服务器,实现方法有 关系OLAP模型,在多维数据上的操作映射为标准的关系操作 多维OLAP模型,直接实现多维数据的操作
  • 37. 顶层是客户,它包括查询和报告工具,分析工具和数据挖掘工具(例如趋势分析,预测等)
  • 38. 数据仓库的类型企业仓库:企业仓库收集了关于主题的所有信息,跨越整个组织,它提供企业范围内的数据集成. 数据集市:包含企业范围数据的一个子集,对于特定的用户是有用的,其范围限于选定的主题. 虚拟仓库:是操作数据库上的视图集合.为了有效地处理查询,只有一些可能的汇总视图被物化,虚拟仓库易于建立,但需要操作数据库服务器具有剩余能力.
  • 39. OLAP服务器类型关系OLAP(ROLAP)模型,使用关系或扩充关系DBMS存放并管理数据仓库 多维OLAP(MOLAP)服务器,这些服务器通过基于数组的多维存储,支持数组的多维视图 混合OLAP(HOLAP)服务器,结合ROLAP和MOLAP技术,得宜于ROLAP的可伸缩性,和MOLAP的快速计算.
  • 40. 特殊的SQL服务器,为了满足在关系数据库中日益增长的OLAP需要,实现了特殊的SQL服务器,提供高级查询语言和查询处理,在星型和雪花模式上支持SQL查询.
  • 41. 数据立方体的有效计算计算量:对一个n维数据立方体,第i维的层次是Li,则可能产生的立方体总数是T=(L1+1)*…*(Ln+1)如果10维每维4个层次产生的方体数是5的10次方=9800000. 预先计算并物化所有可能产生的方体是不现实的,较合理的是部分物化3.4 数据仓库实现
  • 42. 方体的选择计算不物化:导致运行时计算昂贵的多维聚集,速度极慢. 全物化:需要海量存储空间,存放所有预先计算的方体. 部分物化:在存储空间和响应时间二者之间提供了很好的折衷.
  • 43. 多路数组聚集将数组分成块,块的大小能够放入立方体计算时可用的内存. 通过访问立方体单元进行聚集,使得每个单元必须重新访问的次数最小化.
  • 44. 索引OLAP数据位图索引:如图3-17所示,与散列和树索引相比,位图索引将比较,连接和聚集都变成了位算术运算,大大减少了运行时间. 连接索引:源于关系数据库的查询处理. 位图连接索引:将连接索引和位图索引集成.
  • 45. OLAP查询的有效处理确定那些操作应当在可利用的方体上执行,这涉及将查询中的选择投影上卷下钻操作转换成对应的SQL或OLAP操作. 确定相关操作应当使用哪些物化的方体,这涉及到找出可能用于查询的所有物化方体.
  • 46. 具体步骤考察的方体必须与查询具有相同的维集合,或是它的超集. 选择代价最小的方体.
  • 47. 元数据存储元数据是定义数据仓库对象的数据.元数据 的存储包括 数据仓库结构的描述 对元数据的操作 汇总用的算法 由操作环境到数据仓库的映射 关于系统性能的数据 商务元数据
  • 48. 数据仓库后端工具数据提取:从多个异种的外部数据源收集数据. 数据清理:检测错误,可能时修改错误. 数据变换:将数据转换成数据仓库格式. 装入:排序,综合,合并,计算视图,检查整体性,并建立索引和划分. 刷新:传播由数据源到数据仓库的更新.
  • 49. 数据仓库的维护 系统维护:是在系统已经交付使用之后为了改正错误和为了满足新的需要而修改系统的过程。 数据仓库中数据的日常管理工作: 清除过时的、不再使用的数据; 定期从源数据中提取数据,刷新数据仓库中的数据; 管理元数据等。 数据仓库系统的完善工作: 改正性维护:在数据仓库设计与开发过程中,虽然已经进行了严格的测试,但对于一个大型的系统可能还潜藏着一些错误,改正性维护就是为了发现和改正这些错误而进行的过程。 适应性维护:数据仓库的构建是基于当时的技术条件的,由于计算机科学技术发展十分迅速,每隔一定的周期硬件设备和系统软件都会发生重大的变革,适应性维护就是为了与变化了的环境相配合而进行的对系统进行修改的活动。 完善性维护:因为数据仓库系统一般是采用快速原型法开发的,需要在系统的运行过程中不断地听取用户对已有功能的修改建议和增加新功能的需求,使系统日趋完善,这项工作称为完善性维护。 预防性维护:预防性维护则是指为了改进系统未来的性能和功能打下基础而进行的修改工作。
  • 50. 进一步发展和探讨发现驱动的探查:预计算的度量指出数据异常,避免人工检查数据. 扩充SQL语句的实现(多粒度上的复杂聚集). 联机聚集,可以显示迄今为止所知道的,而不是等待查询完全处理完. 最高N查询,只查询最高的N项,而不是整个排序的表,这导致较快的响应时间并减少资源浪费.
  • 51. 3.6 从数据仓库到数据挖掘信息处理:支持查询和基本的统计分析,并使用表或图进行报告. 分析处理:支持基本的OLAP操作,在汇总的和细节的历史数据上操作. 数据挖掘:支持知识发现,包括找出隐藏的模式和关联,构造分析模型,进行分类和预测,并用可视化工具提供挖掘结果.数据仓库的应用
  • 52. 联机分析挖掘(OLAM)将联机分析处理与数据挖掘集成,有以下几 个原因: 数据仓库中数据的高质量:大部分数据挖掘工具需要在集成的一致的和清理过的数据上进行,经由这些预处理而构造的数据仓库不仅用作OLAP而且也用作数据挖掘的数据源.
  • 53. 环绕数据仓库的有价值的信息处理基础设施:谨慎的做法是尽量利用可用的基础设施,而不是一切从头做起. 基于OLAP的探测式数据分析:有效的数据挖掘需要探测式数据分析.用户常常想在不同粒度上分析它们.联机分析挖掘提供在不同的数据子集和不同的抽象层上进行数据挖掘的工具. 数据挖掘功能的联机选择:用户常常不知道想挖掘些什么.通过将OLAP与多种数据挖掘功能集成在一起,联机分析挖掘为用户选择所期望的数据挖掘功能动态修改挖掘任务提供了灵活性