4.数据仓库和联机分析处理

数据仓库泛化、合并多维空间的数据。构造数据仓库涉及数据清理、数据集成和数据变换,是数据挖掘的预处理步骤。数据仓库提供联系分析处理(OLAP)工具,用于各种粒度的多维数据的交互分析,助力数据泛化和数据挖掘,可以和数据挖掘功能集成,如关联、聚类、分类和预测,用以加强多个抽象层上的交互知识挖掘。

数据仓库是数据分析和联系数据分析处理的重要平台,并为数据挖掘提供有效平台,构造数据仓库和OLAP是知识发现过程的基本步骤。

4.1数据仓库:基本概念

1)什么是数据仓库

数据仓库是一种数据库,与事务或操作数据库分别维护。数据仓库系统将各种应用系统的数据集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。

数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理者的决策过程。

Ø  面向主题的(subject-oriented):数据仓库围绕主题,如顾客、供应商、产品和销售,关注决策者的数据建模与分析,而不是日常操作和事务处理,因此数据仓库是排除对决策无用的数据,而提供特定主题的视图。

Ø  集成的(integrated):构造数据仓库将多个异构数据源,如关系数据库、一般文件和联机事务处理记录集成在一起,使用数据清理和数据集成技术,确保命名约定、编码结构、属性度量等的一致性。

Ø  时变的(time-variant):数据存储从历史的角度提供信息,数据仓库中的关键结构都隐式或显示地包含时间元素。

Ø  非易失的(nonvolatile):数据仓库总是物理地分离存放数据,所存放的数据源于操作环境下的应用数据,这种分离机制,使得数据仓库不需要事务处理、恢复和并发控制机制,只需要两种数据访问操作:数据的初始化装入和数据访问。

概言之,数据仓库是一种语义上一致的数据存储,作为决策支持数据模型的物理实现,并存放企业战略决策所需要的信息。数据仓库是一种体系结构,通过将异构数据源中的数据集成在一起而构建,支持结构化和/或专门的查询、分析报告和决策制定。

构建和使用数据仓库的过程即建立数据仓库(data warehousing)。数据仓库的构建需要数据集成、数据清理和数据统一。数据仓库的使用常涉及决策支持技术,使知识工人(如经理、分析人员或主管)通过数据仓库快捷、方便地得到数据的总体视图,根据数据仓库中的信息作出准确的决策。

对于异构数据库集成来说,集成多个异构的、自治的和分布的数据源并维护是一个挑战。传统数据库对于异构数据库的集成采用查询驱动的(query-driven)方法,而数据仓库用更新驱动(update-driven)方法。

查询驱动方法:在多个异构数据库上,建立一个包装程序和一个集成程序或中介程序,当查询在客户站点提交时,首先使用元数据字典对查询进行转换,将它转换成相应异构站点上的查询;然后,将查询映射和发送到局部查询处理器,由不同站点返回的结果被集成为全局回答;该方法需复杂的信息过滤和集成处理,并且与局部数据源上的处理竞争资源,对于频繁的查询,特别是需要聚集操作的操作,开销大。

更新驱动方法:将来自多个异构源的信息预先集成,并存储在数据仓库中,供直接查询和分析;与联机事务处理数据库不同,数据仓库不包含最近的信息;不过数据仓库为集成的异构数据库系统带来了高性能,因为数据被复制、预处理、集成、注释、汇总,并重新组织到一个语义一致的数据存储中;数据仓库的查询处理不影响在局部数据源上进行的处理;数据仓库存储并集成历史信息,支持复杂的多维查询。

2)操作数据库系统与数据仓库的区别

联机操作数据库系统的主要任务是执行联机事务和查询处理,即联机事务处理(Online Transaction Processing,OLTP)。数据仓库系统在数据分析和决策方面为用户或知识工人提供服务,可用不同的格式组织和提供数据,满足不同用户的不同需求,即联机分析处理(Online Analytical Processing,OLAP)系统。OLTP和OLAP主要区别:

Ø  用户和系统的面向性:OLTP是面向顾客的,用于事务和查询处理;OLAP是面向市场的,用于数据分析。

Ø  数据内容:OLTP系统管理当前数据,数据琐碎难用于决策;OLAP系统管理大量历史数据,提供汇总和聚集机制,并在不同的粒度层上存储管理信息,用于决策。

