面向对象数据库技术的发展研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象数据库技术的
发展和研究
面向对象的思想首先出现在程序设计方法中。

这一思想指导下产生的面向对象技术是一种按照人们对现实世界习惯的认识论思维方式来研究和模拟客观世界的方法学。

它将现实世界中的任何事物均视为“对象”.将客观世界看成是由许多不同种类的对象构成。

不同对象之间的相互联系和相互作用就构成了完整的客观世界。

面向对象方法学所引入的对象、方法、消息、类、实例、继承性、封装性等一系列重要概念和良好机制为人们认识和模拟客观世界分析、设计和实现大型复杂系统奠定了良好的科学技术基础。

随着研究的不断深入和发展。

面向对象技术已大大地超出了程序设计语言的范围。

并渗透和应用到了诸多复杂的工程领域。

并给软件工程、信息系统、工业设计与制造等带来了深远的影响。

如面向对象的软件工程、面向对象的信息管理系统、面向对象的操作系统、面向对象的数据库系统、面向对象的专家系统、面向对象的开发工具和面向对象的用户界面等的出现。

其中,面向对象的数据库系已成为当今数据库领域研究和发展的主要方向之一。

数据库技术与面向对象技术相结合已成为当前数据库技术研究、应用和发展的一个重要方向。

将面向对象技术应用到数据库系统中。

使数据库管理系统能够支持面向对象数据模型和数据库模式。

这对于提高数据库系统拟和操纵客观世界的能力,扩大数据库应用领域具有重要的意义:将面向对象技术应用到数据库的集成开发环境中。

使数据库应用开发工具能够支持面向对象的开发方法井提供相应的开发手段,这对于提高应用软件的开发质量和扩大软件的应用推广是十分重要的。

纵观数据库系统的发展,面向对象技术的诞生为数据库的发展带来了希望。

尽管目前面向对象数据库技术的实际发展与关系数据库系统相比,它的理论研究和形式化、标准化等方面还不完备和成熟。

但是,从面向对象技术的前景和应用来看,面向对象数据库系统将代表着新一代数据库系统的发展方向。

1、数据库技术的发展
数据库发展经历了三个阶段。

第一阶段是层次和网状数据库,过程化程度较高,一般用户使用困难;第二阶段是关系数据库 (RDB),它以关系演算和关系代数为其数学基础。

以二维表为其数据结构,利用非过程化数据操纵语言进行数据库管理,采用内/外/概念模式的三层模式结构,具有较高数据独立性,成为20世纪70年代到80年代中期的主流数据库。

层次网状数据库和关系数据库尽管设计和控制方式不同:但都用于一般事务处理,统称为传统数据库。

随着网络技术、多媒体技术、空间信息科学、信息管理、人工智能、软件工程技术和数据挖掘技术等领域的发展及新的社会需求出现,信息无论是从数量上还是结构上都远远超过了传统数据库能承受的范围。

人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求。

一种新的解决方案呼之欲出,而这个解决方案极有可能就是面向对象数据库技术。

为了适应海量信息和复杂数据处理要求它们结合特定应用领域分为多媒体数据库、空间数据库、演绎数据库、工程数据库等。

与传统数据库相比,它们既具有多样性也具有统一性。

建立它们的主要目的是为了处理海量信息和复杂数据结构,因此面向对象技术必不可少。

1.1 网状数据库
处理以记录类型为结点的网状数据模型的数据库。

网状模型的特征是:(l)允许有一个以上的结点没有双亲;(2)结点可以有多于一个的双亲。

处理方法是将网状结构分解成若干棵二级树结构,称为系。

系类型是二个或二个以上的记录类型之间联系的一种描述。

在一个系类型中,有一个记录
类型处于主导地位,称为系主记录类型,其它称为成员记录类型。

系主和成员之间的联系是一对多的联系。

网状数据库的代表是DBTG系统。

1969年美国的CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称为DBTG系统。

现有的网状数据库系统大都是采用DBTG方案的。

DBTG系统是典型的三级结构体系:子模式、模式、存储模式。

相应的数据定义语言分别称为子模式定义语言SSDDL,模式定义语言SDDL,设备介质控制语言DMCL。

另外还有数据操纵语言DML。

