数据仓库技术所解决的问题是如何更合理和更有效地组织企业的数据体系,以更好地满足企业信息型应用对数据的要求,降低企业的数据管理、数据获取和数据集成的成本,提高数据系统响应速度,提高数据质量和数据的一致性。数据挖掘技术所解决的问题是如何针对具体的分析对象和分析需求,尝试通过智能和自动化的手段把数据转换为有用的信息和知识。
14.1.1决策支持系统及其演化
14.1.2基于数据仓库的决策支持系统
数据仓库的决策支持系统提出目的是为了解决在“蜘蛛网结构”中存在的一系列问题。
数据仓库将企业决策支持所需的数据集成在一起,构成一个集成的、一致而稳定的数振源。企业内部的操作型系统和一些外部数据源构成了数据仓库的数据源。这种体系结构如下图所示:
在数据仓库体系结构中,数据仓库是核心,操作型系统是基本数据源,决策支持系统是数据的需求者。
其中主要存在下面两类数据:
⚫ 原始数据:一般来自于企业操作型系统,也可以称之为操作型数据。
⚫ 导出数据:为了提高数据查询和管理效率,根据操作型数据计算得到的数据,常用于支持分析型应用。一般将这种数据称为分析型数据。
14.2.1数据仓库的概念与特性
建立数据仓库的主要目的:根据决策需求对企业的数据采取适当的手段进行集成,形成一个综合的、面向分析的数据环境,用于支持企业的信息型、决策型的分析应用。对于什么是数据仓库,人们提出了许多不同的概念。
概念:数据仓库是一个面向主题的、集成的、非易失的,且随时间变化的数据集合,用来支持管理人员的决策。
数据仓库的几个重要特性如下所示。
⚫ 面向主题性。
⚫ 集成性。
⚫ 不可更新性。
⚫ 时间特性。
1.面向主题性
⚫ 在传统的 OLTP 环境下,数据库系统的数据一般是以面向企业基本业务应用的方式进行组织的。
在数据仓库中数据是以面向主题的方式进行组织的,主题是一个抽象的概念,主题也可以称为分
析主题或分析领域,用于表达某一宏观的分析领域所涉及的对象,以及与对象有关的数据集合。
⚫ 数据仓库主题数据的实现一般还是采用关系型数据库技术,即主题的对象以及对象所相关的数据是通过一组关系表来实现。
⚫ 在面向分析主题的数据组织方式中,需要先确定系统中所涉及的主题。
2.集成性
⚫ 继承是数据仓库第二个特性,也是最为重要的特性。在数据进入数据仓库时,要采用各种集成方法来消除应用层的许多不一致性。
⚫ 数据仓库的数据集成功能分成数据抽取、转换、清理(过滤)和装载 4 项任务。
⚫ 数据集成主要完成从数据源获取数据,并按目标数据模型要求操作,装载入目标数据体系中。如数据仓库核心层模型的要求对数据进行转换,并清除错误或无效数据。
3.不可更新性
⚫ 在操作型环境下,数据访问和处理一般以单条方式进行的,数据一般是会被更改或更新的。
⚫ 在数据仓库中,数据通常是以批量方式载入与访问的,并不进行一般意义上的更新。
⚫ 不可更新并不意味着不再向数据仓库追加新的数据,只是表示一般不再对进入数据仓库的原始数据进行修改。
4.时间特性
⚫ 数据仓库的时变性是指数据仓库中的每个数据单元都有时间标志,记录一般都加有时戳,有时记录中可能包含有事务的发生时间。
⚫ 数据仓库随时间变化的特性还指数据仓库在运行中必须不断捕捉操作型环境中数据,并将新的数据集成后追加到其中。
14.2.2数据仓库的体系结构与环境
从数据层次角度看,典型的数据仓库的数据体系结构包括的内容如下图所示。
从功能结构上看数据仓库的数据体系功能包括的内容如下图所示。
14.2.3数据仓库的数据组织
1.数据组织结构
来自操作型环境中的源数据经过集成后进入当前细节级。根据系统需要,可能需要对当前细节级的数据进行轻度的综合(汇总)或进一步的高度综合,得到轻度综合级数据和高度综合级数据。老化以后的细节数据将进入早期细节级。数据仓库的数据组织结构如下图所示。 2.粒度
概念:系统中存在不同综合级别的数据,一般将综合级别称为粒度。粒度越大,表示综合程度越高;粒度越小,表示综合程度越低。
在数据仓库环境中,粒度的设计会影响到数据仓库的数据量以及系统能回答的查询的类型(粒度越小,细节程度越高,能回答的查询就越多)。但存在的两个问题:
⚫ 在数据仓库环境中,需要存储低粒度级的细节数据,数据量就比较大,空间代价也大。
⚫ 如果数据仓库不保存低粒度级数据, 只有粗粒度级的数据,则需要存储的数据量较少,但这样就无法回答一些细节问题,查询代价就大。
一般,在进行数据仓库的数据组织时,需要根据当前应用的需求来进行多粒度级设计,针对某一主题,在可用的存储空间中保存粗细程度不同的主题数据,以尽可能满足各种应用的多角度、多层次数据查询要求,同时在总体上提高查询的计算效率。
3.数据分区
在数据仓库中,数据分区可以解决用一个物理表来存储模式相同的数据而造成数据管理和查询效率低下。
恰当的数据分区能有效提高数据仓库各种数据处理功能的效率,合适的分区能使数据的增长和管理都容易实现。
分区的选择一般是由开发者来决定的,最常见的是按照时间标准来划分,也可以按照其他的标准进行划分,或者多个分区标准组合起来对数据进行分割。
数据分区的方式如下所示,两者之间存在一定的区别:
①系统层分区是数据库系统提供的机制,各个分区在逻辑上是一个表,在物理上属于不同的分区。
系统层分区 数据库管理系统知道各分区间的逻辑关系,也就是说数据库管理系统管理逻辑上的表和物理上的分区之间的关系。
数据分区的方式
②应用层分区由应用代码实现,不同的分区在逻辑上和物理上都属于不同的表,如何分区由开发
应用层分区者和程序员控制,数据库管理系统并不知道分区间存在什么逻辑关系。 14.2.4元数据
元数据(Meta Data)是数据仓库中的重要数据,是关于数据的数据,或者叫作描述数据的数据。
元数据描述了数据的结构、内容、链和索引等项内容。
⚫ 在传统的数据库中:元数据描述了数据库中的各个对象,如数据库中的数据字典就是一种元数据。
⚫ 在关系数据库中:元数据描述对数据库、表、列等其他对象的定义。
⚫ 在数据仓库中:元数据定义了数据仓库中许多对象——表、列、查询、商业规则及数据仓库内部的数据转移等。
在数据仓库中建立元数据的目的主要在于让用户能更快地找到所需的数据,让前台工具和管理员更好地理解和管理数据。
在数据仓库中,元数据一般分成技术型元数据和业务型元数据两类,其内容一般包括主题描述、外部数据和非结构化数据的描述 、层间数据映射关系、逻辑模型定义、集成时的数据转换规则、数据的抽取历史、数据分区定义以及有关存储路径和结构的描述等。
技术元数据是描述关于数据仓库技术细节的数据,这些元数据应用于开发、管理和维护数据仓库。
业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够“读懂”数据仓库中的数据,也使得技术人员在开发、管理和维护数据仓库时更易于理解实际业务背景、满足实际业务需求。
元数据的作用:
⚫ 在数据仓库中建立元数据的目的主要在于让用户能更快地找到所需的数据,让前台工具和管理员更好地理解和管理数据。
⚫ 从元数据的类型和作用来看,元数据实际上要解决何人在何地为了什么原因及如何使用数据仓库的问题。
⚫ 元数据在数据仓库管理员眼中是数据仓库中的包含了所有内容和过程的完整知识库和文档,而在最终用户(数据分析人员)眼中,元数据是数据仓库的信息地图。
14.2.5操作型数据存储
在作为数据源的操作型系统与数据仓库之间存在一个“操作性数据存储(ODS)”的数据层。
提出这个数据存储层的最初目的是支持一些特殊的应用功能,主要包括即时OLAP和全局型OLTP应用。
存在 ODS 中的数据归结出 4 个基本特点:即面向主题的、集成的、可变的、数据是当前或接近当前的。
分别与 OLTP 环境和数据仓库环境中的数据互有异同。
根据从数据源到 ODS 的数据传送更新频率的高低,ODS 被分成了如下 3 类:
①ODS I:第一类 ODS 数据更新频率是秒级的,即操作型系统中的数据发生改变以后,几乎是立即传送到 ODS 中,这类 ODS 建设难度很大,但随着软硬件技术的进展,越来越多的企业在开始尝试建立这种 ODS。
②ODS II:第二类 ODS 的数据更新频率是小时级,如 4 小时更新一次,这类 ODS 建设难度低。
③0DS III:第三类 ODS 的数据更新频率是天级,一般隔夜后将数据更新到 ODS 中。
以上三类ODS是根据数据更新的速度划分的第四类ODS即ODS IV是根据数据来源方向和类型区分的。
第四类 ODS 的数据不仅包含来自操作型环境的数据,也包含由数据仓库层和数据集市层的应用反馈给 ODS
的一些决策结果或一些报表信息,这样可以由这类 ODS 向企业内外部提供相关的一些信息服务。
14.3.1数据仓库设计的需求与方法
1.数据仓库设计需求
⚫ 数据体系设计:指数据仓库决策支持应用程序的集合,为企业提供决策支持。
⚫ 应用体系设计:最终将反映为对数据的需求,构成数据体系的建设需求
⚫ 用户的需求:体现为对企业基本数据模型的建立和基于企业的基本数据模型的不断变化的数据需求,会影响主题划分和主题的建立顺序。
2.设计方法
数据仓库系统设计目标主要在于建立主题数据环境,强调的是数据的集成性,目标在于建立一个全局的一致的数据环境,建立企业的信息资源体系结构的数据核心,并在此基础上,建立基本的决策支持分析应用。
数据仓库的数据组织是面向主题的,按照一定的主题域分别设计,而不是面向报表的,要对各个报表进行统计分析、归类,划分为不同的主题进行建模。设计方法如下:
⚫ CLDS(SDLC 的逆序)方法:针对需求变化比较大的数据仓库应用系统建立过程。
⚫ OLAP 产品中多维分析功能:通过动态的数据综合引擎来提高数据仓库的数据体系对动态变化的需求的响应。
只要当数据仓库中当前主题集无法满足新的数据需求是,才有必要重新建立新的主题来满足新的数据需求。
14.3.2数据仓库的数据模型
数据仓库的数据模型与普通数据库系统的数据模型一样,一般划分为概念、逻辑和物理这三级数据模型。但这两种 3 级模型之间有如下区别:
⚫ 数据仓库的数据模型中一般不包含纯操作型数据。
⚫ 数据仓库的数据模型一般需要扩充关键字结构,在其中加入时间属性。
⚫ 数据仓库的数据模型中常常需要增加导出数据。
1.概念模型
概念模型是用于描述客观世界中的对象及其属性的一种概念性工具。数据仓库中的概念模型常见的表示方法还是实体关系图,即 ER 图,用于描述实体以及实体之间的联系。
下图是销售主题的 ER 图。
2.逻辑模型
数据仓库的逻辑模型可以采用关系型模型,也可以采用多维数据模型,也可以通过关系型模型来表示多维模型。
在常见的数据仓库系统中,多数还是采用关系模型作为关系逻辑描述工具。
3.物理模型
物理模型就是逻辑模型在具体的数据存储平台上的物理定义,也就是逻辑模型在数据仓库中的实现,主要包括:物理存取方式、数据存储结构、数据存放位置和存储分配。
在建立物理模型时需要考虑的因素主要有各种操作的存取时间和数据仓库存储空间利用率和数据仓
库主题维护代价。
常见的用来优化物理模型的设计技术包括引入冗余措施、分区、生成导出数据、表合并、细分数据和索引等。
14.3.3数据仓库设计步骤
1.数据仓库设计步骤 2.数据集成
数据集成在数据仓库设计中是必不可少的一环。数据集成是将源自不同数据源的数据经过抽取、转换、清理、装载等操作载入数据仓库的过程,是实施数据仓库的重要步骤。一个简单的数据集成过程如下图所示。
ETL 是实现数据集成的主要技术,即填充更新数据仓库的数据抽取、转换、装载的数据采集过程。对于复杂的数据抽取转换载入过程,一般使用工具协助 ETL 开发,并运用内建的元数据机制来储存源自于目的的映射和转换函数。
越大量的资料、越复杂的转换逻辑越倾向于使用 ELT。
数据仓库维护的基本思想是:根据某种维护策略,在一定条件下触发维护操作;维护操作捕捉到数据源中的数据变化;通过一定策略对数据仓库中的数据进行相应的更新操作,以保持两者的一致性。
数据仓库环境建立以后,需要对数据仓库进行日常管理工作,主要包括:
⚫ 操作型数据环境中新生成的数据的集成、载入、刷新数据仓库中的细节数据。
⚫ 导出数据(物化视图)、将过时的数据转移到磁带等存储设备上。
⚫ 清除不在使用的数据、对元数据进行管理等。
14.4.1数据仓库数据的更新维护
1.维护策略
数据仓库中的数据维护策略分为 3 种:实时维护、延时维护和快照维护。
⚫ 实时维护:实时维护在数据源发生变化时,立即更新数据仓库中数据。实时维护操作的触发条件是数据源进行了数据的更新操作。这种策略能够保证用户总查到最新的数据。
⚫ 延时维护:延时维护工作并不是在数据源的更新事务中完成,而是在数据仓库中的视图被查询时完成更新。延时维护操作的触发条件是用户在数据源发生变化后首次对数据仓库执行查询操作。
⚫ 快照维护:快照维护策略定期对数据仓库进行维护,维护操作的触发条件是时间。这种策略不会给源数据的更新事务或者数据仓库的查询事务增加任何负担,但通常无法提供最新的数据。
2.捕捉数据源的变化
对数据仓库中的相关数据进行更新需要通过某种机制来告知数据仓库源数据发生了变化。
通过对源数据变化的监听和捕获来告知告知数据仓库哪些源数据发生了变化,典型的方法有:
⚫ 触发器
⚫ 修改数据源应用程序。
⚫ 通过日志文件。
⚫ 快照比较法。
3.导出数据的刷新
对数据仓库中导出数据的维护方法有两种:一是根据维护对象的数据源对其进行重新计算。二是根据数据源的变化量在维护对象原有数据的基础上进行数据添加和修改,即增量式维护。
数据仓库的数据更新维护操作通常放在夜间完成,维护过程必须在第二天清晨完成(因为该操作需要执行大量的表数据更新操作,在此过程中用户无法获取数据仓库中的数据)
用户不可存取数据仓库时间的长短是衡量数据维护效率的重要指标。一个有效的方法是将维护过程分为“聚集”和“更新”两部分。
⚫ 聚集:聚集操作预先生成一部分更新用的聚集数据,存放在附加表中,不涉及对数据修改,这样
用户仍能存取导出数据表。
⚫ 更新:更新操作具体执行维护对象的更新,用户不可存取数据仓库时间缩短为“更新”操作所消
耗的时间。
14.4.2 数据仓库监控与元数据管理
1.数据仓库监控
对数据仓库的数据量进行监控的原因:因数据仓库的存储容量是有限,数据仓库中的数据量可能会由于不断增长而超过存储限量。
根据监控情况对数据仓库的存储和设计进行必要的调整,例如增加一些设备,减少一些视图,导出一些数据等措施。
对数据库管理员来说:需要对数据仓各种数据的使用率进行监控,以了解不同数据的用户和使用情况,并根据监控的情况对设计进行调整。
同时,对数据仓库环境的网络通信情况、网络数据流量、数据源数据变化情况、集成和维护工具运行效率、查询响应时间、应用支持效率等各种工具、对象的状态、参数等,都需要进行必要的监控,以维持数据仓库的有效运行。
2.元数据管理
技术元数据:描述数据仓库结构,存储关于数据仓库系统技术细节的数据,如数据仓库监控的过程代码和结果。
业务元数据:提供企业概念模型和多维数据模型,表示出了数据的业务视图。
在数据仓库中必须建立元数据管理机制,以合理的管理数据仓库中的数据。
在实践中,一般采用元数据库来存储和管理元数据。在设计、安装、使用、操作和管理数据仓库的工具和处理过程中,共享元数据库中的数据。
元数据记录企业详细信息,保存数据存储位置,生成维护数据之间的关系以及数据的转换过程,保证了数据仓库数据的一致性和准确性,支持强大的查询和报表生成工具,为企业进行数据质量管理提供数据依据和决策支持信息。
14.5.1OLAP简介
OLAP 主要用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。可以针对分析人员的要求,快速、灵活地进行大数据量的复杂查询处理,并以直观易懂的形式将查询结果 提供给决策人员,使他们准确掌握企业的经营状况,了解市场需求,制定正确方案,提高效益。
14.5.2多维分析的基本概念
描述:数据的多维分析是指针对数据仓库中以多维形式组织起来的数据,从多个角度、不同层次,采用各种数据分析技术,对数据进行剖析,以使用户能从不同角度和不同层次观察和分析数据。
一般用多维视图的概念来描述多维分析系统中用户所看到的数据。多维模型的数据视图或数据集为多维空间中的点集,这样的数据视图被称为多维视图。
多维视图中的属性分为维属性和度量属性,一个多维视图MDV的模式一般是(d1 ,d2 ,…,d n,m1 ,m 2,…,mn )前面 n 个维属性构成一个多维空间,后面 m 个度量属性是多维空间中的指标集。
14.5.3多维分析的基本操作
多维分析的基本操作有:
注意:这些活动是多维分析工具应该具有的最为基本的多维空间切换活动和单个空间内数据选择和角度变换活动,并不包括在数据之上其他分析功能。
14.5.4OLAP的实现方式有种
数据挖掘可以简单地理解为从大量数据中提取或挖掘知识,许多人把数据挖掘视为数据库知识发现
(KDD)的同义词,更准确的观点应该是把数据挖掘视为数据库知识发现的一个步骤。
14.6.1数据挖掘步骤
数据挖掘作为知识发现的过程,一般由 3 个主要阶段组成:数据准备、数据挖掘、结果的解释评估。
知识的发现可以描述为这 3 个阶段的反复过程,如下图所示。 1.数据准备
数据准备过程可以针对数据仓库也可以是普通数据文件。数据准备分为 3 个子步骤:
⚫ 数据选取:目的是确定挖掘任务的操作对象,根据用户的需求从原始数据库中抽取一组数据。
⚫ 数据预处理:一般包括消除噪声、推导计算缺值数据、消除重复记录,完成数据类型转换等。当
数据挖掘的对象是数据仓库时,一般数据预处理已经在生成数据仓库时完成了。
⚫ 数据变换:目的是将数据转换成适合数据挖掘需要的形式,如将文档信息转换成数值向量形式。
2.数据挖掘
数据挖掘的过程如下:
⚫ 首先确定挖掘的任务或目的:如分类、聚类、关联规则发现或序列模式发现等。
⚫ 决定使用什么样的挖掘算法:选择实现算法有两个考虑因素:数据特点、用户或实际运行系统的要求。
3.结果解释评估
数据挖掘可以分成两大类任务:分类预测任务和描述型任务。
⚫ 分类预测任务:从已经分类的数据中学习模型,并使用学习出来的模型去解决新的未分类的数据。
常见的分类预测型方法有决策树、神经网络、规则归纳、支持向量机、贝叶斯、粗糙集、回归分析、
K-最近邻等。
⚫ 描述型任务:根据数据内部具有的固有联系,生成对数据集中的数据关系或整个数据集的概要描
述。典型的描述型任务包括摘要、聚类和依赖分析等。
14.6.2关联规则挖掘
关联规则主要是用于发现数据库中数据间没有关系的实体组合在一起可以产生很好的效果。如超市中
“啤酒”和“尿布”这两个看上去没有关系的商品摆放在一起进行销售并获得很好的销售收益,这种现象
就是卖场中商品之间的关联性。
关联规则主要对象是事务型数据库,其中针对的应用则是售货数据、也称为货篮数据。 ⚫ 关联规则需要考虑支持度和可信度,需要给定两个阈值:最小支持度和最小可信度。
⚫ 最小支持度:用户规定的关联规则必须满足的,表示了一组物品集在统计意义上需要满足的最低程序;
⚫ 最小可信度:用户规定的关联规则必须满足的,反映了关联规则的最低可靠程度。
⚫ 同时满足最小可信度阈值和最小支持度阈值的关联规则称为强关联规则。
14.6.3分类挖掘
分类在数据挖掘中是一项非常重要的任务,是目前在商业上应用最多的一种数据挖掘方法。分类步骤如下:
⚫ 通过已知数据集(训练集),建立分类函数,构造分类器。评价分类器的标准:预测准确率、速度、健壮性、可扩展性、易理解性
⚫ 利用所获得的分类函数对未知类别标记的数据项进行分类操作。
14.6.4聚类挖掘
⚫ 聚类:将一个数据集中的数据进行分组,使得每一组内的数据尽可能的相似而不同组间的数据尽可能的不同。
⚫ 聚类方法包括统计方法、机器学习方法、神经网络方法、面向数据库的方法等。
⚫ 在统计方法中,聚类称为聚类分析,它是多元数据分析的三大方法之一。在数据仓库中,使用数据挖掘的聚类算法进行分析,得出聚类结果,可以让管理者更加有效的决策。
⚫ 在机器学习中,聚类称为无监督(或无教师)归纳,聚类算法所处理的数据对象一般都没有标记。
14.6.5时间序列分析
时间序列分析也可以称为数据演变分析,它能描述行为随时间变化的对象的规律或趋势,并对其进行建模。
对于时间序列的数据类型,时间序列从不同的角度可以分为:
⚫ 一元时间序列和多元时间序列;
⚫ 等间隔时间序列和不等间隔时间序列;
⚫ 平稳时间序列和非平稳时间序列。