Ø  数据库设计:OLTP采用实体-联系(E-R)数据模型和面向应用的数据库设计;而OLAP系统通常采用星形或雪花模型和面向主题的数据库设计。

Ø  视图:OLTP系统主要关注企业或部门内部的当前数据,而不涉及历史数据或不同单位的数据;OLAP系统是跨越数据库模式,处理不同单位的信息,以及多个数据库集成的信息,数据量巨大,OLAP数据也存放在多个存储介质上。

Ø  访问模式:OLTP系统的访问主要由短的原子事务组成,需要并发控制和恢复机制;OLAP系统的大部分访问是读取操作(大部分数据仓库存放历史数据,而不是最新数据),并且是复杂的查询。

OLTP和OLAP的区别,包括数据库大小、操作频繁程度、性能度量等,如下表:


特征

OLTP

OLAP

特性

操作处理

信息处理

面向

事务

分析

用户

办事员、DBA、数据库专业人员

知识工人,如经理、主管、分析人员

功能

日常操作

长期信息需求、决策支持

DB设计

基于E-R,面向应用

星形/雪花、面向主题

数据

当前的、确保最新

历史的、跨时间维护

汇总

原始的、高度详细

汇总的、统一的

视图

详细、一般关系

汇总的、多维的

工作单元

短的、简单事务

复杂查询

访问

读/写

大多为读

关注

数据进入

信息输出

操作

主码上索引/散列

大量扫描

访问记录数量

数十

数百万

用户数

数千

数百

DB规模

GB到高达TB

≥TB

优先

高性能、高可用性

高灵活性、终端用户自治

度量

事务吞吐量

查询吞吐量、响应时间


3)为什么需要分离的数据仓库

提出问题:为什么不直接在数据库上进行联机分析处理,而要单独去构造独立的数据仓库呢?

分离数据库系统和数据仓库系统的主要原因有助于提高两个系统的性能。操作数据库是为已知的任务和负载设计的,如使用主码索引和散列,检索特定的记录,优化定制的查询;而数据仓库系统的查询是复杂的,涉及大量数据在汇总级的计算,需要特殊的基于多维视图的数据组织、存取方法和实现方法,如果在操作数据库上处理OLAP查询,会大大降低操作任务的性能。

分离的原因还因为操作数据库支持多事务的并发处理,需并发控制和恢复机制(如加锁和记日志),以确保一致性和事务的鲁棒性;而OLAP只需对汇总和聚集数据记录进行只读访问,如果在数据仓库系统上加上并发控制和恢复机制,会影响到并行事务的运行,且降低OLTP系统的吞吐量。

由于两种系统中数据的结构、内容和用户都不相同,所以需要分离。决策支持整合来自异构源的数据,产生高质量的、纯净的和集成的数据;而操作数据则维护详细的原始事务数据。

4)数据仓库:一种多层体系结构

数据仓库采用三层体系结构:

Ø  底层是仓库数据库服务器,是一个关系数据库系统;通过后端工具和实用程序,由操作数据库或其他外部数据源提取数据放入底层,工具和实用程序进行数据提取、清理和变换,以及装入和刷新,以更新数据仓库;数据提取采用信关(gateway)组件,信关由基础DBMS支持,允许客户程序产生SQL脚本,包括ODBC、OLE-DB和JDBC;底层还包括元数据库,存放关于数据仓库和它内容的信息。

Ø  中间层是OLAP服务器,其典型的实现应用关系OLAP(ROLAP)模型(扩充的关系DBMS,将多维数据上的操作映射为标准的关系操作),或使用多维OLAP(MOLAP)模型(专门的服务器,直接实现多维数据和操作)。

Ø  顶层是前端客户层,包括查询和报告工具、分析工具和/或数据挖掘工具(如趋势分析、预测等)。

    5)数据仓库模型:企业仓库、数据集市和虚拟仓库

从结构的角度看,有三种数据仓库模型:企业仓库、数据集市和虚拟仓库。

Ø  企业仓库(enterprisewarehouse):企业仓库搜集关于主题的所有信息,跨越整个企业,提供企业范围内的数据集成,来自一个或多个操作数据库系统或外部信息提供者,并且是多功能的;通常,包含细节数据和汇总数据,可以在传统的大型机、超级计算机服务器或并行结构平台上实现,需要广泛的商务建模,需多年累积建设。