1.2 层次数据库
层次数据库是将数据组织成有向有序的树结构,并用“一对多”的关系联结不同层次的数据库。

层次模型是出现较早的一种公认的数据库管理系统数据模型。

早在1969年IBM公司就推出了IMS的最初版本,之后,层次数据库管理系统得到了迅速发展,同时它也影响了其它类型的数据库管理系统,特别是网状系统的出现和发展。

今天,层次模型的数据库管理系统无论从技术上、方法上早已完善和成熟,并将随其支持方法的发展而发展。

无论从那一个方面讲,层次模型都早已成为传统数据库管理系统三大数据模型之一。

1.3 关系数据库
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。

目前主流的关系数据库有oracle、SQL、access、db2等。

1)关系数据库
在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。

2)关系数据库的型与值
关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式。

关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。

1.4 新一代数据库技术
八十年代出现的面向对象的方法和技术对计算机各个领域,包括程序设计语言、软件工程、信息系统设计,以及计算机硬件设计等都产生了深远的影响,也给面临新挑战的数据库技术带来了机会和希望。

数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象数据模型(简称对象模型)。

该模型克服了传统数据模型的局限性,为新一代数据库系统的探索带来了希望,促进了数据库技术在一个新的技术基础上继续发展。

为了适应数据库应用多元化的要求,在传统数据库基础上,结合各个应用领域的特点,研究适合该应用领域的数据库技术,如数据仓库、工程数据库、统计数据库、科学数据库、空间数据库、地理数据库等,这是当前数据库技术发展的又一重要特征。

研究和开发面向特定应用领域的数据库系统的基本方法是以传统数据库技术为基础,针对某一领域的数据对象的特点,建立特定的数据模型,它们有的是关系模型的扩展和修改,有的是具有某些面向对象特征的数据模型。

新一代数据库技术的研究和发展导致了众多不同于第一、二代数据库的系统诞生,构成了当今数据库系统的大家族。

这些新的数据库系统无论它是基于扩展关系数据模型的、还是OO模型的;是分布式、客户/服务器或混合式体系结构的;是在SMP 还是在MPP并行机上运行的并行数据库系统;是用于某一领域(如工程、统计、GIS)的工程数据库、统计数据库、空间数据库……,我们都可以广泛地称之为新一代数据库系统。

新一代数据库技术的特点:一方面立足于数据库已有的成果和技术,加以发展进化,有人称之为"进化论"的观点和方法。

另一方面的努力是立足于新的应用需求和计算机未来的发展,研究全新
的数据库系统,有人称之为"革新论"的观点和方法。

二、面向对象数据库
面向对象数据库(OODB)以面向对象技术为基础,增加数据库内部数据处理功能,用以支持持久对象和现实数据共享。

其概念可表达为:面向对象系统+数据库能力。

它与关系型数据库相比,最大优点就是在于其建模和处理能力大大增强,面向对象数据库可以处理复杂和变化的事物对象,尤其在复杂系统的模拟、表达和处理能力上可以算得上是独树一帜,故被称为数据库史上一场革命。

就OODB本身的发展,又可以分为两个阶段,或称为两种途径。

一个是纯粹的面向对象数据库系统或者称为第一代面向对象数据库,另一个是对象关系数据库系统或称为支持ANSI SQL的第二代面向对象数据库系统。

在目前OODB技术还不是很成熟的阶段,人们又想到了第三种途径,就是应用面向对象编程语言,开发基于关系数据库的数据库应用软件从数据库用户的角度来看,可以将它称为面向对象数据库。

2.1 面向对象数据库概述
面向对象数据库系统(OODBS)首先是一个数据库系统,即系统应具备数据库系统的处理能力,其次它也是一个面向对象系统,包含面向对象的概念和方法。

因此,可以用下面公式来定义面向对象的数据库系统:面向对象的数据库系统=数据库能力+面向对象系统。

面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。

在数据库中提供面向对象的技术是为了满足特定应用的需要。

随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。

这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。

还有许多应用要求多媒体数据库,它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。

面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。

例如:0NToS、0-RION等.它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。

面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。

在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。

如UNISQL、02等。

它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。

