第三节 数据库、数据仓库与数据挖掘
决策自动化是西蒙的梦想,而决策的基础是数据。把数据合理地组织起来,才能帮助管理者有效决策,数据库就是计算机专家发明的一种有效组织数据的方法。早期的数据库管理人员被认为是水平最高的计算机专家,但到了20世纪90年代,数据库中的数据连这些水平最高的专家也应付不过来了。于是,需要一种更好的方法来组织数据,数据仓库就是这种方法。仅仅有数据是不够的,还需要分析数据的工具,数据挖掘就是一种分析海量数据的好方法。
一、数据管理方法的发展
要把数据转化成有用的信息,就要用有效的方法来管理数据。数据管理方法经历了以下四个阶段:
1.人工管理阶段(1946年至50年代中期)
在计算机出现的早期,计算机主要用于科学计算,外存只有磁带、纸带、卡片,没有磁盘,没有操作系统,数据处理方式是批处理。数据与程序没有独立性,一组数据对应一个程序,如图4.12所示。
图4.12 人工管理阶段数据与程序的对应关系
2.文件管理阶段(20世纪50年代后期至60年代末期)
随着计算机的商业化,计算机开始应用于管理,外存出现磁鼓和磁盘等直接存取设备,软件出现操作系统。此外,“文件系统”专门对大量数据进行管理。
程序与数据有一定的独立性,数据以文件的形式进行组织,但是数据文件之间仍然是相互独立的,依然有大量的数据冗余,如图4.13所示。
3.数据库阶段(1970年至90年代)
虽然在1969年IBM公司就研制出了基于层次模型的数据库管理系统,但1970年出现的关系型数据库才真正奠定了数据库的基础。在这个阶段,非数值数据的大量出现,使得数据处理更加复杂,而且需要知道它们与数值数据间的联系,这需要一个高度组织的数据管理系统。
图4.13 文件管理阶段数据与程序的对应关系
复杂的、结构化的数据模型不仅描述数据本身,还描述它们之间的联系,允许交叉访问,使数据冗余减少。
网状模型、层次模型和关系模型是数据库组织数据的三种数据模型。
4.数据仓库阶段(20世纪90年代以后)
20世纪90年代是计算机技术的大发展时期,这一阶段海量存储器技术突飞猛进,光盘、大容量磁盘、DVD等新事物的出现为人们大量、快速存取数据创造了条件。
为了进行决策分析,不仅需要系统内部数据源,更需要外部数据源,尤其是网络的发展,使得这种需求更加强烈。
内部和外部数据的不一致性,输入错误、重复,经过多次“精炼”后使数据失真等问题使得人们不得不使用新的方法来组织数据。数据仓库技术就是要采用新的方法解决数据库时代产生的“蜘蛛网”问题。
二、数据库理论概述
数据库技术产生于20世纪60年代末,其主要目的是有效地管理和存取大量的数据资源,数据库技术主要研究如何存储、使用和管理数据。
1.数据库技术发展简史
数据模型是数据库技术的核心和基础,因此,对数据库系统发展阶段的划分应该以数据模型的发展演变作为主要依据和标志。按照数据模型的发展演变过程,数据库技术从产生到现在短短的几十年中,主要经历的发展过程如下:第一代数据库系统:层次和网状数据库系统;第二代数据库系统:关系数据库系统;第三代数据库系统:面向对象的数据库系统。数据库技术与网络通信技术、人工智能技术、面向对象的程序设计技术、并行计算技术等相互渗透、有机结合,成为当代数据库技术发展的重要特征。
(1)第一代数据库系统:层次和网状数据库系统
第一代数据库系统是20世纪70年代研制的层次和网状数据库系统。层次数据库系统的典型代表是1969年IBM公司研制出的层次模型的数据库管理系统IMS。20世纪60年代末至70年代初,美国数据库系统语言协会下属的数据库任务组DBTG(Data Base Task Group)提出了若干报告,被称为DBTG报告。DBTG报告确定并建立了网状数据库系统的许多概念、方法和技术,是网状数据库的典型代表。在DBTG报告的思想和方法的指引下数据库系统的实现技术不断成熟,开发了许多商品化的数据库系统,它们都是基于层次模型和网状模型的。
可以说,层次数据库是数据库系统的先驱,而网状数据库则是数据库概念、方法、技术的奠基者。
(2)第二代数据库系统:关系数据库系统
第二代数据库系统是关系数据库系统。1970年IBM公司的San Jose研究试验室的研究员Edgar F.Codd发表了题为《大型共享数据库数据的关系模型》的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。Edgar F.Codd于1981年被授予ACM图灵奖,以表彰他在关系数据库研究方面的杰出贡献。
20世纪70年代是关系数据库理论研究和模型开发的时代,其中以IBM公司的San Jose研究试验室开发的System R和Berkeley大学研制的Ingres为典型代表。大量的理论成果和实践经验终于使关系数据库从实验室走向了社会,因此,人们把20世纪70年代称为数据库时代。20世纪80年代几乎所有新开发的系统均是关系数据库系统,其中涌现出了许多性能优良的商品化关系数据库管理系统,如DB2、Ingres、Oracle、Informix、Sybase等。这些商用数据库系统的应用使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等方面,成为实现和优化信息系统的基本技术。
(3)第三代数据库系统:面向对象的数据库系统
从20世纪80年代以来,数据库技术在商业上的巨大成功刺激了其他领域对数据库技术需求的迅速增长。这些新的领域为数据库的应用开辟了新的天地,并在应用中提出了一些新的数据管理的需求,推动了数据库技术的研究与发展。
1990年高级DBMS功能委员会发表了《第三代数据库系统宣言》,提出了第三代数据库管理系统应具有以下三个基本特征:
①必须支持数据管理、对象管理和知识管理。
②必须保持或继承第二代数据库系统的技术。
③必须对其他系统开放。
面向对象的数据库系统中的数据模型由于吸收了已经成熟的面向对象的程序设计方法学的核心概念和基本思想,使得它符合人类认识世界的一般方法,更适合描述现实世界。
2.关系数据模型
网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据的独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系数据库理论出现于20世纪60年代末至70年代初。关系数据模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系数据模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974年美国计算机协会(Association for Computing Machinery,ACM)牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库的两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。
关系数据模型是以集合论中的关系概念为基础发展起来的。关系数据模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称为表。一个关系数据库就是由若干个表组成的。
关系数据模型是对关系的描述。关系实际上就是关系数据模型在某一时刻的状态或内容,也就是说,关系数据模型是形,关系是它的值。关系数据模型是静态的、稳定的,而关系是动态的,它随时间不断变化,因为关系操作在不断地更新着数据库中的数据。但在实际中,常常把关系数据模型和关系统称为关系,读者可以从上下文中加以区别。关系数据模型可以形式化地表示如下:
R(U,D,dom,F)
其中,R是关系名,U是组成该关系的属性名集合,D是属性名集合U中属性所来自的域,dom是属性向域的映象集合,F是属性间的数据依赖关系集合。
例如:导师和研究生出自同一个域:人,取不同的属性名,并在模型中定义属性向域的映象,即说明它们分别出自哪个域:
dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)= PERSON
关系数据模型通常可以简记为:
R(U)或R(A1,A2,…,An)
其中,R是关系名,A1,A2,…,An是属性名。
域名及属性向域的映象常常代表属性的类型、长度。
关系数据库系统是支持关系数据模型的数据库系统。关系数据模型所具有的特点是:概念单一、规范化、以二维表格表示。
关系数据模型的组成如下:
(1)关系数据结构
单一的数据结构——关系。现实世界的实体以及实体间的各种联系均用关系来表示的,从用户角度看,关系数据模型中数据的逻辑结构是一张二维表。
(2)关系操作集合
常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作的表达能力最重要,包括:选择、投影、连接、除、并、交、差等。
关系数据模型中的关系操作能力早期通常是用代数方法或逻辑方法来表示的,分别称为关系代数和关系演算。关系代数用对关系的代数运算来表达查询要求;关系演算用谓词来表达查询要求。另外还有一种介于关系代数和关系演算之间的语言称为结构化查询语言,简称SQL。
(3)关系的三类完整性规则
这三类完整性规则包括:实体完整性、参照完整性和用户定义的完整性规则。
实体完整性(Entity Integrity)规则:若属性A是基本关系R的主属性,则属性A不能取空值。例如:在课程表(课程号,课程名,教师,周课时数,备注)中,“课程号”属性为主键,则“课程号”不能取相同的值,也不能取空值。
参照完整性规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键KS相对应(关系R和S不一定是不同的关系),则对于关系R中每个元组在关系F上的值必须为:或者取空值(F中的每个属性值均为空);或者等于S中某个元组的主键值。
实体完整性和参照完整性规则是关系数据模型中必须满足的完整性约束条件,只要是关系数据库系统就应该符合实体完整性和参照完整性规则。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性规则就是对某些具体的关系数据库的约束条件。例如:选课表(课程号,学好,成绩),在定义关系选课表时,我们可以对成绩这个属性定义必须大于等于0的约束。
3.面向对象的数据库
面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象的数据库系统是为了满足新的数据库的应用需要而产生的新一代数据库系统。
在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象的数据库的过渡,面向对象的思想也逐渐延伸到其他涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计和数据类型方面都是数据密集型的,它们需要识别不同类型的关系的存储技术,并能对数据备份进行调整。
还有许多应用要求多媒体数据库。它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其他文档管理系统。
人工智能(AI)应用的需要,如专家系统,也推动了面向对象的数据库的发展。专家系统常需要处理各种(通常是复杂的)数据类型。与关系数据库不同,面向对象的数据库不因数据类型的增加而降低处理效率。
由于这些应用需求,20世纪80年代已开始出现一些面向对象的数据库和许多正在研究的面向对象的数据库。多数这样的面向对象的数据库被用于基本设计的学科和工程应用领域。
早期的面向对象的数据库由于一些特性限制了在一般商业领域里的应用。首先同许多别的商业事务相比,面向对象的数据库假定用户只执行有限的扩充事务;其次,商业用户要求易于使用的查询手段,如结构化查询语言(SQL)所提供的手段。而开发商用于商业领域的数据库定义和操作语言未获成功,使得它们对规模较大的应用完全无法适应。
面向对象的数据库的新产品都在试图改变这些状况,使得面向对象的数据库的开发从实验室走向市场。
面向对象的数据库从面向程序设计语言的扩充着手使之成为基于面向程序设计语言的面向对象的数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。
面向对象的数据库的研究的另一个进展是在现有关系数据库中加入了许多纯面向对象的数据库的功能。在商业应用中对关系数据模型的面向对象的扩展着重于性能优化,处理各种环境对象的物理表示的优化和增加SQL模型以赋予面向对象的特征。如UNISQL、O2等,它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。
4.DBMS(数据库管理系统)
数据库管理系统(Data Base Management System,DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时刻或不同时刻建立、修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
(1)数据库管理系统的功能
数据库管理系统提供以下功能:
①数据定义功能。DBMS提供相应数据语言来定义数据库结构,它们刻画数据库框架,并被保存在数据字典中。
②数据存取功能。DBMS提供数据操纵语言,实现对数据库数据的基本存取操作:检索、插入、修改和删除。
③数据库运行管理功能。DBMS提供数据控制功能,即通过数据的安全性、完整性和并发控制等对数据库运行进行有效的控制和管理,以确保数据正确有效。
④数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
⑤数据库的传输。DBMS提供数据传输功能,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
(2)数据库管理系统的层次结构
根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。
①应用层。应用层是DBMS与终端用户和应用程序的界面层,处理的对象是各种各样的数据库应用问题。
②语言翻译处理层。语言翻译处理层是对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查等。
③数据存取层。数据存取层处理的对象是单个元组,它将上层的集合操作转换为单记录操作。
④数据存储层。数据存储层处理的对象是数据页和系统缓冲区。
⑤操作系统。操作系统是DBMS的基础。操作系统提供的存取原语和基本的存取方法通常作为与DBMS存储层的接口。
(3)常见的数据库管理系统
目前有许多数据库产品,如Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro等产品各以自己特有的功能,在数据库市场上占有一席之地。下面简要介绍几种常用的数据库管理系统。
①Oracle。Oracle是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。特别是在Oracle 8i中,支持面向对象的功能,如支持类、方法、属性等,使得Oracle产品成为一种对象/关系数据库管理系统。
②Microsoft SQL Server。Microsoft SQL Server是一种典型的关系数据库管理系统,可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于Microsoft SQL Server是开放式的系统,其他系统可以与它进行完好的交互操作。它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供完整的数据库解决方案。
③Microsoft Access。作为Microsoft Office组件之一的Microsoft Access是在Windows环境下非常流行的桌面数据库管理系统。使用Microsoft Access无需编写任何代码,只需通过直观的可视化操作就可以完成大部分数据管理任务。在Microsoft Access数据库中,包括许多组成数据库的基本要素。这些要素是存储信息的表、显示人机交互界面的窗体、作为信息输出载体的报表、提高应用效率的宏、功能强大的模块工具等。它不仅可以与其他数据库相连,实现数据交换和共享,还可以与Word、Excel等办公软件进行数据交换和共享,并且通过对象链接与嵌入技术在数据库中嵌入和链接声音、图像等多媒体数据。
三、自然演化体系结构及其问题
自然演化体系结构又称蜘蛛网结构,是指由失控的抽取过程产生的结果。决策者为了进行决策分析,而对原始数据库中的数据进行提炼、分析和处理,由此产生了新的数据,这些数据不断积累又形成了新的数据库,就像蜘蛛织网一样。当一个企业的组织结构越来越庞大时,这种失控的抽取将使问题变得非常严重。图4.14表现了这种蜘蛛网结构。
图4.14 自然演化体系结构(或称蜘蛛网结构)
蜘蛛网结构所导致的问题主要在于以下三个方面:
1.数据缺乏可信性
①数据在时间上的差异。
②数据在算法上的差异。
③抽取的多层次。
④外部数据问题。
⑤无起始公共数据源。
2.系统的办事效率低下
①数据定位困难。
②数据编辑困难。
③数据分析困难。
3.数据转化为信息的不可行性
①数据分析困难,数据没有集成化。
②缺乏将数据转化为信息所需的历史数据。
经过杂乱无章的抽取后,要得知数据的原始面貌成为一件非常困难的事情。抽取程序很多,并且每个都是定制的,这就不得不克服很多技术上的障碍。而且,在经过了为时数月乃至数年的苦苦求索后仍然不一定能得到结果。
由于原有系统缺乏集成性,在过去的时间里出于不同原因而建立的数据库及应用程序,在时间上是完全不同的,从而使得基于所有数据的分析得到新的信息不可行。
正是这些问题的存在,数据库专家们开始构思设计新型的数据库模型。
四、数据仓库的基本概念
比尔·恩门(Bill Inmon),被称为数据仓库之父,他是最早的数据仓库概念的提出者,在数据库技术管理与数据库设计方面,拥有逾35年的经验。他是“企业信息工厂”的合作创始人与“政府信息工厂”的创始人。
1.定义
比尔·恩门在1991年出版的《建立数据仓库》(Building the Data Warehouse)一书中所提出的定义被广泛接受。
恩门认为,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、不可修改的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
与其他数据库应用不同的是,数据仓库更像一种过程,即对分布在企业内部各处的业务数据的整合、加工和分析的过程。
2.数据仓库的特性
根据定义,数据仓库具有以下特性:
(1)面向主题
典型的主题领域包括:客户、产品、交易、账目等。
(2)集成的
当数据进入数据仓库时,要采用某种方法来消除应用中的许多不一致性,将不同格式、类型的数据集成到一起。
(3)非易失的
数据仓库的数据通常是一起载入和访问的,但并不进行一般意义上的数据更新。
(4)随时间的变化性
数据仓库中的时间期限要远远长于操作型系统中的时间期限(5~10年);数据仓库中的数据是一系列某一时刻生成的复杂的快照;数据仓库的键码结构总是包含某时间元素。
3.数据仓库的组成
数据仓库由以下五个方面的内容组成。
(1)数据仓库的数据库
数据仓库的数据库是整个数据仓库的核心,是数据存放的地方并提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
(2)数据抽取工具
数据抽取工具把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同的数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本和SQL语句等,以访问不同的数据。数据转换包括:删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋予缺省值;把不同的数据定义方式统一。
(3)元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库所用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表。
元数据为访问数据仓库提供了一个信息目录(information directory),这个目录全面描述了数据仓库中有什么数据,这些数据是怎么得到的和怎么访问这些数据,是数据仓库运行和维护的中心,数据仓库服务器利用它来存储和更新数据,用户通过它来了解和访问数据。
(4)访问工具
为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;经理信息系统(EIS)工具;联机分析处理(OLAP)工具;数据挖掘工具。
(5)数据集市(Data Marts)
为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subject area)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,然后再用几个数据集市组成一个完整的数据仓库。需要注意的是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大的麻烦。
4.数据仓库的建立步骤
数据仓库的建立一般包括以下步骤:
①收集和分析业务需求;
②建立数据模型和进行数据仓库的物理设计;
③定义数据源;
④选择数据仓库技术和平台;
⑤从操作型数据库中抽取、净化并转换数据到数据仓库;
⑥选择访问和报表工具;
⑦选择数据库连接软件;
⑧选择数据分析和数据展示软件;
⑨更新数据仓库。
图4.15显示了从数据库转换成数据仓库的过程。
5.数据仓库设计中的几个重要概念
(1)ETL
ETL(Extract/Transformation/Load)——用户从数据源抽取出所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。具体包括以下内容:
①去掉操作型数据库中不需要的数据。
②统一转换数据的名称和定义。
③计算汇总数据和派生数据。
④估计遗失数据的缺省值。
⑤调节数据源定义的变化。
(2)粒度
图4.15 数据仓库形成过程的结构图
数据仓库的数据单位中保存着数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
(3)数据分割
结构相同的数据单元被分成多个数据物理单元,任何给定的数据仅属于一个单元。
(4)数据集市(Data Marts)
数据集市是小型的、面向部门或工作组级的数据仓库。
(5)元数据
元数据是关于数据的数据,指在数据仓库的建设过程中所产生的有关数据源定义、目标定义、转换规则等相关的关键数据。同时元数据还包含关于数据含义的商业信息。
典型的元数据包括以下内容:
①数据仓库表的结构。
②数据仓库表的属性。
③数据仓库的数据源(记录系统)。
④从记录系统到数据仓库的映射。
⑤数据模型的规格说明。
⑥抽取日志。
五、数据挖掘
1995年,在加拿大的蒙特利尔召开了第一届“知识发现和数据挖掘”国际学术会议,数据挖掘一词很快就流传开来。
1.定义
数据挖掘(Data Mining,DM),就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
数据挖掘的对象通常是数据库和数据仓库,其目的是通过对数据的统计、分析、综合、归纳和推理,揭示事件间的相互关系,预测未来的发展趋势,起到辅助求解实际工作问题、支持决策的作用。
人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求的牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成了新的技术热点。
数据挖掘是一种深层次的数据分析方法。数据分析本身已经有很多年的历史,过去数据收集和分析的目的是用于科学研究,由于当时计算能力的限制,对大量数据进行分析的复杂的数据分析方法受到很大限制。现在,由于各行业自动化的实现,商业领域产生了大量的业务数据,这些数据都是计算机系统自动生成的。分析这些数据也不再是单纯为了研究的需要,更主要地是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此必须从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石中淘金一样,数据挖掘也因此而得名。
2.数据挖掘的功能
数据挖掘通过预测未来趋势及行为,作出基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,其主要有以下五类功能:
(1)自动预测趋势和行为
数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接地由数据本身得出结论。一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其他可预测的问题包括预报破产以及认定对指定事件最可能作出反应的群体。
(2)关联分析
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则具有可信度。
(3)聚类
数据库中的记录可被划分为一系列有意义的子集,即聚类。聚类增强了人们对客观现实的认识,是概念描述和偏差分析的先决条件。聚类技术主要包括传统的模式识别方法和数学分类学。20世纪80年代初,Michal Ski提出了聚类技术的概念,其要点是:在划分对象时不仅考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免了传统技术的某些片面性。
(4)概念描述
概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法很多,如决策树方法、遗传算法等。
(5)偏差检测
数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。
3.数据挖掘过程
数据挖掘过程的基本流程如下:
(1)确定业务对象
清晰地定义出业务问题,认清数据挖掘的目的是数据挖掘的重要一步,挖掘的最后结果是不可预测的,但要探索的问题应是可预见的,为了数据挖掘而挖掘则带有盲目性,是不会成功的。
(2)数据准备
数据准备又包括以下三个方面的内容。
①数据的选择。搜索所有与业务对象有关的内部和外部数据信息,并从中选择出适用于数据挖掘的数据。
②数据的预处理。研究数据的质量,为进一步地分析做准备,并确定将要进行的数据挖掘操作的类型。
③数据的转换。将数据转换成一个分析模型,这个分析模型是针对数据挖掘算法建立的,建立一个真正适合数据挖掘算法的分析模型是数据挖掘成功的关键。
(3)数据挖掘
对所得到的经过转换的数据进行挖掘,除了选择合适的数据挖掘算法外,其余一切工作都能自动地完成。
(4)结果分析
解释并评估结果,其使用的分析方法一般应视数据挖掘操作而定,通常会用到可视化技术。
(5)知识的同化
将分析所得到的知识集成到业务信息系统的组织结构中去。
4.数据挖掘与联机分析处理
联机分析处理(On-Line Analytical Processing,OLAP)的概念最早是由关系数据库之父爱德华·库德博士于1993年提出的,是一种用于组织大型商务数据库和支持商务智能的技术。OLAP数据库分为一个或多个多维数据集,每个多维数据集都由多维数据集管理员组织和设计以适应用户检索和分析数据的方式,从而更易于创建和使用所需的数据透视表和数据透视图。
当今的数据处理大致可以分成两大类:联机事务处理OLTP、联机分析处理OLAP。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
数据挖掘和OLAP是完全不同的工具,基于的技术也大相径庭。
OLAP是决策支持领域的一部分。传统的查询和报表工具是告诉我们数据库中有什么(what happened),OLAP则更进一步告诉我们下一步会怎么样(What next)和如果我们采取这样的措施又会怎么样(What if)。用户首先建立一个假设,然后用OLAP检索数据库来验证这个假设是否正确。比如,一个分析师想找到是什么原因导致了贷款拖欠,他可能先做一个初始的假定,认为低收入的人信用度也低,然后用OLAP来验证他的这个假设。如果这个假设没有被证实,他可能去察看那些高负债的账户,如果还不行,他也许要把收入和负债一起考虑,一直进行下去,直到找到他想要的结果或放弃。
也就是说,OLAP分析是建立一系列的假设,然后通过OLAP证实或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。但是如果分析的变量达到几十或上百个,那么再用OLAP手动分析验证这些假设将是一件非常困难和痛苦的事情。
数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模式(模型)的正确性,而是在数据库中自己寻找模型。它在本质上是一个归纳的过程。比如,一个使用数据挖掘工具的分析师想找到引起贷款拖欠的风险因素。数据挖掘工具可能帮他找到高负债和低收入是引起这个问题的因素,甚至还可能发现一些分析师从来没有想过或试过的其他因素,比如年龄。
数据挖掘和OLAP具有一定的互补性。在利用数据挖掘出来的结论采取行动之前,我们也许要验证一下如果采取这样的行动会给公司带来什么样的影响,OLAP工具能回答我们的这些问题。
而且在知识发现的早期阶段,OLAP工具还有其他一些用途。可以帮我们探索数据,找到哪些是对一个问题比较重要的变量,发现异常数据和互相影响的变量。这都能帮我们更好地理解自己的数据,加快知识发现的过程。
5.数据挖掘技术的应用
数据挖掘技术最早产生于工程与科学研究领域,成名于商业领域。目前,在很多领域,数据挖掘技术都是一个很时髦的词,尤其是在银行、电信、保险、交通、零售(如超市)等商业领域。
(1)工程与科学研究
数据挖掘技术可应用于工程与科学数据分析。随着先进的科学数据收集技术的使用,如观测卫星、遥感器、DNA分子技术等,面对庞大的数据,传统的数据分析工具无能为力。数据挖掘技术以其强大的智能性和自动性,在工程与科学研究中得到了广泛应用。数据挖掘技术在天文学和生物学中都有成功的案例,如在天文学中,Jet Propulsion实验室利用决策树方法对上百万个天体进行分类(效果比人工快而准确),结果帮助人们发现了10个新的类星体。
(2)制造业
制造业应用数据挖掘技术进行零部件故障诊断、资源优化、生产过程分析等。如HP公司基于约200个参数建立了一个自动数据收集系统,产生了人工难以处理的大量数据。该公司的工程技术人员使用Angoss软件的数据挖掘功能来进行HPⅡc彩色扫描仪的生产过程分析,发现了设计缺陷,从而改进了相关制造技术。
(3)金融
数据挖掘在金融领域应用广泛,主要有:金融市场的分析和预测、账户分类、银行担保和信用评估等。这些金融业务都需要收集和处理大量的数据,很难通过人工或使用一两个小型软件进行分析预测。而数据挖掘可以通过对已有数据的处理,找到数据对象的特征和对象之间的关系,然后利用学习到的模式进行合理的分析和预测。
(4)市场营销
在市场营销领域的应用是利用数据挖掘技术进行市场定位和消费者分析,辅助制定市场策略。由于管理信息系统和POS系统在商业中的广泛普及,人们很容易得到顾客购买情况的数据。利用数据挖掘技术,通过对顾客历史数据的分析,可以得到关于顾客购买趋向和兴趣的信息,从而为商业决策提供依据。
(5)司法
数据挖掘技术可以用于案件调查、诈骗监测、洗钱认证、犯罪组织分析等,给司法工作带来了巨大收获。如美国财政部使用Net Map开发了FAIS系统,并利用这个系统对金融事物进行监测,识别洗钱、诈骗。
(6)医药
制药公司通过挖掘巨大的化学物质和基因对疾病的影响的数据库来判断哪些物质可能对治疗某种疾病产生效果。
六、数据可视化
分析大量、复杂和多维的数据是一项非常复杂的工作,真正的决策还是要靠人的大脑来判断,因此需要提供像人眼一样的直觉的、交互的和反应灵敏的可视化环境。
现代的数据可视化(Data Visualization)技术指的是运用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。它涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域。数据可视化概念首先来自科学计算可视化(Visualization in Scientific Computing),科学家们不仅需要通过图形和图像来分析由计算机算出的数据,而且还需要了解在计算过程中数据的变化。
随着计算机技术的发展,数据可视化概念已大大扩展,它不仅包括科学计算数据的可视化,而且包括工程数据和测量数据的可视化。学术界常把这种空间数据的可视化称为体视化(Volume Visualization)技术。近年来,网络技术和电子商务的发展,提出了信息可视化(Information Visualization)的要求。我们可以通过数据可视化技术,发现大量金融、通信和商业数据中隐含的规律,从而为决策提供依据。这已成为数据可视化技术中新的热点。
数据可视化技术主要有以下三个方面的特点:
(1)交互性
用户可以方便地以交互的方式管理和开发数据。
(2)多维性
对象或事件的数据的多个属性或变量,按其每一维的值,将其分类、排序、组合和显示。
(3)可视性
用图像、曲线和动画来显示,并可对其模式和相互关系进行可视化分析。
医学数据的可视化,已成为数据可视化领域中最为活跃的研究领域之一。由于近代非侵入诊断技术如CT(计算机体层成像,或计算机断层扫描)、MRI(核磁共振成像)和PET(正电子放射断层扫描)的发展,医生已经可以轻易地获得病人有关部位的一组二维断层图像。
美国加州的ADAC实验室、约翰·霍普金斯大学、焦点图形公司、集成医学图像处理系统公司以及德国柏林大学等,都已经采用可视化软件系统,用获得的二维断层图像重构有关器官和组织的三维图像。它们开发出的软件已在许多医院得到应用。另外,美国华盛顿大学利用可视化软件系统和心脏超声诊断技术,可以获得心脏的三维图像,并用于监控心脏的形状、大小和运动,为综合诊断提供依据。
图4.16是美国ADAC实验室给出的大脑多种模态的融合图像。
图4.16 美国ADAC实验室给出的大脑多种模态的融合图像
我国科学计算可视化技术的研究开始于20世纪90年代初。由于数据可视化所处理的数据量十分庞大,生成图像的算法又比较复杂,过去常常需要使用巨型计算机和高档图形工作站等。因此,数据可视化开始都在国家级研究中心、高水平的大学、大公司的研究开发中心进行研究和应用。近年来,随着PC功能的提高、各种图形显卡以及可视化软件的发展,可视化技术已扩展到科学研究、工程、军事、医学、经济等各个领域。至今,我国不论在算法方面,还是在油气勘探、气象、计算力学、医学等领域的应用方面,都已取得了一大批可喜的成果。但从总体上来说,与国外先进水平还有相当的差距,特别是在商业软件方面,还是空白。
图4.17是美国国家海洋和大气局预报的北克拉罗多的天气数据的三维图像,图4.18是美国航空航天局阿姆斯研究中心的虚拟风洞图像。
4.17 美国国家海洋和大气局预报的北克拉罗多的天气数据的三维图像
图4.18 美国航空航天局阿姆斯研究中心的虚拟风洞图像
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。