Ø  数据集市(datamart):数据集市包含企业范围数据的一个子集,对于特定的用户群是有用,其范围限定于选定的主题;数据集市可在较低服务器上实现;根据数据源的不同,分为独立的和依赖的两类,在独立的数据集市中,数据来自一个或多个操作数据库系统或外部信息提供者,或者来自在一个特定的部门或地区局部产生的数据,依赖的数据集市的数据直接来自企业数据仓库。

Ø  虚拟仓库(virtualwarehouse):虚拟仓库是操作数据库上视图的集合;为有效地处理查询,只有部分汇总视图被物化,虚拟仓库易于建立,但需操作数据库服务器还有余力。

自顶向下开发企业仓库是一种系统的解决方案,能最大限度地减少集成问题,不过费用高、周期长且缺乏灵活性;自底向上的配置独立的数据集市则相对灵活、低花费,不过数据集市的集成也会带来问题。对于开发数据仓库系统,建议的方法是以递增、进化的方式实现数据仓库,先定义一个高层次的企业数据模型,在不同的主题和可能的应用之间,提供企业范围的、一致的、集成的数据视图;其次基于高层次企业数据模型,并行地实现独立的数据集市和企业数据仓库,也可通过中心服务器集成不同的数据集市,构造分布数据集市;最后构造一个多层数据仓库(multitier data warehouse),企业仓库是所有仓库数据的唯一管理者,仓库数据分布在一些依赖的数据集市中。

6)数据提取、变换和装入

数据仓库系统使用后端工具和实用程序来加载和刷新它的数据,这些工具和程序包含以下功能:

Ø  数据提取:由多个异构的外部数据源收集数据;

Ø  数据清理:检测数据中的错误,可能时修订;

Ø  数据变换:将数据由遗产或宿主格式转换成数据仓库格式;

Ø  装入:排序、汇总、合并、计算视图、检查完整性,并建立索引和划分;

Ø  刷新:传播由数据源到数据仓库的更新。

    除清理、装入、刷新和元数据定义工具外,数据仓库系统还提供一组数据仓库管理工具。数据清理和数据变换是提高数据质量,从而提高其后的数据挖掘结果质量的重要步骤。

7)元数据库

元数据是关于数据的数据。在数据仓库中,元数据是定义仓库对象的数据。对于给定的数据仓库的数据名和定义,创建元数据。其他元数据包括对提取数据添加的时间标签、提取数据的源、被数据清理或集成处理添加的缺失字段等。元数据库应当包括以下内容:

Ø  数据仓库结构的描述,包括仓库模式、视图、维、分层结构、导出数据的定义,以及数据集市的位置和内容。

Ø  操作元数据,包括数据血统(迁移数据的历史和它所用的变换序列)、数据疏通(主动的、档案的或净化的)和管理信息(仓库使用的统计量、错误报告和审计跟踪)。

Ø  用于汇总的算法,包括度量和维定义算法,数据所处的粒度、划分、主题领域、聚集、汇总、预定义的查询和报告。

Ø  由操作环境到数据仓库的映射,包括源数据库及其内容,信关描述,数据划分,数据提取、清理、转换规则和默认值,数据刷新和净化规则,以及安全性(用户授权和存取控制)。

Ø  关于系统性能的数据,除刷新、更新和复制周期的定时和调度的规则外,还包括改善数据存取和检索性能的索引和概要。

Ø  商务元数据,包括商务术语和定义,数据拥有者信息和收费策略。

数据仓库包含不同的汇总层,元数据是其中一种类型。其他类型包括当前的细节数据(几乎总是在磁盘上)、老的细节数据(通常在三级存储器上)、稍加汇总的数据和高度汇总的数据(可以也可以不物理地存入仓库)。

与数据仓库的其他数据相比,元数据扮演重要的角色,例如元数据用作目录,帮助决策支持系统分析者对数据仓库的内容定位;当数据由操作环境到数据仓库转换时,元数据作为数据映射的指南;对于汇总的算法将当前细节数据汇总成稍加综合的数据,或将稍加综合的数据汇总成高度综合的数据,元数据也起到指南作用。

元数据应当持久存放和管理(即放在磁盘上)。

4.2数据仓库建模:数据立方体和OLAP