2.2 面向对象数据库的特点
面向对象数据库将面向对象的能力赋予了数据库设计人员和数据库应用开发人员,从而扩展了数据库系统的应用领域.并能提高开发人员的工作效率和应用系统的质量。

面向对象数据库具备如下特点。

首先,它是一个数据库管理系统,具有数据库管理系统的基本功能。

一是永久性,数据库中的数据永久保存的:二是存储管理。

包括索引管理、数据聚集、数据缓冲、存取路径选择、查询优化等;三是能并发控制,提供高于当前已有数据库管理系统同样级别的、对多个用户并发操作的支持;四是故障恢复能力,提供不低于当前已有的数据库管理系统同样级别的、将数据库从故障后的错误状态中核复到某个正确状态的功能;五是交互式查询功能,且是非过程化的、高效的、独立于应用的。

其次,它是一个面向对象的系统。

只有支持面向对象数据库模型,支持复杂对象,具有运用各种构造机制从简单对象组成复杂对象的能力。

复杂对象构造能力加强了对客观现实世界的模拟能力,
且方法自然、易理解、具有对象标识,对象标识独立于其值而存在的特性可以极大地加快查询速度;具有封装性,对象既封装了数据,又封装操作,实现了信息隐藏,使用户不必知道操作的实现细节。

只而利用设计者提供的消息即可访问对象。

它还具备应用领域所需要的一些特性,如版本管理、长事务和嵌套事务、模式演化等等。

2.3 面向对象数据库的实现
实现面向对象数据库一般有三种方法:
1、填充关系数据模型。

关于数据库已积累了相当成功的经验,并为工业界广泛接受。

将成熟的关系数据库与OODB方法结合起来,可减少研制工作量,缩短研制周期。

但这种方法的弱点是仍不能支持一些面向对象的语义,而且由于保留了关系数据库的存储结构而牺牲了一些OODB的特征,其性能、效率难有实质性的提高。

2、在面向对象语言中嵌入数据库功能而形成OODB。

该方法的关键是如何在面向对象语言中增加持久性对象的存储管理。

一般以Smalltalk、C++为语言扩充OODB。

采用此法研制的OODB有Orion、02等系统。

使用此法的困难在于视图、程序员界面标准化,且受面向对象语言的限制。

3、开发全新的数据模型,从底层实现OODB系统。

该方法首先建立一个包含OODB核心概念的数据模型.设计相应的语言和相应的OODBMS核心。

其优点是系统结构清晰、效率高。

与传统的数据库相比,OODB有许多优点,如包含更多的数据语义信息,对复杂的数据对象的表达能力更强,但OODB还只是一种新兴技术,发展远不如数据库成熟.如缺乏完美的数学基础,缺乏通用的数据模型,导航式计算模式常受到批评等,因此,OODB技术还有待于进一步研究,但可以肯定.它是一项有重大理论意义和应用前景的数据库技术,是第三代数据库系统的核心概念和技术基础。

三、新应用领域的需求及面向对象数据库的发展
从80年代以来,数据库技术在商业领域的巨大成功激发了其它领域对数据库技术需求的迅速增长。

这些新的领域包括:CAD/CAM、CIM、CASE、OIS(办公信息系统)、GPS(地理信息系统)、知识库系统和实时系统等。

新的应用领域需要数据库的支持,为数据库应用开辟了新的天地,并在应用中提出了一些传统的数据库系统所不能支持的新的需求:
1、能表示客观世界中各种复杂的对象。

传统数据库中采用的数据模型强调数据的高度结构化,是面向机器的语法数据模型。

它们只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力差。

传统数据模型的单调性无法表示客观世界中的复杂对象。

即结构复杂、相互联系的语义也十分复杂的对象。

从而限制了数据库处理文本、超文本、形、图像、CAD图件和声音等多种复杂对象,以及工程、地理、测绘等领域中的非格式化、非经典数据的能力。

此外,传统数据模型无法揭示数据之间的深层含义和内在联系,缺乏数据抽象。

2、能依据用户所需的数据类型扩大其类型集。

传统的DBMS只能理解、存储和处理简单的数据类型。

如整数、浮点数、字符串和日期等。

传统的RDBMS只支持某一固定的类型集,不能依据某一应用所需的特定数据类型来扩展其类型集。

例如。

