《数据挖掘概念与技术》——第四章 数据仓库与联机分析处理
一、基本概念
1、宽泛概念:数据仓库是一种数据库,它与的那位的操作数据库分别维护。数据仓库系统允许将各种应用系统集成在一起,为同一的历史数据分析提供坚实的平台,对信息处理提供支持。
另一种说法: 数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理者的决策过程。
1)面向主题的:数据仓库围绕一些重要的主题,如顾客、供应商、产品和销售组织。关注点是决策者的数据建模与分析,不是在日常操作和事务处理上。
2)集成的:构造数据仓库是将多个易购数据源,如关系数据库、一般文件、联机事务处理记录集成在一起。 使用数据清理和数据集成技术,保证一致性。
3)时变的:从历史的角度提供信息,关键结构都包含着时间元素(显式地和隐式地)
4)非易失的:数据仓库总是物理地分离存储数据,不需要事务处理、回复和并发控制机制。
2、操作数据库系统与数据仓库的区别
(1)联机事务处理系统(OLTP):联机操作数据库系统的主要任务是执行联机事务和查询处理。涵盖了大部分日常操作:购物,制造,银行。。。
(2)联机分析处理系统(OLAP):可以用不同的格式组织和提供数据,以便满足不同用户的形形色色的需求。
(3)OLTP/OLAP区别:
1)用户和系统的面向性: OLTP是面向顾客的,用于专业人员的食物和查询处理;OLAP是面向市场的,用于知识工人的数据分析。
2)数据内容:OLTP系统管理当前数据;OLAP系统管理大量历史数据,提供汇总和聚集机制,使数据更容易用于有根据的决策。
3)数据库设计:OLTP系统采用实体-联系(ER)数据模型和面向应用的数据库设计;OLAP系统通常采用星形或雪花模型和面向主题的数据库设计。
4)视图:OLTP系统主要关注一个企业或部门内部的当前数据,而不涉及历史数据或不同单位的数据;OLAP系统还处理来自不同单位的信息,以及由多个数据库集成的信息。由于数据量巨大,OLAP数据存放在多个存储介质上。
5)访问模式:OLTP系统的访问主要由短的原子食物组成,该系统需要并发控制和恢复机制;OLAP系统的访问大部分是 只读操作(存放的是历史数据,不是最新数据),尽管许多情况是复杂的查询。
3、为什么要分离的数据仓库
操作数据库中存放了大量的数据。但是不适合支持决策,分离出一个数据仓库有利于提高两个系统的性能,一个负责更新存放数据,一个负责清洗整理数据区支持决策。
4、数据仓库:一种多层体系结构(三层)
(1)底层是仓库数据库服务器,它几乎总是一个关系数据库系统。
(2)中间层是OLAP服务器,其典型的实现使用(i)关系OLAP(ROLAP)模型(即扩充的关系DBMS,将多维数据上的操作映射为标准的关系操作),或者使用(ii)多维OLAP(MOLAP)模型(即专门的服务器,直接实现多维数据和操作)。
(3)顶层是前端客户层,包括查询和报告工具、分析工具和数据挖掘工具(预测,分析)。
5、数据仓库的模型(从结构角度看,有三种模型)
(1)企业仓库:企业仓库搜集了关于主题的所有信息,跨越整个企业。它提供企业范围内的数据集成,通常来自一个或多个操作数据库系统或外部信息提供者,并且是多功能的。
(2)数据集市:数据集市包含企业范围数据的一个子集,对于特定的用户群是有用的。其范围限于选定的主题(顾客、商品)。数据通常是汇总的。
(3)虚拟仓库:是操作数据库上视图的集合。为了有效地处理查询,只有一些可能的汇总视图被物化,虚拟仓库易于建立,但需要操作数据库服务器还有余力。
6、数据提取、变换和装入
(1)数据提取:由多个易购的外部数据源收集数据
(2)数据清理:检测数据中的错误,尽可能订正它们。
(3)数据变换:将数据由遗产或宿主格式转换成数据仓库格式。
(4)装入:排序、汇总、合并、计算视图、检查完整性、并建立索引和划分。
(5)刷新:传播由数据源到数据仓库的更新。
7、元数据库
(1)元数据:是关于数据的数据,元数据用来定义仓库对象的数据,例如:属性字段、字段长度、字段类型等。
(2)元数据库包括以下内容:
1)数据仓库结构的描述,包括仓库模式、视图、维、分层结构、导出数据的定义,以及数据集市的位置和内容。
2)操作元数据,包括数据历史(迁移数据的历史、使用的变换序列)、数据流通和管理信息。
3)用于汇总的算法,包括度量和维定位算法,数据所处的粒度、划分、主题领域、聚集、汇总、预定义的查询和报告。
4)由操作环境到数据仓库的映射,包括源数据库和他们的内容、信关描述、数据划分、数据提取、清洗、转换规则和默认值,数据刷新和净化规则,以及安全性。
5)关于系统性能的数据,除刷新、更新和复制周期的定时和调度规则外,还包括改善数据存取和检索性能的索引和概要。
6)商务元数据,包括商务术语和定义,数据拥有者信息和收费策略。
二、数据仓库建模:数据立方体与OLAP
数据仓库和OLAP工具基于多维数据模型。
1、数据立方体:一种多维数据模型
(1)数据立方体:允许以多维对数据建模和观察,它由维和事实定义。
1)维是一个单位想要记录的实体:商品的销售,设计维time、item、location;每个维也可以有一个与之相关的表,称为维表,它将进一步描述维。例如,item的维表可以包含属性item_name、iterm_type等。
2、星形、雪花形和事实星座:多维数据模型的模式
实体-联系数据模型广泛用于关系数据库设计。这种模型适合用于联机事务处理。
(1)星形模式:最常见的模型范型是星形模式,其中数据仓库包括
1)一个大的中心表(事实表),它包含大批数据且不含冗余
2)一组小的附属表(维表),每维一个
注意:星形模式中,每维只用一个表表示,而每个表包含一组属性。
(2)雪花模式:是星形模式的变种,其中某些维表被规范化,因而把数据进一步分解到附加的表中。雪花模式与星形模式的主要不同在于,雪花模式的维表可能是规范化形式,以便减少冗余,这种表易于维护并且节省存储空间。
(3)事实星座: 复杂的应用可能需要多个事实表共享维表。这种模式可以看做星形模式的汇集,因此称为星系模式,或者事实星座。
3、维:概念分层的作用
概念分层:定义一个映射序列,将低层概率集映射到较高层、更一般的概念。
4、度量的分类和计算
度量根据其所用的聚集函数可以分成三类:分布的、代数的、整体的。
(1)分布的:一种聚集函数如果能用如下分布方式进行计算,则他是分布的。 假设数据被划分成n个集合,将函数用于每一部分,得到n个聚集值,如果将函数用于n个聚集值得到的结果与将函数用于整个数据集(不划分)得到的结果一样,则该函数可以用分布方式计算。
(2)代数的:一个聚集函数如果能够用一个具有M个参数的代数函数计算(M是有界正整数),而每个参数都可以用一个分部聚集函数求得,则它是代数的。例如:avg() 平均,可以用sum()/count()代替。
(3)整体的:一个聚集函数如果描述他的子聚集所需的存储没有一个常数界,则它是整体的。
5、典型的OLAP操作
(1)上卷(roll-up):通过沿一个维的概念分层向上攀升或者通过维归约在数据立方体上进行聚集。
(2)下钻(drill-down):由不太详细的数据到更详细的数据,通过沿维的概念分层乡下或引入附加的维来实现。
(3)切片和切块(slice、dice)切片操作在给定的立方体的一个维上进行选择,产生一个子立方体。切块操作通过在两个或多个维上进行选择,定义子立方体。
(4)转轴(pivot):转轴又称旋转,是一种目视操作,它转动数据的视角,提供数据的替代表示。
(5)钻过(drill-across):执行设计多个事实表的查询
(6)钻透(drill-throuh):操作使用关系SQL机制,钻透到数据立方体的底层、到后端关系表。
OLAP提供分析建模机制,支持预测、趋势分析和统计分析函数模型。OLAP引擎是一种强有力的数据分析工具。
6、查询多维数据库的星网查询模型
多维数据库查询可以基于星网模型。星网模型由从中心点发出的射线组成,其中每一条射线代表一个维的概念分层,概念分层上的每个“抽象级”称为一个足迹,代表注入上卷、下钻等OLAP操作可用的粒度。
三、数据仓库的设计与使用
1、数据仓库的设计的商务分析框架
(1)关于数据仓库的设计,必须考虑四种不同的视图:
1)自顶向下视图:使得我们可以选择数据仓库所需的相关信息,这些信息足够满足当前和未来的商务需求。
2)数据源视图:揭示被操作数据库系统收集、存储、管理的信息。
3)数据仓库视图:包括事实表和维表,它们提供存在数据仓库内的信息,包括预计算的总和与计数,以及提供历史背景的关于源、日期和时间等信息。
4)商务查询视图:从最终用户的角度透视数据仓库中的数据。
(2)建立和使用数据仓库是一项复杂的任务,它需要商务技巧、技术技巧、计划管理技巧。
2、数据仓库的设计过程
数据仓库可以使用自顶向下方法、自底向上方法,或者二者结合的混合方法设计。
(1)一般设计步骤:
1)选取待建模的商务处理(例如 订单、发票、销售)。如果一个商务过程是整个组织并设计多个复杂对象应该使用数据仓库模型,而如果是处理部门的并关注某一类上午处理的分析,应当选择数据集市。
2)选取商务处理的粒度。对于处理,该粒度是基本的,在事实表中是数据的原子级(例如,单个事务)。
3)选取用于每个事实表记录的维,典型的维是时间、商品、顾客、供应商、仓库、事务类型和状态。
4)选取将安放在每个事实表记录中的度量,典型的度量是可加的数质量。
3、数据仓库用于信息处理
(1)三类数据仓库应用:信息处理、分析处理、数据挖掘
1)信息处理:支持查询和基本的统计分析,并使用交叉表、表、图表或图进行报告。趋势是构造低价格的基于web的访问工具,然后与web浏览器集成在一起。
2)分析处理:支持基本的OLAP操作,包括切片与切块、下钻、上卷、转轴。一般地,它在汇总和细节的历史数据上操作。
3)数据挖掘:支持知识发现,包括找出隐藏的模式和关联,构造分析模型,进行分类和预测,并使用可视化工具提供挖掘结果。
(2)数据挖掘、信息处理、联机数据分析的关系是什么?
1)信息处理基于查询,发现有用的信息,这种查询的回答反映着直接存放在数据库中的信息,并不反映复杂的模式或规律。因此,信息处理不是数据挖掘。
2)联机分析处理可以由用户选定的数据仓库子集,在多粒度上导出汇总的信息。
3)OLAP和数据挖掘的功能可以视为不相交的: OLAP是数据汇总/聚集的工具,旨在帮助简化数据分析和支持交互数据分析;而数据挖掘工具的目标是尽可能自动地发现/处理隐藏在大量数据中的隐含模式和有趣知识。
4)数据挖掘包含数据描述和数据建模。
4、从联机分析处理到多维数据挖掘
多维数据挖掘:又称探索式多维数据挖掘、联机分析挖掘或OLAM,它把数据挖掘与OLAP集成在一起。
(1)多维数据挖掘的重要性:
1)数据仓库中数据的高质量:大部分数据挖掘工具需要在集成的。一致的、清理过的数据上允许,这就需要昂贵的数据清理、数据变换、数据集成作为预处理步骤。如此构造处理的数据仓库不仅充当OLAP,而且也充当数据挖掘的高质量由价值的数据源。
2)环绕数据仓库的信息处理基础设施:包括多个异构数据库的访问、集成、合并、变换、ODBC/OLE DB链接,web访问和服务机制,报表和OLAP分析工具,明智的做法是尽量利用可用的基础设施,而不是从头开始。
3)基于OLAP的多维数据探索:有效的数据挖掘需要探索式数据分析。多维数据挖掘提供 在不同的数据自己和不同的抽象层上进行数据挖掘机制,数据/知识可视化工具一起,将大大增强探索式数据挖掘的能力和灵活性。
4)数据挖掘功能的联机选择:多维数据挖掘为用户选择所期望的数据挖掘工功能,动态地切换数据挖掘任务,提供了灵活性。
四、数据仓库的实现
数据仓库包含海量数据,OLAP服务器要在数秒内回答决策支持查询。因此,数据库系统要支持高兴的数据立方体计算技术、存取方法和查询处理技术。
1、数据立方体的有效计算:概述
(2)部分物化:方体的选择计算
给定基本方体,方体的物化有三种选择:
1)不物化:不预先计算任何“非基本”方体。这导致回答查询实时计算昂贵的多维聚集,非常慢。
2)完全物化:预先计算所有方体。计算的方体的格 是完整立方体。通常这样需要海量存储空间来存放所有的预计算的方体。
3)部分物化:由选择地计算整个可能的方体的子集。子集只包含满足用户指定的某种条件。部分物化应考虑三个因素:
i)确定要物化的方体子集或子立方体
ii)在查询处理时利用物化的方体或子立方体
iii)在装入和刷新时,有效地更新物化的方体或子立方体。
2、索引OLAP数据:位图索引和链接索引
位图索引:它允许在数据立方体中快速搜索。在给定属性的位图索引中,属性域中的每个值v,有一个不同的位向量Bv,如果属性域包括n个值,则位图索引中每项需要n个位(n位向量),数据在给定行上该属性值维v,则位图索引的对应行上值维1,其他为0.
连接索引:在关系数据库查询处理方面的应用很流行。 通过中间表将两个表链接起来。
3、OLAP查询的有效处理
步骤:
(1)确定哪些操作应当在可利用的方体上执行:将查询中的选择、投影、上卷 (分组)和下钻操作转换成对应的SQL或OLAP操作。
(2)确定相关操作应当使用哪些物化的方体:找出可能用于回答查询的所有物化方体,使用方体间的“支配”联系知识,进行修剪,评估使用剩余物化方体的开销,并选择开销最小的方体。
4、OLAP服务器结构:ROLAP MOLAP HOLAP的比较
(1)关系OLPA(ROLAP)服务器:这是一种中间服务器,介于关系的后端服务器和客户前端工具之间。使用关系或扩充关系的DBMS存储并管理数据仓库数据,而OLAP中间件支持其余部分。ROLAP服务器包括每个DBMS后端优化,聚集导航逻辑的实现,附加的工具盒服务。
(2)多维OLAP(MOLAP)服务器:这些服务器通过基于数组的多维存储引擎,支持数据的多维视图。将多维视图直接映射到数据立方体数组结构。使用数据立方体的优点:能够对预计算的汇总数据快速索引。
注意:如果数据集市稀疏的,则使用多维数据莻的存储利用率可能很低。此时应当使用稀疏矩阵压缩技术。
(3)混合OLAP(HOLAP)服务器:混合OLAP方法结合ROLAP和MOLAP技术,得益于ROLAP较大的可伸缩性和MOLAP的快速计算。
(4)特殊的SQL服务器:为了满足关系数据库中日益增长的OLAP处理的需要,一些数据库系统供应商实现了特殊的SQL服务器,提供高级查询语言和查询处理,在只读环境下,在星形和雪花形模式上支持SQL查询。
五、数据泛化:面向属性的归纳
数据泛化通过把相对低层的值(年龄数值)用较高层概念(青年、中年...)替换来汇总数据,或通过减少维数,在涉及较少维数的概念空间汇总数据
概念描述:产生数据的特征和比较描述。当被描述的概念涉及对象类时,有时也称概念描述维类描述。特征:提供给定数据汇集的简洁汇总,而概念或类的比较也成为区分,提供两个或多个数据集合的比较描述。
1、数据特征的面向属性的归纳
面向属性归纳的基本思想是:首先使用数据库查询收集任务相关的数据;然后,通过考察任务相关数据中每个属性的不同值的个数进行泛化。
数据泛化:属性删除和属性泛化
(1)属性删除的规则:
如果初始工作关系的某个属性有大量不同的值,但是 在该属性上没有泛化操作符(该属性没有定义概念分层),或者它的较高层概念用其他属性表示,则应当将该属性从工作关系中删除。
我们考察该规则的理由:一个属性-值对 表示广义元组或规则的一个合取,删除一个合取就删除了一个约束,从而泛化了规则。
(2)属性泛化的规则:如果初始工作关系的某个属性有大量不同的值,并且该属性上存在泛化操作符的集合,则应当选择一个泛化操作符,并将它用于该属性。
理由:使用泛化操作符泛化工作关系中元组或规则的属性值,将使得规则涵盖更多的原数据的元组,从而泛化了它所表示的概念。着对应于泛化规则,在实例中称为沿泛化树攀升或概念树攀升。
(3)属性泛化阈值控制:如果属性的不同值个数大于该属性泛化阈值,则应当进行进一步的属性删除或属性泛化。
(4)广义关系阈值控制:为广义关系设置一个阈值,如果广义关系中不同元组的个数超过该阈值,则应当进行进一步泛化,否则不再进行进一步泛化。
3、类比较的面向属性归纳
许多应用中,用户可能对单个类(或概念)的描述或特征不感兴趣,而是希望挖掘一种描述,将一个类(或概念)与其他可对比类的描述。
注意: 目标类和对比类必须是可比较的,意指它们具有相似的维或属性。
(1)如何进行类比较?
1)数据收集:通过查询处理收集数据库中相关数据,并把它划分成一个目标类和一个或多个对比类。
2)维相关分析:如果有多个维,则应当在这些类上进行维相关分析,仅选择与进一步分析高度相关的维。这一步可以使用相关性度量或 基于熵的度量。
3)同步泛化:泛化在目标类上进行,泛化到用户或领域专家指定的维阈值控制的层,产生主目标类关系。对比类的概念泛化到与主目标类关系相同的层次,形成主对比类关系。
4)导出比较的表示:结果类比较描述可以用表、图、规则的形式可视化。