数据仓库和OLAP工具基于多维数据模型,这种模型将数据看做数据立方体形式。

1)数据立方体:一种多维数据模型

数据立方体(datacube)允许以多维对数据建模和观察,由维和事实定义。维是一个单位想要记录的透视或实体,与之相关联的表为维表;事实是数值度量的,事实表包括事实的名称或度量,以及每个相关维表的码。

数据立方体是多维数据存储的一种比喻,数据的实际物理存储可以不同于它的逻辑表示。数据立方体是n维,不限于3D。数据立方体称做方体(cuboid),给定维的集合,对给定诸维的每个可能的子集产生一个方体,结果形成方体的格,每个方体在不同的汇总级显示group by数据。方体的格称做数据立方体,存放在最低层汇总的方体称做基本方体(basecuboid),放在最高层的汇总称做顶点方体(apex cuboid)。

2)星形、雪花形和事实星座:多维数据模型的模式

实体-联系数据模型用于关系数据库设计,数据库模式用实体集和它们之间的联系表示,适用于联机事务处理;而数据仓库需要简明的、面向主题的模式,便于联机数据分析。

数据仓库的数据模型是多维数据模型:

a、星形模型starschema

一个大的中心表(事实表),包括大批数据且不冗余,一组小的附属表(维表),每维一个;维表围绕中心表。

b、雪花模型snowflakeschema

在星形模式基础上,对某些维表进一步规范化,将事实表中的数据进一步分解到维表中,维表更多类似雪花。雪花模式的维表是规范化形式,目的是减少冗余,易于维护节省存储空间;不过和事实表庞大的数据相比,这种空间的节省可以忽略,且执行查询需要连接更多,影响查询性能。

c、事实星座

事实星座是多个事实表共享维表。

数据仓库是面向企业范围的,适合采用事实星座;数据集市是面向具体某个业务的,适合采用星形或雪花模式。

3)维:概念分层的作用

概念分层(concepthierarchy)定义一个映射序列,将底层概念集映射到较高层、更一般的概念。

形成数据库模式中属性的全序或偏序的概念分层称做模式分层(schema hierarchy)。

通过将给定维或属性的值离散化或分组来定义概念分层,产生集合分组分层(set-grouping hierarchy),可以在值的组合之间定义全序或偏序。概念分层可由系统用户、领域专家、知识工程师人工提供,或根据数据分布的统计分析自动产生。概念分层是数据挖掘准备的预处理步骤中重要工作。

4)度量的分类和计算

数据立方体的度量(measure)是一个数值函数,该函数可对数据立方体空间的每个点求值,通过对给定点的各维-值聚集数据,计算该点的度量值。

a、分布的(distributive)

一个聚集函数可用分布方式计算,则是分布。分布计算是指将数据划分为n个集合,将函数作用于每个集合得到n个聚集值,其结果和将函数用于整体数据得到的结果一样。如sum()、count()、min()、max()函数。

b、代数的(algebraic)

一个聚集函数能用一个具有M个参数的代数函数计算(M是有界正整数),而每个参数可以用一个分布聚集函数求得,则是代数的。如avt()=sum()/count()。

c、整体的(holistic)

一个聚集函数如果描述它的子聚集所需的存储没有一个常数界,则是整体的,包括median()、mode()和rank(),一个度量如果是由整体聚集函数得到的,则它是整体的。

5)典型的OLAP操作

在多维数据模型中,数据组织在多维空间,每维包含由概念分层定义的多个抽象层。部分数据立方体操作可物化视图,允许交互查询和分析数据。OLAP操作主要包括:

a、上卷rollup:沿一个维的概念分层向上攀升或通过维归约在数据体立方体上进行聚集。

b、下钻drilldown:是上卷的逆操作,沿维的概念分层向下或引入附加的维来实现。

c、切片和切块slice:在给定的立方体的一个维上进行选择,导致一个子立方体,是切片;切块(dice)操作通过在两个或多个维上进行选择,定义子立方体。

d、转轴(pivot):也成旋转rotate是一种目视操作,转动数据的视角,提供数据的替代表示。

e、其他OLAP操作:钻过(drill-across)执行涉及多个事实表的查询;钻透(drill-through)操作使用关系SQL机制,钻透到数据立方体的底层,到后端关系表。