不能定义包含3个实数分量的数据类型vector 来表示三维向量.复杂的数据类型只能借助高级语言用简单的数据类型来构造、描述和处理,既加重了用户的负担,也不能保证数据的一致性。

而且。

在客户服务器环境下,由于应用程序在客户端。

势必将加大客户与服务器之间的通讯开销,使服务器的性能不能充分发挥。

从而降低了整个系统的性能。

面向对象的方法能依据用户所需的数据类型扩大其类型集。

3、结构与行为要相互关联。

从应用程序员角度来看。

在某一应用领域内标识的对象应包含两个方面的内容:结构表示和行为规格说明。

前者可以映射到数据库模式。

而后者在传统数据库系统中则完全失去了。

传统数据库主要关心数据的独立性以及存取数据的效率,是语法数据库。

语义表
达差,难以抽象化地去模拟行为。

例如,在CAD设计中用某些数据结构来表示的对象。

对它们的操作(如形成、显示和组合等)就无法存放到数据库中,即便能按记录存放进去,这些操作也毫无意义,对象中与应用相关的大量语义在数据库中无法从无意义的编码中恢复。

在传统数据库系统中对象的行为特征只能由应用程序来表示。

在传统数据模型中,结构与行为完全分开。

4、消除阻抗失配和语义断层。

关系数据库系统仅支持有限的数据类型和计算不完全的结构化查询语言(SQL),一些应用开发不得不同时使用(SQL)和某一程序设计语言(PL)。

PL作为宿主语言,SQL作为嵌入式语言。

PI负责应用数据类型的抽象和定义及实施程序设计;而SQL负责完成数据查询。

由于两种语言有着不同的类型子系统和计算模型。

因此形成了“阻抗失配”。

程序员利用宿主语言设计的复杂数据结构在存储到数据库时必须转变成符合数据库系统要求的简单规格化数据形式,这样即丢失了原数据结构的应用语义,同时也妨碍了其它工具和用户在原有的语义层次上共享数据。

这种数据类型或模型的转换所产生的语义丢失现象便是语义断层。

面向对象程序设计语言和数据库的结合形成了面向对象数据库管理系统,其目的是形成一种即可编程又可存储管理数据的无缝性语言,彻底消灭阻抗失配和语义断层现象。

5、要求能支持主动性的事件检查和处理功能。

传统数据库管理系统只能响应和重做用户要求它们做的事情。

从这种意义上说,它们是被动的。

而在大量重要的工作应用中.如计算机集成制造、计算机辅助设计、空中交通控制和紧急情况评估等,不仅需要大量共享的数据仓库。

而且还要求这些数据能自动检测指定的事件,包括特定的数据库状态,并按一定的条件加以及时处理。

然而传统的数据库管理系统是不支持这种主动性的事件检查和处理的。

6、要求有灵活的知识表达能力。

传统的DBMS只存储和管理数据,缺乏知识管理相对象管理的能力。

传统数据管理中,主要进行的是数据的存储、管理、查询、排序和报表生成等简单的、离散化的信息处理工作。

数据库反映的是客观世界中静态、被动的事实。

传统的DBMS除了缺乏对象管理的能力以外.还缺乏描述和表达知识的能力。

缺乏对知识的处理能力。

不具有演绎和推理的功能,因而无法满足MIS、DSS、OA和AI等领域中进行高层管理和决策的要求。

7、要求能快速响应长事务和多重嵌套事务的能力。

传统数据库只能支持非嵌套事务,对长事务的响应较慢,并且在事务发生故障时的恢复比较困难。

面向对象的方法能快速响应长事务和多重嵌套事务。

综上所述,面向数据库应用领域的不断扩展和用户要求的多样化、复杂化,传统的数据库技术难以满足复杂数据的管理需求已成定论。

面对日益复杂化的社会及工程信息的管理。

人们只好另劈新径,面向对象数据库便成为研究和开发的新目标。

四、面向对象数据库的特征与功能
面向对象数据库将面向对象的能力赋予了数据库设计人员和数据库应用开发人员。

从而扩展了数据库系统的应用领域。

并能提高开发人员的工作效率和应用系统的质量。

面向对象数据库具备如下特征:
首先,它是一个数据库管理系统.具有数据库管理系统的基本功能。

