数据仓库与数据挖掘讲座同济大学经济与管理学院黄立平教授数据库技术的发展收集和数据库创建(20世纪60年代和更早)-原始文件处理数据库管理系统(20世纪70年代)-层次、网状、关系数据库系统-数据建模工具:实体-联系(E-R)模型等-索引和数据组织技术-查询语言:SQL、用户界面:表单、报告等-查询处理和查询优化、事务并发控制等-联机事务处理(OLTP)高级数据库系统(80年代中期—现在)-高级数据模型:扩充关系、面向对象、对象-关系-面向应用:空间的、时间的、多媒体的、主动的、科学的、知识库数据仓库和数据挖掘(80年代后期—现在)-数据仓库和OLAP技术-数据挖掘和知识发现基于Web的数据库系统(90年代—现在)-基于XML的数据库系统-Web挖掘数据库应用中存在的问题“数据丰富,信息贫乏”。存储了大量数据的数据库变成了“数据坟墓”——难以再访问的数据档案;在大型数据库中快速增长着海量数据,理解数据的含义已经远远超出了人的能力;领导者的重要决策往往无法、及时获得信息,因为缺乏从海量数据中提取有价值知识的工具;若在当前运行的操作数据库中获取信息,则影响数据库的使用和性能。海量数据要求强有力的数据分析工具以前的专家系统依赖用户或某领域的专家人工地将知识输入知识库;这一过程常常有偏差和错误,并且耗时、费用高;使用数据挖掘工具进行数据分析;可以发现重要的数据模式,对商务决策、知识库、科学和医学研究作出了巨大贡献;数据和信息之间的差距,要求系统地开发数据挖掘工具,将沉寂的数据转换成宝贵的知识。(4)传统数据库使用OLTP联机事务处理方式,进行数据组织时考虑记录每一笔业务的情况;数据仓库使用OLAP联机分析处理方式,进行数据分析处理,以主题为单位组织数据,例如:供应商、商品、顾客等。(5)面向主题的数据组织方式要求将数据组织成主题域,各主题域之间有明确的界限(独立性),在某一主题内的数据应该包括分析处理所要求的一切数据(完备性)。集成的(integrated):(1)构造数据仓库是将多个不同的数据源,如关系数据库、一般文件和联机事务处理记录,集成在一起。(2)将多个系统的数据进行计算和整理,保证DW的数据是关于整个系统的、一致的、全局的。使用数据清理和数据集成技术,确保命名约定、编码结构、属性等的数据结构一致性。保证各数据源中数据的一致性。不更新的(nonvolatile):(1)访问数据仓库主要是两种方式:数据的插入和查询。修改和删除操作很少。(2)DW的数据与操作环境下的应用数据分开存放。因此,数据仓库不需要在操作环境下事务处理、恢复和并发控制等机制。随时间变化的(time-variant):(1)数据仓库记录了从过去某一时间到目前的各个阶段的信息,通过这些信息,可以表明发展历程并对未来的趋势作出定量分析和预测。(2)DW的数据结构,隐式或显式地包含时间元素;其包含的大量综合数据也与时间相关,例如:月产量。(3)DW随时间变化不断增加新的数据内容;去掉超过时限(例如:5-10年)的数据。DW概念总结:数据仓库是一种语义上一致的数据存储体系结构;DW是决策支持数据模型的物理实现,并存放企业战略决策所需信息;DW通过将异种数据源中的数据集成在一起构造而成;完成各种数据查询、信息分析报告和决策支持。操作型数据库系统与数据仓库的区别操作型数据库系统的主要任务是执行联机事务和查询处理,称为联机事务处理(OLTP)系统。它涵盖了一个组织的大部分日常操作,如采购、制造、库存、销售、财务、银行等事务。DW在数据分析和决策方面为决策者提供服务。可以用不同的格式去组织和提供数据,以便满足不同用户的形形色色需求。这种系统称为联机分析处理(OLAP)系统。数据仓库的数据模型数据仓库和OLAP通常是基于多维数据模型。该模型将数据看作数据立方体(datacube)形式。数据立方体由维和事实来定义;以多维的形式对数据建模和观察。维是关于一个组织想要记录的透视或实体。事实是面向某一主题的数据度量,它表示了多个分析维之间的分析结果。多维数据模型通常有星型和雪花型两种形式。1.维维是人们观察数据的特定角度。例如:时间维是商品销售随时间推移发生的变化;地理维是商品在不同地区的销售分布情况。2.维的层次某个维以下存在的对细节的多个描述方面,例如:时间维有年、季度、月、日等不同层次。3.维成员维的一个取值是该维的一个成员。4.多维数组一个多维数组可以表示为(维1,维2,维3,…维n,变量);例如:(地区、时间、销售渠道、销售额)5.数据单元多维数组的取值是数据单元。例如:(上海,2002年2月,批发,2188)OLTP和OLAP的主要区别服务对象:OLTP是面向顾客的,用于办事员、客户和信息技术专业人员的事务和查询处理。OLAP是面向市场的,用于经理、主管和信息分析人员的数据分析。数据内容:OLTP系统管理当前数据。这种数据太琐碎,难以用于决策。OLAP系统管理大量历史数据,提供汇总和聚集机制,并在不同的粒度级别上存储和管理信息。数据易于用作中、高层的决策过程。数据库设计:OLTP系统采用E-R模型和面向应用的数据库设计。OLAP系统采用星型或雪花模型和面向主题的数据库设计视图:OLTP系统主要关注一个企业或部门内部的当前数据,而不涉及历史数据或不同组织的数据。OLAP系统由于组织的变化常常跨越数据库模式的多个版本。OLAP系统也处理来自不同组织的信息,由多个数据存储集成的信息。由于数据量巨大,OLAP数据也存放在多个存储介质上。访问模式:对OLTP系统的访问主要由短的原子事务组成。这种系统需要并行控制和恢复机制。对OLAP系统的访问大部分是只读操作(由于大部分数据仓库存放历史数据,而不是当前数据),尽管许多可能是复杂的查询。OLTP和OLAP的其他区别:包括数据库大小、操作的频繁程度、性能度量等。OLTP系统和OLAP系统的比较表特性OLTPOLAP特征操作处理信息处理面向事务分析用户办事员、客户、数据库专业人员经理、主管、分析员功能日常操作长期信息需求,决策支持DB设计基于E-R,面向应用星型/雪花,面向主题数据当前的,确保最新历史的,跨时间维护汇总原始的,高度详细汇总的,统一的视图详细,一般关系汇总的,多维的工作单位短的,简单事务复杂查询存取读/写大多为读关注数据输入、存储信息输出操作主关键字上索引/散列大量扫描访问记录数量数十个数百万用户数数千数百DB规模100MB到GB100GB到TB优先高性能,高可用性高灵活性,端点用户自治度量事务吞吐量查询吞吐量,响应时间数据仓库为什么是分离的?操作型数据库存放了大量数据,为什么不直接在这种数据库上进行联机分析处理,而是另外花费时间和资源去构造一个与之分离的数据仓库?主要原因是提高两个系统的性能。操作数据库是为已知的任务和负载设计的,如使用主关键字索引,检索特定的记录和优化查询;数据仓库的查询通常是复杂的,涉及大量数据在汇总级的计算,可能需要特殊的数据组织、存取方法和基于多维视图的实现方法。操作型数据库:支持多事务的并行处理,需要加锁和日志等并行控制和恢复机制,以确保数据的一致性和完整性。数据仓库:对数据记录进行只读访问,以进行汇总和聚集。如果OLTP和OLAP都在操作型数据库上运行,会大大降低数据库系统的吞吐量。总之,数据仓库与操作数据库分离是由于这两种系统中数据的结构、内容和用法都不相同。两种系统的数据结构、内容和用法都不相同操作型数据库一般不维护历史数据,其数据很多,但对于决策是远远不够的。数据仓库系统用于决策支持需要历史数据,将不同来源的数据统一(如聚集和汇总),产生高质量、一致和集成的数据。操作型数据库只维护详细的原始数据(如事务),这些数据在进行分析之前需要统一。由于两个系统提供很不相同的功能,需要不同类型的数据,因此需要维护分离的数据库。多维数据模型数据仓库和OLAP基于多维数据模型。该模型将数据看作数据立方体(datacube)形式。数据立方体允许以多维对数据建模和观察。它由维和事实定义。维是关于一个组织想要记录的视图或实体。例如,商店可能创建一个数据仓库sales,记录商店的销售,涉及维time,item(商品类),branch(分店)和location(地点)。这些维使得商店能够记录商品的月销售,销售商品的分店和地点。主题:多维数据模型围绕中心主题(例如sales)组织。主题用事实表表示。事实是用数值度量的。根据它们分析维之间的关系。例如,sales销售数据仓库的事实包括dollars_sold(销售的款项),units_sold(销售量)和amount_budgeted(预销量)。事实表包括事实的名称,以及每个相关维表的关键字。例:某连锁商店的销售数据按照维time季度,item商品类的2-D视图(其中销售数据是取自Location=“Vancouver”的所有分店,销售金额单位是1000美元)。item(商品类)______________________________________季度家庭娱乐计算机电话安全设备Q160582514400Q268095231512Q3812102330501Q4927103838580以三维角度观察该连锁商店的销售数据。例如,根据time,item和location城市观察数据。location是Chicago,NewYork,Toronto和Vancouver。location=“Chicago”;location=“NewYork”...(该市上述二维表略)(该市上述二维表略)…多维数据库模型:星型、雪花型关系数据库设计广泛使用E—R数据模型。数据库模式由实体的集合和它们之间的联系组成。这种数据模型适用于联机事务处理。数据仓库需要简明的、面向主题的模型,便于联机数据分析。数据仓库数据模型是多维数据模型。这种模型有星型模式、雪花模式等。星型模式(starschema):是数据仓库最常见的数据模型,其中包括:(1)事实表:包含大批数据和不含冗余的中心表;(2)一组小的附属表(维表),每一维一个。维表围绕中心表显示在连线上。例:某连锁商店的星型模式如下图所示。sales有四个维,分别是time,item,branch(分店)和location。该模式包含一个中心事实表sales,它包含四个维的关键字和两个度量dollars_sold销售的款项和units_sold销售量。在星型模式中,每一维只用一个表表示,每个表包含一组属性。例如,location维表包含属性集{location_key,street,city,province_or_state,country}。sales数据仓库的星型模式timesalesitem维表事实表维表time_key-------------time_keyitem_namedayitem_key--------item_keyday_of_the_weekunits_soldbrandmonthdollars_soldtypequarterlocation_keysupplier_type★yearbranch_key|||branch维表location维表branch_keylocation_keybranch_namestreetbranch_typecity★province_or_statecountry雪花模型(snowflakeschema)雪花模型是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加的表中。结果,模型图形成类似于雪花的形状。雪花模型和星型模型的主要不同在于,雪花模型的维表可能是规范化形式,以便减少冗余。这种表易于维护,并节省存储空间,因为当维结构作为列包含在内时,大维表可能非常大。由于执行查询需要更多的连接操作,雪花模型可能降低浏览的性能。数据仓库系统的性能可能受到影响。在数据仓库设计中,雪花模式不如星型模式使用广泛。该连锁商店sales的