其他OLAP操作还包括列出表中最高或最低N项,以及计算移动平均值、增长率、利润、内部返回率、贬值、流通转换和统计功能。

OLAP提供了分析建模机制,包括推导比率、方差等以及计算多个维上度量的计算引擎,能在每一粒度和所有维的交上产生汇总、聚集和分层。OLAP也支持预测、趋势分析和统计分析函数原型,OLAP引擎是一种强有力的数据分析工具。

6)查询多维数据库的星网查询模型

多维数据库查询可以基于星网模型(starnet model)。星网模型从中心点发出的射线组成,其中每一条射线代表一个维的概念分层。概念分层上的每个抽象级成为一个足迹(ftooprint),代表诸如上卷、下钻等OLAP操作可用的粒度。

通过用较高层抽象值替换底层抽象值,概念分层可用于泛化(generalize)数据;通过用低层抽象值替换高层抽象值,概念分层可特殊化(specialize)数据。

4.3数据仓库的设计与使用

1)数据仓库的设计的商务分析框架

数据仓库有助于提高竞争优势、提高企业生产力、客户关系管理等。为设计有效的数据仓库,要理解和分析商务需求,构造一个商务分析框架。对于数据仓库的设计,有四种不同的视图:

a、自顶向下视图;

b、数据源视图:用传统的数据建模技术,如E-R模型;

c、数据仓库视图:包括事实表和维表;

d、商务查询视图:从用户的角度透视数据仓库中的数据。

建立和使用数据仓库,涉及:

a、商务技巧:理解如何存储和管理数据;提取程序,数据从操作数据库转换到数据仓库;仓库刷新软件,合理地保持数据仓库中的数据相对于操作数据库中数据的当前行;

b、技术技巧:根据数据仓库中的历史信息得到的结论推导事实,包括发现模式和趋势,根据历史推断趋势和发现异常或模式漂移的能力;

c、计划管理技巧;

2)数据仓库的设计过程

数据仓库有自顶向下、自底向上以及二者混合的三种设计方法。自顶向下从总体设计和规划开始,自底向上以实验和原型开始。

数据仓库的设计和构造包含以下步骤:规划、需求研究、问题分析、仓库设计、数据集成和测试、部署数据仓库。开发方法有:瀑布式方法和螺旋式方法。瀑布式方法在进行下一步之前,每一步都进行结构的和系统的分析,如瀑布一样,从一级落到一级。螺旋式方法是功能渐增的系统的快速产生,相继发布之间的间隔很短,适合数据集市的开发。

数据仓库的实现目标应当是详细而明确的、可实现的和可测量的。

3)数据仓库用于信息处理

数据仓库工具可分为访问和检索工具、数据库报表工具、数据分析工具和数据挖掘工具。

有三类数据仓库应用:信息处理、分析处理、数据挖掘。信息处理支持查询和基本的统计分析;分析处理支持基本的OLAP操作,包括切片和切块、下钻和上卷以及转轴;数据挖掘支持知识发现,找出隐藏的模式和关联,构造分析模型,进行分类预测,并使用可视化工具提供挖掘结果。

OLAP和数据挖掘的功能是不相交的,OLAP是数据汇总/聚集工具,简化数据分析;而数据挖掘则是自动地发现隐藏在大量数据中的隐含模式和有趣知识。

4)从联机分析处理到多维数据挖掘

数据类型包括关系数据、数据仓库中的数据、事务数据、时间序列数据、空间数据、文本数据和一般文件。多维数据挖掘(又称探索式多维数据挖掘、联机分析挖掘或OLAM)把数据挖掘于OLAP集成再一起,在多维数据库中发现知识。

多维数据挖掘的重要性,基于数据仓库中数据的高质量、环绕数据仓库的信息处理基础设施、基于OLAP的多维数据探索、数据挖掘功能的联机选择。

多维数据挖掘强调数据挖掘和OLAP技术的集成。

4.4数据仓库的实现

数据仓库包含海量数据,OLAP服务器要在数秒内回答决策支持查询,因此数据仓库系统要支持高效的数据立方体计算技术、存取方法和查询处理技术。

1)数据立方体的有效计算:概述

多维数据分析的核心是有效计算许多维集合上的聚集,即SQL上的group by。每个分组用一个方体表示,分组的集合形成定义数据立方体的方体的格。