一是永久性,数据库中的数据中永久保存的;二是存储管理,包括索引管理、数据聚集、数据缓冲、存取路径选择、查询优化等;三是能并发控制,提供高于当前已有数据库管理系统同样级别的、对多个用户并发操作的支持;四是故障恢复能力,提供不低于当前已有的数据库管理系统同样级别的、将数据库从故障后的错误状态中恢复到某个正确状态的功能:五是交互式查询功能,且是非过程化的,高效的,独立于应用的。

其次,它是一个面向对象的系统。

只有支持面向对象数据库模型,支持复杂对象,具有运用各种构造机制从简单对象组成复杂对象的能力。

复杂对象构造能力加强了对客观现实世界的模拟能力,且方法自然、易理解、具有对象标识,对象标识独立于其值而存在的特性可以极大地加快查询速度;
具有封装性,对象既封装了数据,又封装操作,实现了信息隐藏,使用户不必知道操作的实现细节,只而利用设计者提供的消息即可访问对象。

它还具备应用领域所需要的一些特性.如版本管理、长事务和嵌套事务、模式演化等等。

面向对象数据库系统的体系结构大致可以分为两种类型:完备型和扩展型。

1)完备型的面向对象数据库系统支持各种非传统的功能。

一般说来,完备型的OODBS的针对性强、效率高,但系统实现周期长、难度大,尤其是为支持各种不同的应用,要求系统在各个层次上都需具有良好的扩展性,而这正是面向对象数据库设计与实现中的难点。

2)扩展型的面向对象数据库系统只实现一个核心的数据库系统部件,然后根据不同的应用再开发不同的前端应用程序.从而实现各种基于不同应用的OODBS版本。

面向对象数据库系统的优点:
OODBS赋予数据库设计和应用开发人员很强的面向对象能力,从而大大扩展了数据库系统的应用领域。

提高了开发人员的工作效率和应用系统的质量。

面向对象数据模型与传统数据模型相比.在以下方面具有优势:
1)具有表示和构造复杂对象的能力;
2)封装性和信息隐藏技术提供了程序的模块化机制;
3)继承和类层次技术提供了软件的重用机;
4)滞后束定等技术提供了系统的扩充能力。

五、面向对象数据库存在的问题
面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术。

尽管目前已有大量的研究开发工作,有一些可支持的面向对象数据库系统。

但面向对象数据库的成熟仍有赖于许多关键问题的解决。

另一方面,由于面向对象数据库的发展经历了从研究到商用的过程,因而,开发者面对的是涉及各方面的技术问题。

对于面向对象数据库来说,最大的挑战是建立一个在性能、一致性、完整性、可靠性和灵活性上优良的数据库。

其中一些问题是面向对象数据库所特有的,如:
1、性能方面:由于面向对象数据库中数据被存放在许多地方,因此,有效对象聚集是性能好坏的关键因素。

这种数据集聚可以以类层次或对象的其它关系为依据。

而面向对象数据库的性能提高也需要优良的高速缓冲方案,其目标是根据使用要求使各对象尽可能地放在一起。

同时,面向对象数据库技术要想能取代传统的数据库技术,性能改善是必不可少的。

提高面向对象数据库的性能尤其是在分布式环境中的性能的一种方法是把访问数据库的应用程序也看作是对象,以使它们在数据库中可象数据对象那样到处移动。

在进行查询时,数据库可以选择将数据移至程序还是将程序移至数据。

2、模式修改:当需要面向对象数据库的升级或新版本时数据库的模式修改或重构将是个问题。

面向对象数据模型有丰富的建模能力,这一方面使用户建模容易。

另一方面也使面向对象数据库模式复杂,需要有工具支持。

视图、演绎能力、语义建模和长事务也是未来面向对象数据库系统应该具备的数据库特征。

可扩充体系结构也是一个重要方向。

3、标准化:标准化和形式化是面向对象数据库系统研究和发展的一个重要方向。

几年来。

人们在核心面向对象概念方面基本达成了共识,但在面向对象数据模型的其它方面。

如:体系结构、编程接口语言上的理解尚未达到一致。

有待于在系统研制和应用过程中进行标准化。

相关文档
最新文档