第 12章数据仓库与数据挖掘技术
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 数据仓库的基本概念
? 数据仓库与联机事务处理
? 数据仓库的基本特点
? 数据仓库的基本体系结构
? 数据仓库的数据模型
? 数据仓库系统的前端工具 -联机分析处理
? 数据仓库的前端工具 -数据挖掘
目 录
12.1 数据仓库的基本概念
12.2 数据仓库的基本特点
12.3 数据仓库的基本体系结构
12.4 数据仓库的数据库模式
12.5 数据仓库的前端工具
12.5.1 联机分析处理
12.5.2 数据挖掘
小结
12.1 数据仓库的基本概念
数据仓库的概念提出于 20世纪 80年代中期 。 目前数据仓库的定义
不完全统一 。, 数据仓库之父, W.H.Inmon在其 ( Building the Data
Warehouse) 一书中定义:数据仓库是支持管理决策过程的, 面向主题
的, 集成的, 随时间而变, 持久的数据集合 。 它指出了数据仓库技术
是解决企业决策支持系统的重要手段 。
数据仓库与传统的数据库系统有着本质的区别 。 传统的数据库都
是事务处理型, 主要是对数据库联机的日常操作, 这种数据库应用称
为联机事务处理 ( OnLine Transaction Processing,简称 OLTP) 。 而数
据仓库是为了满足管理层和分析人员的信息需求, 从来自不同地点或
不同操作系统的不同数据源的数据进行计算机辅助分析决策, 称决策
支持系统 ( Decision Support Systems,简称 DSS) 。
数据仓库系统与传统的数据库系统区别
(1) 驱动和面向对象不同 。 OLTP事务驱动, 面向应用的;而 DDS是分析驱
动, 面向分析的 。
(2) 特性不同 。 OLTP一般是操作频率高, 处理时间短, 一次操作量小, 对
系统性能要求高;而 DSS的分析处理一次操作量大, 往往需要连续运行
几个小时或更长, 占用的大量系统资源, 但对系统的性能要求比较宽松 。
(3) 数据集成问题 。 OLTP一般只需要与本部门业务有关的当前数据, 对于
整个企业范围内的集成应用考虑很少 。 而 DSS需要集成的数据, 全面而
正确的数据是进行有效分析和决策的首要前提, 相关数据收集的越完整,
得到的结果就越可靠 。
(4) 历史数据问题 。 OLTP一般只需要当前的数据, 数据库中一般也只存放
更新后的数据 。 但对于 DSS决策分析来说, 历史数据是非常重要的, 许
多分析方法都以大量的历史数据为依据来进行分析, 分析历史数据对于
把握企业的发展方向是很重要的 。
(5) 数据的综合问题, OLTP处理的是大量的细节数据, 这些细节往往需要
综合后被 DSS所用, 而 OLTP不具备这种综合能力 。
综上所述,传统的事务型数据库是不适用于决策支持系统的,DSS的需
求是数据仓库技术出现的根本原因。
12.2 数据仓库的基本特点
1.数据仓库是面向主题的
与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行
组织的。主题是一个抽象的概念,是对企业信息系统中的数据在较高层次上进行抽象的综合、
归类并进行分析利用。在逻辑意义上,它是相应企业中某一宏观分析领域所涉及的分析对象。
2.数据仓库是集成的
数据仓库的数据主要是作分析用,分析用数据的最大特点在于它不局限于某个具体的操
作数据,而是对细节数据的归纳和整理。数据仓库中的综合数据不能从原有数据库系统中直
接得到而需从其中抽取。
3.数据仓库是稳定的
数据仓库主要是为信息分析提供综合的、集成的、面向某一分析主题的数据,这些数据
主要涉及维护查询。数据仓库数据反映的是一段相当长的时间内历史数据的内容,而不象事
务处理中的数据是频繁变化的数据。当数据经过集成进入数据仓库后是极少进行更新或根本
不考虑更新。
4.数据仓库是随时间变化的
虽然数据仓库中的数据一般是不更新的, 但是在数据仓库的整个生存周期中的数据集合
却是随着时间的变化而变化的 。 主要表现在以下方面,
首先, 数据仓库随着时间的变化要不断删除旧的数据内容 。 数据仓库中的数据也有存储
期限, 一旦超过了这一期限, 过期的数据就要被删除 。 数据仓库中的数据并不是永远保存,
只是保存时间更长而已 。 其次, 数据仓库中保存的数据是历史数据, 对用户来说不能更改数
据仓库中的数据, 但可以随着时间变化系统定期进行刷新, 把 OLTP数据库变化的数据追加到
数据仓库中, 随时导出新的综合数据和统计数据 。
12.3 数据仓库的基本体系结构
数据仓库的基本体系结构主要包括:数据集成, 数据存储和数据查询与分
析工具 。 数据仓库的基本体系结构如图 13-1所示 。
(1) 数据源
数据源包括数据库、文件系统,Internet上 HTML文件以及其他数据源。数
据源一般是异构的,通过网络连接,数据仓库应能通过 ODBC或 JDBC等机制,访问
各数据源。
(2) 数据集成
由于数据仓库数据来自多个数据源, 各数据源是为各自的应用而建立的, 数据的格式,
类型, 编码, 命名或语义等方面都会有冲突, 因此, 在数据装载到数据仓库之前, 需要数据
集成部分做下列工作,
从当前最新的数据源中, 按需求追踪, 筛选和抽取新数据 。 将抽取出的数据加载到数据
仓库中 。 跟踪操作数据源中数据的变化, 刷新或更新数据仓库 。 发现和修正各种数据源中可
能存在的错误和异常 。 建立有关元数据, 即将元数据的格式, 目标数据的格式以及如何把源
数据转换成目标数据的一些规则记录在元数据库中 。 提供基于视图窗口的图形用户接口, 使
得数据仓库, 管理员能很方便地描述数据抽取和转换的需求 。
(3) 数据存储
这部分是数据仓库的核心部分, 其中有元数据和数据仓库 。 元数据是关于数据的数据,
如同数据库系统中数据字典, 但元数据比数据字典更复杂和重要 。 元数据是联系数据仓库三
部分的主要的纽带 。 元数据的内容反映数据仓库的数据内容, 以及与数据源之间的关系, 记
载了数据仓库与业务运行系统之间数据结构的映射关系 。 在系统环境中, 元数据几乎代表了
整个仓库系统的逻辑结构 。
数据仓库是存储数据的地方 。 数据组织方式可采用基于关系表的存储方式或多维数据库存储
形式 。 基于关系表的存储方式是将数据仓库的数据存储在关系型数据库的表结构中, 在元数
据的管理下完成数据仓库的功能 。 多维数据库的组织采用多维数组结构文件进行数据存储,
并有维索引及相应的元数组管理文件与数据相对应 。
(4) 数据查询与分析工具
数据查询和分析工具不仅能将数据以直观的形式提供给用户,而且能对数据仓库中的数
据进行分析,使用户获得数据之间蕴涵的知识。目前,数据查询工具有一般的用户查询工具
和报表生成工具。分析工具则有联机分析处理( On-Line Processing,简称 OLAP)和数据挖
掘( Data Mining,简称 DM)。
12.4 数据仓库的数据库模式
比较常用的数据仓库建模技术有:第三范式 ( 3NF), 星形模式 ( Star
Schema) 和雪花模式 ( SnowFlakeSchema) 。 下面介绍星形模式和雪花模式 。
1,星形模式
一个简单的星形模式由一个事实表和多个维表组成 。 复杂的星形模式包
含若干事实表和维表 。
图 13-2是一个简单星形模式的数据仓库示例 。 中间是销售事实表, 向外连
接时间维, 产品维, 地区维等多个维表 。 对事实表和对维表的查询结合在一
起就可以检索大量的信息 。
12.4 数据仓库的数据库模式
2,雪花模式
雪花模式是对星形模式的扩展, 每个维都可以向外连接到多个维 。 雪花模
式对星形模式的维表进一步标准化, 将维表分解成主维表 ( 与事实表关联 ) 和
次维表 ( 与主维表关联 ) 。 由于采用标准化及维的较低粒度, 雪花模式增加了
应用程序的灵活性, 但增加了用户必须处理的表的数量, 因而也增加了查询的
复杂性 。
图 13-3是在图 13-2的基础上扩展得到的雪花模式,其中产品维表又分为产
品代码表和供应商代码表,地区维表又分为地区代码表和城市代码表。
12.5 数据仓库的前端工具
建立数据仓库的目的是提供有效的决策支持,拥有数据仓库却没有高效的前端工具,
无异于守着一座金矿却不知如何采掘,只能望矿兴叹。数据仓库的前端工具分为两大类:
联机分析处理工具( OLAP)和数据挖掘工具( DM,DataMining)。
13.5.1 联机分析处理
所谓联机分析处理工具 ( Online Analysis Process,OLAP) 是针对特定问题的联机数据
存取和分析 。 它能够对数据集合从某个或多个角度进行比较, 从不同角度进行分析 。 它
是数据仓库一种重要的分析工具 。
OLAP是以数据库或者数据仓库为基础的,其最终数据来源与 OLTP一样都是来自底
层的数据库系统,但是由于两者使用用户不同,其在数据的特点和处理方式上也表现出
很大的不同。
13.5.2 数据挖掘
数据挖掘 ( DM,DataMining) 是指从大量的, 不完全的, 有噪声的, 模糊的, 随机的实
际应用数据中挖掘出隐含在其中, 人们事先不知道的, 但潜在的, 有用的信息和知识的
过程 。 这个定义包括好几层含义:数据源必须是真实的, 大量的, 含噪声的;发现的是
用户感兴趣的知识;发现的知识要可接受, 可理解, 可运用;并不要求发现放之四海皆
准的知识, 仅支持特定的发现问题 。
数据挖掘与传统的数据分析(如查询、报表、联机应用分析)有本质区别:数据挖掘
是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先未
知,有效和可实用三个特征。
1,数据挖掘中用到的技术
数据挖掘中用到的技术包括,
① 人工神经网络, 即仿照生理神经网络结构的非线型预测模型, 通过学习进行模式
识别 。 数据挖掘过程基本上是将数据簇聚, 然后分类计算权值 。 由于其具有对非
线性数据的快速建模能力, 很适合非线性数据和含噪声数据, 因此在市场数据库
的分析和建模方面应用广泛 。
② 决策树, 它代表着决策集的树形结构 。 大部分数据挖掘工具采用规则发现和决策
树分类技术来发现数据模式和规则, 其核心是某种归纳算法 。 它通常先对数据库
中的数据进行挖掘, 生成规则和决策树, 然后对新数据进行分析和预测 。 其主要
优点是决策树是可读的 。
③ 遗传算法:基于进化理论, 并采用遗传结合, 遗传变异, 以及自然选择等设计方
法的优化技术 。
④ 近邻算法:将数据集合中每一个记录进行分类的方法 。
⑤ 规则推导:从统计意义上对数据中的如果 -那么规则进行寻找和推导 。
⑥ 可视化:采用直观的图形方式将信息模式, 数据的关联或趋势呈现给决策者, 决
策者可以通过可视化技术交互式地分析数据关系 。
2,数据挖掘的方法
数据挖掘处理的数据规模十分巨大, 要求在一些应用中对快速变化的数据迅速
作出反应, 发现潜在规则, 同时还要管理和维护规则, 随着数据库状态的变化, 不
断更新规则 。 规则的发现主要基于大样本的统计规律, 发现的规则不必使用于所有
数据, 当达到某一阈值时即可认为有此规律 。
在实际的应用中, 我们常用关联分析, 序列模式分析, 分类分析和聚类分析等方
法进行数据挖掘 。
1,关联分析 。
关联分析 ( Association Discovery) 是在数据库的记录或对象间抽取关联性, 它
展示了数据之间未知的依赖关系 。 关联性是一种统计意义上的关系, 并以置信度衡
量关联的程度 。 通常需设定最小置信度作为阈值, 以滤掉可能性较小的规则, 设定
最小支持度, 以表示这种规则发生的概率, 即可信度 。 最为著名的关联规则发现方
法是 R.Agrawal提出的 Apriori算法 。
关联规则可记为 A>=B,表示 A称为前提,B称为后续。
2,序列模式分析
序列模式分析 ( SequentialPatterns) 与关联分析法相似, 但侧重于数据间的前后
( 因果 ) 关系 。 这是一个从业务系统的所有细节数据和事务的历史数据中搜索出重
复发生概率较高的模式 。
序列模式 A>B的支持度和置信度的计算方法是,
支持度 =A先出现 B后出现的次数 /总记录数
置信度 = A先出现 B后出现的次数 /A先出现的次数
3,数据挖掘过程
数据挖掘过程中各步骤的大体内容如下,
① 确定业务
② 数据准备
③ 数据挖掘
④ 结果分析
⑤ 知识的同化
12.6 数据仓库软件产品
IBM数据仓库提供的相关软件 Visual Warehouse,BD2OLAPServer、
Intelligent Miner等可视数据仓库 Visual Warehouse。 针对特定行业用户
使用环境的解决方案包括专门为金融行业设计的 Decision Edge for
Finance,端到端的保险业解决方案 Decision Edge for Insurance,为满
足银行业保留客户需求而设计的应用程序套件 IBM Discovery Series for
Banking,为电信行业提供完美的客户服务的应用程序套件
IBM Discovery Series for telecontmunications,在 JDEdwards事务
处理系统环境下建立数据仓库的解决方案 Business Analysis Suite for
JDEdwards,在 SAP事务交易处理系统基础上建立数据仓库的套件 Business
Analysis Suite for SAP,用于分析 Web站点利用率的数据采集应用程序
Surf-Aid,以及帮助企业向客户提供有独特个性行销资料的套件 infor
Print Business Intelligence Solution。
小 结
? 数据仓库是面向主题的, 整合的, 稳定的, 并且时变地收集数据
以支持管理决策的一种数据组织形式 。 数据仓库具有面向主题,
集成, 稳定, 时变的特点 。 一个数据仓库的主要体系结构主要包
括数据集成, 数据存储和数据查询与分析工具 。 比较常用的数据
仓库建模技术有第三范式 ( 3NF), 星形模式和雪花模式三种 。
数据仓库的前端工具分为联机分析处理工具和数据挖掘工具两大
类 。
? 数据仓库系统是多种技术的综合体,它由数据仓库、数据仓库管
理系统和数据仓库工具三部分组成。在整个系统中,数据仓库居
于核心地位,是信息挖掘的基础,数据仓库管理系统是整个系统
的引擎,负责管理整个系统的运转,而数据仓库工具则是整个系
统发挥作用的关键,只有通过高效的工具,数据仓库才能真正发
挥出数据仓库的作用。