compute cube操作在操作指定的维的所有子集上计算聚集,需要很大存储空间。不包含分组的SQL查询是0维操作;包含一个分组的SQL查询是一维操作;在n维上的一个立方体操作等价于一组分组语句,每个对应于n个维的一个子集,立方体操作是分组操作的n维推广。

对于不同的查询,联机分析锤炼需要访问不同的方体,能提前计算所有的或者至少一部分方体,可以加快响应时间,避免冗余计算,当然是牺牲存储空间。聚集的预计算,在维较多且维有关联的概念分层时,存储需求非常大,造成维灾难(curse of dimensionality)。

n维数据立方体的方体总数公式:

数据仓库与挖掘模型数据_数据仓库

,加1是包括虚拟的顶层。给定基本方体,物化有三种选择:不物化、完全物化、部分物化。不物化就是不预先计算任何非基本方体,查询的实时计算代价高昂;而完全物化则是预先计算所有方体,需要海量存储空间;部分物化是有选择地计算方体集中一个适当的子集来,要考虑三个因素,第一是确定要物化的方体子集或子立方体,第二是在查询处理时利用物化的方体或子立方体,第三在装入和刷新时有效地更新物化的方体或子立方体。

有些OLAP产品也采用启发式方法来进行方体或子立方体的选择,最佳效果就是所物化的子集,都能被其他所引用,这就提出冰山立方体(iceberg cube)。冰山立方体是一个数据立方体,只存放其聚集值大于某个最小支持阈值的立方体单元。还有一种策略是物化一个外壳立方体(shell cube),预计算数据立方体中少量的维的方体,作临时查询用。

2)索引OLAP数据:位图索引和连接索引

要提高查询速度,数据仓库系统除了物化立方体(实际就是聚集预计算,也可以理解为视图的物化),还可以支持索引结构。支持索引结构有两种:

a、位图索引(bitmapindexing),允许在数据立方体中快速搜索。在给定属性的位图索引中,属性域中的每个值v,有一个不同的位向量Bv,如属性域中包含n个值,则需n位向量,如果给定行在该属性域中有值v,则位向量值为1,否则为0,适合属性域值是离散的情况。、

与散列和树索引相比,位图索引具有优势。对于基数较小的值域特别有用,因为比较、连接和聚集操作都简化成位算术计算,大大减少时间;而且字符串用单个进位表示,降低了空间和IO开销。对于基数较高的值域,可使用压缩技术,再用位图索引。

b、连接索引(joinindexing)在关系数据库查询有应用。连接索引登记来自关系数据库的两个关系的可连接行,连接索引记录能够识别可连接的元组,不比执行开销较大的连接操作。对于维护来自可连接的关系的外码(一个关系模式中形成另一个关系模式主码的属性集)和与之匹配的主码的联系,连接索引比较有用。

3)OLAP查询的有效处理

物化视图和构造OLAP索引结构的目的是加快数据立方体查询处理的速度。给定物化的视图,查询按照如下步骤进行:

确定哪些操作应当在可利用的方体上执行;确定相关操作应当使用哪些物化的方体。

4)OLAP服务器结构:ROLAP、MOLAP、HOLAP的比较

用于OLAP处理的数据仓库服务器的实现包括:

关系OLAP(ROLAP)服务器,介于后端服务器和前端工具之间,使用关系或扩充关系的DBMS存储并管理数据仓库数据。

多维OLAP(MOLAP)服务器,基于数组的多维存储引擎,支持数据的多维视图;将多维视图直接映射到数据立方体数组结构,使用数据立方体能对预计算的汇总数据快速索引,如果数据集是稀疏的,应当配合使用稀疏矩阵压缩技术;MOLAP服务采用两级存储表示来处理稠密和稀疏数据集:识别较稠密的子立方体并作为数组结构存储,而稀疏子立方体使用压缩技术,提高存储利用率。

混合OLAP(HOLAP)服务器:混合ROLAP和MOLAP技术。

特殊的SQL服务器。

4.5数据泛化:面向属性的归纳

数据泛化通过把相对低层的值用较高层的概念替换来汇总数据,或通过减少维数,在涉及较少的维数的概念空间汇总数据。允许数据集在多个抽象层泛化,便于用户考察数据的一般性质。

数据泛化的形式:概念描述(concept description)产生数据的特征和比较描述。对于复杂的数据类型和聚集以及用于控制与自动处理,涉及到面向属性的归纳,可用于复杂的数据类型并依赖数据驱动的泛化过程。

