◇ 第五节 高级数据库技术
短短三十年数据库管理系统已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到第三代以面向对象模型为主要特征的数据库系统。数据库技术与网络通信技术、人工智能技术、面向对象程序设计技术、并行计算技术、分布式技术等等互相渗透,互相结合,成为当前数据库技术发展的主要特征。
下面就从数据模型、新技术内容、应用领域三个方面来讨论数据库新技术和新进展。
2.5.1数据模型的发展
数据库的发展集中表现在数据模型的发展。从最初的层次、网状数据模型发展到关系数据模型、对象数据模型等,数据库技术产生了巨大的飞跃。
关系模型的提出,是数据库发展史上具有划时代意义的重大事件。然而,八十年代,随着数据库应用领域对数据库需求的增多,传统的关系数据模型开始暴露出许多弱点。为了使数据库用户能够直接以他们对客观世界的认识方式来表达他们所要描述的世界,人们提出并发展了许多新的数据模型。这些尝试是沿着如下几个方向进行的:
1、对传统的关系模型(1NF)进行扩充
引入了少数数据模型构造器,使它能表达比较复杂的数据类型,增强其结构建模能力。我们称这样的数据模型为复杂数据模型。按照它们进行扩充的侧重点,复杂数据模型可分为两种:
- 一种是偏重于结构的扩充。首先出现的这类模型是嵌套关系模型(NF2)。它能表达"表中表",并且表中的一个域可以是一个函数(称为虚域)。
- 另一种是侧重于语义的扩充。它支持关系之间的继承,也支持在关系上定义函数和运算符。但关系的结构仍然是一张平面表。"表中表"只能通过关系上定义的函数来模拟。
总的来说,在复杂数据模型和支持它们的数据库系统里, 客观世界中的每一个实体都用一个元组和它的码(KEY)来表示。不支持太多的语义关联,不区分类和型。
这种数据模型和数据库系统的主要缺点是不能保证客观世界中实体的确定性;实体的引用只能通过码和数据冗余来达到。其主要优点是支持这类模型的系统实现起来相对比较容易。
2、全新的数据构造器和数据处理原语
提出全新的数据构造器和数据处理原语,以表达复杂的结构和丰富的语义。这类模型常常统称为语义数据模型。它们的特点是引入了丰富的语义关联(如ISA,ISP)。能更自然,更恰当地表达客观世界中实体间的联系。加上比较丰富的结构构造器(如TUPLE,LIST,SET等),因此它们也具有很强的结构表达能力。
也许是由于它们比较复杂,在程序设计语言和技术方面没有相应的支持,计算机硬件也没有发展到一定的程度,因此,它们都没有在数据库系统实现方面有重大的突破。至多被当做数据库设计中概念建模的一种工具(如E-R模型)。
3、将上述语义数据模型和OO程序设计方法结合起来提出了面向对象的数据模型面向对象的数据模型吸收了面向对象程序设计方法学的核心概念和基本思想。
一个面向对象数据模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了面向对象数据模型的基础。
2.5.2数据库技术和其他相关技术相结合
数据库技术与其它学科的内容相结合,是新一代数据库技术的一个显著特征,涌现出各种新型的数据库系统,例如:
- 数据库技术与分布处理技术相结合,出现了分布式数据库系统;
- 数据库技术与并行处理技术相结合,出现了并行数据库系统;
- 数据库技术与人工智能相结合, 出现了演绎数据库系统、知识库和主动数据库系统;
- 数据库技术与多媒体处理技术相结合, 出现了多媒体数据库系统;
- 数据库技术与模糊技术相结合,出现了模糊数据库系统;等等。 1、分布式数据库(Distributed DataBase):
随着地理上分散的用户对数据库共享的要求,结合计算机网络技术的发展,在传统的集中式数据库系统基础上产生和发展了分布式数据库系统。
分布式数据库应具有以下特点:
(1) 数据的物理分布性
数据库中的数据不是集中存储在一个场地的一台计算机上,而是分布的在不同场地的多台计算机上。它不同于通过计算机网络共享的集中式数据库系统。
(2) 数据的逻辑整体性
数据库虽然在物理上是分布的,但这些数据并不是互不相关的,它们在逻辑上是相互联系的整体。它不同于通过计算机网络互连的多个独立的数据库系统。
(3) 数据的分布独立性(也称分布透明性)
分布式数据库中除了数据的物理独立性和数据的逻辑独立性外,还有数据的分布独立性。即在用户看来,整个数据库仍然是一个集中的数据库,用户不必关心数据的分片,不必关心数据物理位置分布的细节,不必关心数据副本的一致性,分布的实现完全由分布式数据库管理系统来完成。
(当然,数据的分布性也可通过应用程序服务器或应用程序来实现)
(4) 场地自治和协调
系统中的每个结点都具有独立性,能执行局部的应用请求;每个结点又是整个系统的一部分,可通过网络处理全局的应用请求。
(5) 数据的冗余及冗余透明性
与集中式数据库不同,分布式数据库中应存在适当冗余以适合分布处理的特点,提高系统处理效率和可靠性。因此,数据复制技术是分布式数据库的重要技术。但分布式数据库中的这种数据冗余对用户是透明的,即用户不必知道冗余数据的存在,维护各副本的一致性也由系统来负责。
商品化的数据管理系统如微软的MS SQLServer、甲骨文的Oracle、IBM的DB2等数据库管理系统都提供数据分布技术、数据库复制技术、场地自治协调等机制与方法。
2、多媒体数据库(Multimedia Database)
媒体是信息的载体。多媒体是指多种媒体,如数字、正文、图形、图象和声音的有机集成,而不是简单的组合。其中数字、字符等称为格式化数据,文本、图形、图象、声音、视象等称为非格式化数据,非格式化数据具有大数据量、处理复杂等特点。
多媒体数据库实现对格式化和非格式化的多媒体数据的存储、管理和查询,其主要特征有:
(1) 能够表示多种媒体的数据
非格式化数据表示起来比较复杂,需要根据多媒体系统的特点来决定表示方法。如果感兴趣的是它的内部结构且主要是根据其内部特定成份来检索,则可把它按一定算法映射成包含它所有子部分的一张结构表,然后用格式化的表结构来表示它。如果感兴趣的是它本身的内容整体,要检索的也是它的整体,则可以用源数据文件来表示它,文件由文件名来标记和检索。
(2) 能够协调处理各种媒体数据
正确识别各种媒体数据之间在空间或时间上的关联。例如,关于乐器的多媒体数据包括乐器特性的描述,乐器的照片,利用该乐器演奏某段音乐的声音等,这些不同媒体数据之间存在着自然的关联,比如多媒体对象在表达时必须保证时间上的同步特性。
(3) 提供更强的适合非格式化数据查询的搜索功能
例如可以对Image等非格式化数据作整体和部分搜索。
(4)多媒体数据库应提供特种事务处理与版本管理能力
3、主动数据库(Active DataBase)
主动数据库是相对于传统数据库的被动性而言的。许多实际的应用领域,如计算机集成制造系统、管理信息系统、办公室自动化系统中常常希望数据库系统在紧急情况下能根据数据库的当前状态,主动适时地做出反应,执行某些操作,向用户提供有关信息。
主动数据库通常采用的方法是在传统数据库系统中嵌入Event-Condition-Action(即事件-条件-动作)规则,在某一事件发生时引发数据库管理系统去检测数据库当前状态,看是否满足设定的条件,若条件满足,便触发规定动作的执行。
为了有效地支持ECA规则,主动数据库的研究主要集中于解决以下问题:
1) 主动数据库的数据模型和知识模型:即如何扩充传统的数据库模型,使之适应于主动数据库的要求。
2) 执行模型:即ECA规则的处理和执行方式,是对传统数据库系统事务模型的发展和扩充。
3) 条件检测:是主动数据库系统实现的关键技术之一,由于条件的复杂性,如何高效地对条件求值是对提高系统效率有很大的影响。
4) 事务调度:与传统数据库系统中的数据调度不同,它不仅要满足并发环境下的可串行化要求而且要满足对事务时间方面的要求。目前,对执行时间估计的代价模型是有待解决的难题。
5) 体系结构:目前,主动数据库的体系结构大多是在传统数据库管理系统的基础上,扩充事务管理部件和对象管理部件以支持执行模型和知识模型,并增加事件侦测部件、条件检测部件和规则管理部件。
6) 系统效率:系统效率是主动数据库研究中的一个重要问题,是设计各种算法和选择体系结构时应主要考虑的设计目标。
4、对象-关系数据库(ORDB)
对象-关系数据库系统兼有关系数据库和面向对象的数据库两方面的特征。
对象-关系数据库系统的特点
即它除了具有原来关系数据库的种种特点外,还应该提供以下特点:
1) 允许用户扩充基本数据类型:即允许用户根据应用需求自己定义数据类型、函数和操作符,而且一经定义,这些新的数据类型、函数和操作符将存放在数据库管理系统核心中,可供所有用户公用。
2) 能够在SQL中支持复杂对象:即由多种基本类型或用户定义的类型构成的对象。
3) 能够支持子类对超类的各种特性的继承,支持数据继承和函数继承,支持多重继承,支持函数重载。
4) 能够提供功能强大的通用规则系统,而且规则系统与其他的对象-关系能力是集成为一体的。例如规则中的事件和动作可以是任意的SQL语句,可以使用用户自定义的函数,规则能够被继承等等。
实现对象-关系数据库系统的方法主要有以下五类:
1) 从头开发对象-关系DBMS。这种方法费时费力,不是很现实。
2) 在现有的关系型DBMS基础上进行扩展。 扩展方法又分为二种:
● 对关系型DBMS核心进行扩充,逐渐增加对象特性。这是一种比较安全的方法,新系统的性能往往也比较好。
● 不修改现有的关系型DBMS核心,而是在现有关系型DBMS外面加上一个包装层,由包装层提供对象-关系型应用编程接口,并负责将用户提交的对象-关系型查询映象成关系型查询,送给内层的关系型DBMS处理。这种方法系统效率会因包装层的存在受到影响。
3) 将现有的关系型DBMS与其他厂商的对象-关系型DBMS连接在一起,使现有的关系型DBMS直接而迅速地具有了对象-关系特征。
连接方法主要有二种:
● 关系型DBMS使用网关技术与其他厂商的对象-关系型DBMS连接。但网关这一中介手段会使系统效率打折扣。
● 将对象-关系型引擎与关系型存储管理器结合起来。即以关系型DBMS作为系统的最底层,具有兼容的存储管理器的对象-关系型系统作为上层。
4) 将现有的面向对象型DBMS与其他厂商的对象-关系型DBMS连接在一起,使现有的面向对象型DBMS直接而迅速地具有了对象-关系特征。
连接方法是:将面向对象型DBMS引擎与持久语言系统结合起来。即以面向对象的DBMS做为系统的最底层,具有兼容的持久语言系统的对象-关系型系统作为上层。
5) 扩充现有的面向对象的DBMS,使之成为对象-关系型DBMS。
2.5.3 面向应用领域的数据库新技术
数据库技术被应用到特定的领域中,出现了工程数据库、地理数据库、统计数据库、科学数据库、空间数据库等多种数据库,使数据库领域中新的技术内容层出不穷。
数据库技术被应用到特定的领域中,出现了工程数据库、地理数据库、统计数据库、科学数据库、空间数据库等多种数据库,使数据库领域中新的技术内容层出不穷。
1、工程数据库(Engineering DataBase)
工程数据库是一种能存储和管理各种工程图形,并能为工程设计提供各种服务的数据库。它适用于计算机辅助设计与制造(CAD/CAM)、计算机集成制造(CIM)等通称为计算机辅助应用(CAX)的工程应用领域。工程数据库针对工程应用领域的需求,对工程对象进行处理,并提供相应的管理功能及良好的设计环境。
在工程数据库的设计过程中,由于传统的数据模型难于满足CAX应用对数据模型的要求,需要运用当前数据库研究中的一些新的模型技术,如扩展的关系模型、语义模型、面向对象的数据模型。所以,满足各种工程应用,具有语义的数据模型研究和实现是工程数据研究的重要内容。
2、统计数据库(Statistical DataBase)
统计数据是人类对现实社会各行各业、科技教育、国情国力的大量调查数据。采用数据库技术实现对统计数据的管理,对于充分发挥统计信息的作用具有决定性的意义。
统计数据库是一种用来对统计数据进行存贮、统计(如求数据的平均值、最大值、最小值、总和等等)、分析的数据库系统。
- 第一,多维性是统计数据的第一个特点,也是最基本的特点。
- 其次,统计数据是在一定时间(年度、月度、季度)期末产生大量数据,故入库时总是定时的大批量加载。经过各种条件下的查询以及一定的加工处理,通常又要输出一系列结果报表。这就是统计数据的"大进大出"特点。
- 第三,统计数据的时间属性是一个最基本的属性,任何统计量都离不开时间因素,而且经常需要研究时间序列值,所以统计数据又有时间向量性。
- 第四,随着用户对所关心问题的观察角度不同,统计数据查询出来后常有转置的要求。
3、空间数据库(Spacial DataBase)
空间数据库,是以描述空间位置和点、线、面、体特征的拓扑结构的位置数据及描述这些特征的性能的属性数据为对象的数据库。其中的位置数据为空间数据,属性数据为非空间数据。其中,空间数据是用于表示空间物体的位置、形状、大小和分布特征等信息的数据,用于描述所有二维、三维和多维分布的关于区域的信息,它不仅具有表示物体本身的空间位置及状态信息,还具有表示物体的空间关系的信息。非空间信息主要包含表示专题属性和质量描述数据,用于表示物体的本质特征,以区别地理实体,对地理物体进行语义定义。
由于传统数据库在空间数据的表示、存储和管理上存在许多问题,从而形成了空间数据库这门多学科交叉的数据库研究领域。目前的空间数据库成果大多数以地理信息系统的形式出现,主要应用于环境和资源管理、土地利用、城市规划、森林保护、人口调查、交通、税收、商业网络等领域的管理与决策。
空间数据库的目的是利用数据库技术实现空间数据的有效存储、管理和检索,为各种空间数据库用户实用。目前,空间数据库的研究主要集中于空间关系与数据结构的形式化定义;空间数据的表示与组织;空间数据查询语言;空间数据库管理系统。
4、数据仓库(Data Warehouse)
传统的数据库技术是以单一的数据资源为中心,进行各种操作型处理。操作型处理也叫事务处理,是指对数据库联机地日常操作,通常是对一个或一组记录的查询和修改,主要是为企业的特定应用服务的,人们关心的是响应时间,数据的安全性和完整性。分析型处理则用于管理人员的决策分析。例如:决策支持系统(DSS),EIS和多维分析等,经常要访问大量的历史数据。于是,数据库由旧的操作型环境发展为一种新环境:体系化环境。体系化环境由操作型环境和分析型环境(数据仓库级,部门级,个人级)构成。
1) 数据库到数据仓库
2) 数据仓库的特点
3) 分析工具─数据仓库系统的重要组成部分
4) 基于数据库技术的DSS解决方案
数据仓库(Data Warehouse)概念的形成是以Prism Solutions公司副总裁W.H.Inmon在1990年出版的《建立数据仓库(Building
the Data Warehouse)》一书为标志的。数据仓库的提出以关系数据库、并行处理和分布式技术的飞速发展为基础,目的是解决在信息技术(IT)
发展中存在的拥有大量数据、然而有用信息贫乏(Data rich-Information poor)的问题。总的来说,数据仓库就是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。
数据仓库中的数据面向主题与传统数据库面向应用相对应,主题是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域。数据仓库的集成特性是指在数据进入数据仓库之前,必须经过数据加工和集成,首先要统一原始数据中的矛盾之处,还要将原始数据结构做一个从面向应用向面向主题的转变。数据仓库的稳定性是指数据经加工和集成进入数据仓库后是极少或根本不修改的。数据仓库是不同时间的数据集合,它要求数据仓库中的数据保存时限能满足进行决策分析的需要。
数据仓库最根本的特点是物理地存放数据,但这些数据并不是最新的、专有的,而是来源于其它数据库。数据仓库的建立并不是要取代数据库,它要建立在一个较全面和完善的信息应用的基础上,用于支持高层决策分析,而事务处理数据库在企业的信息环境中承担的是日常操作性的任务。
数据仓库是体系化环境的核心,它是建立决策支持系统(DSS)的基础。
1) 数据库到数据仓库
具体来说,有如下原因使得事务处理环境不适宜DSS应用:
- 事务处理和分析处理的性能特性不同:在事务处理环境中,用户的行为特点是数据的存取操作频率高而每次操作处理的时间短,因此,系统可以允许多个用户按分时方式使用系统资源,同时保持较短的响应时间,OLTP(联机事务处理)是这种环境下的典型应用。在分析处理环境中,某个DSS应用程序可能需要连续运行几个小时,从而消耗大量的系统资源。将具有如此不同处理性能的两种应用放在同一个环境中运行显然是不适当的。
- 数据集成问题:DSS需要集成的数据。全面而正确的数据是有效的分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。因此,DSS不仅需要整个企业内部各部门的相关数据,还需要企业外部、竞争对手等处的相关数据。而事务处理的目的在于使业务处理自动化,一般只需要与本部门业务有关的当前数据,对整个企业范围内的集成应用考虑很少。当前绝大部分企业内数据的真正状况是分散而非集成的,这些数据不能成为一个统一的整体。对于需要集成数据的DSS应用来说,必须自己在应用程序中对这些纷杂的数据进行集成。可是,数据集成是一项十分繁杂的工作,都交给应用程序完成会大大增加程序员的负担。并且,如果每做一次分析,都要进行一次这样的集成,将会导致极低的处理效率。DSS对数据集成的迫切需要可能是数据仓库技术出现的最重要动因。
- 数据动态集成问题:由于每次分析都进行数据集成的开销太大,一些应用仅在开始对所需的数据进行了集成,以后就一直以这部分集成的数据作为分析的基础,不再与数据源发生联系,我们称这种方式的集成为静态集成。静态集成的最大缺点在于如果在数据集成后数据源中数据发生了改变,这些变化将不能反映给决策者,导致决策者使用的是过时的数据。对于决策者来说,虽然并不要求随时准确地探知系统内的任何数据变化,但也不希望他所分析的是几个月以前的情况。因此,集成数据必须以一定的周期(例如24小时)进行刷新,我们称其为动态集成。显然,事务处理系统不具备动态集成的能力。
- 历史数据问题:事务处理一般只需要当前数据,在数据库中一般也只存储短期数据。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有对历史数据的详细分析,是难以把握企业的发展趋势的。
- 数据的综合问题:在事务处理系统中积累了大量的细节数据,一般而言,DSS并不对这些细节数据进行分析,在分析前,往往需要对细节数据进行不同程度的综合。而事务处理系统不具备这种综合能力,根据规范化理论,这种综合还往往因为是一种数据冗余而加以限制。
2) 数据仓库的特点
原始数据(操作型数据)与导出型数据(DSS数据)之间的区别。其中主要是:
图2-21 数据仓库与操作型数据库的区别
所以数据仓库之父W.H.Inmon给数据仓库作出了如下定义:数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制订过程。面向主题、集成、稳定和随时间变化是数据仓库四个最主要的特征。
数据仓库是面向主题的:它是与传统数据库面向应用相对应的。主题是一个在较高层次将数据归类的标准,每一个主题基本对应一个宏观的分析领域。比如一个保险公司的数据仓库所组织的主题可能为:客户政策保险金索赔。而按应用来组织则可能是:汽车保险生命保险健康保险伤亡保险。我们可以看出,基于主题组织的数据被划分为各自独立的领域,每个领域有自己的逻辑内涵而不相交叉。而基于应用的数据组织则完全不同,它的数据只是为处理具体应用而组织在一起的。应用是客观世界既定的,它对于数据内容的划分未必适用于分析所需。
数据仓库是集成的:操作型数据与适合DSS分析的数据之间差别甚大。因此数据在进入数据仓库之前,必然要经过加工与集成。这一步实际是数据仓库建设中最关键、最复杂的一步。首先,要统一原始数据中所有矛盾之处,如字段的同名异义、异名同义,单位不统一,字长不一致等等。并且对将原始数据结构作一个从面向应用到面向主题的大转变。
数据仓库是稳定的:它反映的是历史数据的内容,而不是处理联机数据。因而,数据经集成进入数据库后是极少或根本不更新的。数据仓库是随时间变化的:首先,数据仓库内的数据时限要远远长于操作环境中的数据时限。前者一般在5-10年,而后者只有60-90天。数据仓库保存数据时限较长是为了适应DSS进行趋势分析的要求。其次,操作环境包含当前数据,即在存取一刹那是正确有效的数据。而数据仓库中的数据都是历史数据。最后,数据仓库数据的码键都包含时间项,从而标明该数据的历史时期。
3) 分析工具─数据仓库系统的重要组成部分
有了数据就如同有了矿藏,而要从大量数据中获得决策所需的数据就如同开采矿藏一样,必须要有工具。
联机分析处理技术及工具:短短的几年,OLAP技术发展迅速,产品越来越丰富。它们具有灵活的分析功能,直观的数据操作和可视化的分析结果表示等突出优点,从而使用户对基于大量数据的复杂分析变得轻松而高效。目前OLAP工具可分为两大类,一类是基于多维数据库的,一类是基于关系数据库的。两者相同之处是基本数据源仍是数据库和数据仓库,是基于关系数据模型的,向用户呈现的也都是多维数据视图。不同之处是前者把分析所需的数据从数据仓库中抽取出来物理地组织成多维数据库,后者则利用关系表来模拟多维数据,并不物理地生成多维数据库。
数据挖掘技术和工具:数据挖掘(Data Mining,简称DM)是从大型数据库或数据仓库中发现并提取隐藏在内的信息的一种新技术。目的是帮助决策者寻找数据间潜在的关联,发现被忽略的要素,它们对预测趋势、决策行为也许是十分有用的信息。
数据挖掘技术涉及数据库技术、人工智能技术、机器学习、统计分析等多种技术,它使DSS系统跨入了一个新阶段。传统的DSS系统通常是在某个假设的前提下通过数据查询和分析来验证或否定这个假设,而数据挖掘技术则能够自动分析数据,进行归纳性推理,从中发掘出潜在的模式;或产生联想,建立新的业务模型帮助决策者调整市场策略,找到正确的决策。
4) 基于数据库技术的DSS解决方案
技术的进步,不懈的努力使人们终于找到了基于数据库技术的DSS的解决方案,这就是:DW+OLAP+DM ───> DSS的可行方案
数据仓库、OLAP和数据挖掘是作为三种独立的信息处理技术出现的。数据仓库用于数据的存储和组织,OLAP集中于数据的分析,数据挖掘则致力于知识的自动发现。它们都可以分别应用到信息系统的设计和实现中,以提高相应部分的处理能力。但是,由于这三种技术内在的联系性和互补性,将它们结合起来即是一种新的DSS构架。即以数据仓库为基础、以OLAP和DM工具为手段(DW+OLAP+DM=DSS)的一整套可操作、可实施的解决方案。其结构框图如图2-22所示。
图2-22 DSS系统的结构
这一构架以数据库中的大量数据为基础,系统由数据驱动。其特点是:
- 在底层的数据库中保存了大量的事务级细节数据。这些数据是整个DSS系统的数据来源。
- 数据仓库对底层数据库中的事务级数据进行集成、转换、综合,重新组织成面向全局的数据视图,为DSS提供数据存储和组织的基础。
- OLAP从数据仓库中的集成数据出发,构建面向分析的多维数据模型,再使用多维分析方法从多个不同的视角对多维数据进行分析、比较,分析活动从以前的方法驱动转向了数据驱动,分析方法和数据结构实现了分离。
- 数据挖掘以数据仓库和多维数据库中的大量数据为基础,自动地发现数据中的潜在模式,并以这些模式为基础自动地作出预测。数据挖掘表明知识就隐藏在日常积累下来的大量数据之中,仅靠复杂的算法和推理并不能发现知识,数据才是知识的真正源泉。数据挖掘为AI技术指出了一条新的发展道路。
这种新的DSS构架真正重新展示了信息的本质,表明了信息系统的设计观念从处理驱动到数据驱动的转变。从而使信息的重点将逐步从支持面向操作层的OLTP、中间管理控制层的MIS提高到数据模式分析,
高层的决策支持和分析预测上来。
|