1)数据特征的面向属性的归纳

数据立方体方法基本上是基于数据的物化视图,通常在数据仓库中余弦计算。概念描述的面向属性的归纳(Attribute-Oriented Induction,AOI),是面向查询的、基于泛化的、联机的数据分析处理技术。

面向属性的归纳的基本思想是:首先使用数据库查询收集任务相关的数据;接着,通过考察任务相关数据中每个属性的不同值的个数进行泛化。泛化或者通过属性删除,或者通过属性泛化进行。

面向属性归纳的基本操作是数据泛化,在初始关系上进行,有两种方法:属性删除(attribute removl)和属性泛化(attributegeneralization)。

a.属性删除:基于如下规则,如果初始工作关系的某个属性有大量不同的值,但是在该属性上没有泛化操作符(如该属性没有定义概念分层),或者其较高层概念用其他属性表示,则可将属性从工作关系中删除;

b.属性泛化:基于如下规则,如果初始工作关系的某个属性有大量不同的值,并且该属性上存在泛化操作符的集合,则应当选择一个泛化操作符,并将它用于该属性。该规则基于如下理由:使用泛化操作符泛化工作关系中元组或规则的属性值,将使得规则涵盖更多的原数据的元组,从而泛化了它所表示的概念。在示例学习中成为沿泛化树攀升或概念树攀升。

如何界定属性有大量不同的值?一种技术就是属性泛化阈值控制,或者对所有的属性设置一个泛化阈值,或者对每个属性设置一个阈值。另一种技术是广义关系阈值控制,为广义关系设置一个阈值,如果广义关系中不同元组的个数超过该阈值,则应进一步泛化,否则不再泛化。

2)面向属性归纳的有效实现

算法:面向属性归纳,根据用户的数据挖掘请求,挖掘关系数据库中的泛化特征。

输入:DB,关系数据库;

      DMQuery,数据挖掘查询;

      a_list,属性列表(包含属性ai等);

      Gen(ai),属性ai上的概念分层或泛化操作符的集合;

      a_gen_thresh(ai),每个属性ai的泛化阈值。

输出:主广义关系P。

方法:

     a.get_task_relevant_data(DMQuery,DB)->W;//工作关系W存放任务相关的数据。

      b.prepare_for_generalization(W);//实现如下

           a)扫描W,收集每个属性ai的不同值;(如果W过大,可考察W的样本)

           b)对于每个属性ai,根据给定的或默认的属性阈值,确定ai是否应当删除;如果不删除,

             则计算它的最小期望层次Li,并确定映射对(v,v*),其中v是W中ai的不同值,而v*是v在层Li上的泛化值。

      c.generalization(W)->P,通过映射中对应的v*替换W中每个值v,累计count并计算所有聚集值,导出主广义关系P。有两种实现方法:

           a)对于每个广义元组,通过二分检索将它插入主关系P中,如果元组中已在P中,则简单地增加它的count并相应地处理其他聚集值;否则,将它插入P。

           b)在大部分情况下,由于主关系不同值的个数较少,可以将主关系编码,作为m维数组,其中m是P中的属性数,而每个维包含对应的泛化属性值。如果有的话,数组的每个元素存放对应的count和其他聚集值。广义元组的插入通过对应的数组元素上的度量聚集进行。

3)类比较的面向属性归纳

有些场景,可能不只要对单个类做属性归纳,而是要将一个类和其他可比较的类相区分。类区分或类比较挖掘区分目标类和它的对比类的描述。目标类和对比类必须是可比较的,它们应具有相似的维或属性。

如何进行类比较:

a.数据收集,通过查询处理收集数据库中相关数据,并把它划分成一个目标类和一个或多个对比类;

b.维相关分析,如果有多个维,则应当在这些类上进行维相关分析,仅选择与进一步分析高度相关的维,可使用相关性度量或基于熵的度量。

c.同步泛化:泛化在目标类上进行,泛化到用户或领域专家指定的维阈值控制的层,产生主目标类关系。对比类的概念泛化到与主目标类关系相同的层次,形成主对比类关系。

d.导出比较的表示:结果类比较描述可用表、图或规则的形式可视化。

与数据立方体相比,数据特征和泛化的面向属性的归纳方法提供了另一种数据泛化方法,不局限于关系数据,还可以在空间、多媒体、序列以及其他类型的数据集上进行。

4.6小结

1)数据仓库是面向主题的、集成的、时变的和非易失的有组织的数据集合,支持管理决策制定。数据仓库和操作数据库功能不同、数据类型不同,二者要分开维护。

2)数据仓库采用三层体系结构,底层是数据仓库服务器,通常是关系数据库系统,中间层是OLAP服务器,顶层是客户,包括查询和报表工具。

3)数据仓库包含加载和刷新仓库的后端工具和实用程序,涵盖数据提取、数据清理、数据变换、装入、刷新和仓库管理。

4)数据仓库元数据是定义仓库对象的数据。元数据库提供了关于仓库结构,数据历史,汇总使用的算法,从源数据到仓库形式的映射,系统性能,商务术语和问题等细节。

5)通常,多维数据模型用于企业数据仓库和部门数据集市的设计。这种模型采用了星形模式、雪花模式或事实星座模式。多维数据模型的核心是数据立方体。数据立方体由大量事实(或度量)和许多维组成。维是一个组织想要记录的实体或透视,本质上是分层。

6)数据立方体由方体的格组成,每个方体对应于给定多维数据的一个不同级别的汇总。

7)概念分层将属性或维的值组织成渐进的抽象层,概念分层对于多抽象层上的挖掘是有用的。

8)联机分析处理(OLAP)可以在使用多维数据模型数据仓库或数据集市上进行。典型的OLAP操作包括上卷、下钻(钻过、钻透)、切片和切块、转轴(旋转),以及统计操作,如秩评定、计算移动平均值和增长率等。使用数据立方体结构,OLAP操作可以有效地实现。

9)数据仓库用于信息处理(查询和报表)、分析处理(允许用户通过OLAP操作在汇总数据和细节数据之间导航)和数据挖掘(支持知识发现)。基于OLAP的数据挖掘称为多维数据挖掘(又称探索式多维数据挖掘、联机分析挖掘或OLAM)。它强调OLAP挖掘的交互式和探测式特点。

10)OLAP服务器可以是关系OLAP(LOLAP)、多维OLAP(MOLAP)、或混合OLAP(HOLAP)。ROLAP服务器使用扩充的关系DBMS,把多维数据上的OLAP操作映射成标准的关系操作。MOLAP服务器直接把多维数据视图映射到数组结构。HOLAP是ROLAP和MOLAP的结合,如可以对历史数据使用ROLAP,而将频繁访问的数据放在一个分离的MOLAP存储中。

11)完全物化是指计算定义数据立方体的格中所有的方体,通常需要过多的存储空间,特别是当维数和相关联的概念分层增长时,引起维灾难。作为一种替代方案,部分物化是选择性计算格中的方体子集或子立方体,如冰山立方体,只存放其聚集值大于某个最小支持阈值的立方体单元。

12)使用索引技术,OLAP查询处理可以更有效地进行。在位图索引中,每个属性都有它自己的位图索引表。位图索引把连接、聚集和比较操作归结成位算术运算。连接索引登记来自两个或多个关系的可连接行,降低了OLAP连接操作的代价。位图连接索引结合位图和连接索引方法,可以进一步加快OLAP查询处理。

13)数据泛化是一个过程,它把数据库中大量任务相关的数据,从相对较低的概念层抽象到较高的概念层。数据泛化方法包括基于数据立方体的数据聚集和面向属性的归纳。概念描述是描述性数据挖掘的最基本形式,以简洁汇总的形式描述给定的任务相关数据集,提供数据的有趣的一般性质。概念或类描述由特征和比较或区分组成。前者汇总并描述称做目标类的数据集,而后者汇总并将一个称做目标类数据集于称做对比类的其他数据集相区别。

14)概念特征化可以使用数据立方体(基于OLAP)的方法和面向属性的归纳方法实现。都是基于属性或基于维的泛化的方法。面向属性归纳方法包含以下技术:数据聚焦、通过属性删除或属性泛化对数据泛化、计数和聚集值累计、属性泛化控制和泛化数据可视化。

15)概念比较可以用类似于概念特征的方式,使用面向属性归纳或数据立方体方法进行。可以量化地比较和对比从目标类和对比类泛化的元组。