面向对象数据库系统初步探讨

时间:2022-04-08 11:00:57

面向对象数据库系统初步探讨

摘要:面向对象数据库系统是数据库技术与面向对象程序设计方法相结合的产物,使得数据库的分析、设计最大程度地与人们对客观世界的认识相一致,是数据库技术中巨大的进步。本文从面向对象数据模型出发,概述了面向对象数据库系统的特点、优势、体系结构、发展、重要技术及应用领域,并对其存在的主要问题和解决方法进行了初步的探讨。

关键字:面向对象技术;面向对象数据库系统;类;数据库;面向对象模型

1 引言

数据库技术是计算机技术研究中最为重要的方向之一。经过几十年的发展,成熟的关系型数据库被广泛地应用于各个社会领域。但是,现实社会的复杂多变性以及各种应用要求的提高,导致信息在数量和结构上都远超传统数据库的承受范围。1990年高级DBMS功能委员会提倡的面向对象的数据模型,就是要把面向对象的方法和数据库技术结合起来,以使数据库系统的分析、设计最大程度地与人们对客观世界的认识保持一致。面向对象数据库系统(Object-oriented Database)是为了满足新一代数据库的应用需要而产生的新型数据库系统。

2 面向对象数据库概述

2.1面向对象数据模型

与其他数据模型一样,面向对象的数据模型也包括:数据结构、数据操作和完整性约束三部分,但是其在这三个方面的表现形式和实现方式与传统的关系模型都有很大的区别。

面向对象的数据结构是通过对象和类这两个基本要素,借助封装、继承和组合机制建立起来的复杂结构,而数据操作时通过方法和消息来实现的。面向对象数据库系统支持面向对象数据模型(简称OODM),即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者[1]。OODM是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。对象与对象标识、属性、行为、类、类层次、消息、持久性等核心概念构成了OODM的基础 [2]。

2.2面向对象数据库的特点与优势

面向对象程序语言操纵的是对象,所以面向对象数据库(简称OODB)的一个优势是面向对象语言程序员在做程序时,可直接以对象的形式存储数据[4]。对象数据模型有以下特点:

(1)使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统 [5]。对象可以定义为对象的属性和对象的行为描述,对象间的关系分为直接和间接关系。(2)语义上相似的对象被组织成类,类是对象的集合,对象只是类的一个实例[6],通过创建类的实例实现对象的访问和操作。(3) 对象数据模型具有“封装”、“继承”、“多态”等基本概念[7]。(4) 方法实现类似于关系数据库中的存储过程,但存储过程并不和特定对象相关联,方法实现是类的一部分。(5) 实际应用中,面向对象数据库可以实现一些带有复杂数据描述的应用系统,如时态和空间事务、多媒体数据管理等。

除此之外,上述特点导致面向对象数据库具有丰富的数据类型,因此能够表达复杂嵌套对象,在复杂对象上获得良好的性能。数据库与程序设计语言的类型系统和操作方的统一,消除了数据库中的阻抗不匹配问题,扩展了数据库系统的应用领域,并提高了应用系统的质量和开发人员的工作效率。

3 面向对象数据库系统的体系结构及发展

3.1 面向对象数据库系统的体系结构

面向对象数据库管理系统包括了关系数据库管理系统的全部功能,只是在面向对象环境中增加了一些新内容,其中有一些是关系数据库管理系统所没有的。面向对象数据库管理系统(C/S即客户/服务器结构)主要由以下五个子系统组成[8]

3.2 面向对象数据库系统的发展

自20世纪80年代来,OODBS的发展经历了主要三个阶段:(1)实验室原型阶段,很多原型产品于80年代末在实验室完成,它们大都具有较新的思路和大胆的设计但却缺乏实际应用的考验,代表产品有工业界Vbase和Orien等,学术界的Gemstone等;(2)初期商业化产品阶段,80年代末至90年代初,所推出的产品均具有面向对象数据库管理系统的基本特色和实际运用的能力,为OODBMS占领市场起了重大作用,但仍有许多缺陷;(3)成熟产品阶段,20世纪90年代中期至今,OODBMS的商业化趋于成熟,产品如Object Store、Ontos、O2、Jasmin等。

4 面向对象数据库系统的重要技术及应用

4.1.数据库转换技术

由于关系数据库在当今数据库应用领域处于主导地位,而面向对象数据库如果要满足更高一级数据库要求,实现异构数据库之间数据库模式和操作的转换是一个关键研究课题。数据库转换技术包括数据模式技术和数据操作转换技术,转换时要保证一致性(对象语义和动作信息在转换过程中不丢失)。

4.2模式演进技术

OODB的类为适应需求变化而随时间变化称为模式演进,包括创建新类、删除旧类、修改类属性和操作等模式演进必须保持模式一致性(模式自身内部不能有矛盾),这由模式一致性约束描述。模式一致性约束分为唯一性约束、存在性约束和子类型约束等,满足所有这些一致性约束的模式称为一致模式。模式演化是面向对象数据库研究重点与难点,实现途径一般有两种:模式改变考虑现有应用程序使二者相互集成和适应;开发新的高级数据库编程语言。

4.3视图类实现技术

面向对象数据库中很多操作(如统计、连接查询和视图操作)都能自由访问数据库数据,这些操作益于实现视图操作及降低复杂度并提高效率,但易破坏对象封装性。为了不破坏对象封装性,必须对面向对象数据库的核心模型进行扩充,在对象中设计一组接口,系统通过这组接口完成视图操作,这样会增加对象复杂性和面向对象数据库系统设计难度,因此需要对这些接口实行标准化。基于上述条件,设计相应类数据结构和操作则可实现OODBS视图操作。

4.4 OODBS事务管理技术

OODBS事务管理子系统包括死锁管理器、锁管理器、恢复管理器和日志管理器几个部分。相比传统RDBS,OODBS加锁具如下特点:①加锁单位是对象而不是类;②给类对象加锁比给关系对象加锁需更多信息;③当类实例被加锁时,其父类也被加锁。OODBS采用粗粒度加锁具有很高的并行性,加锁的一般是对象,若某一事务要访问同一类多数实例,则对整个类加锁,保证可靠性又降低系统开锁代价。另外,OODBS还具有恢复机制,其中包括多媒体日志恢复和索引页日志恢复两种。多媒体日志恢复是指OODBS把多媒体数据和其描述部分分开,后者通过对象标识符引用前者。若创建多媒体数据事务失败,则置空描述部分引用并复位。索引页日志恢复的方法有两种:一是分裂索引页的插入操作,系统把当前索引页一半表项分给新页,除拷贝的表项外其余都记录在日志中,发生故障时则去掉整个新页;二是合并索引页的删除操作,系统把当前索引页表项拷贝到新页,除了从当前页删除的表项外其余都记录在日志中,发生故障时则重新使用当前页。

4.5面向对象数据库系统的应用

面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的无缝连接。无缝连接即假设不使用数据库,而使用某种编程语言编写一个程序,可以基本不经任何改动地将它作用于数据库,即可以用编程语言透明访问数据库,就好像数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。

面向对象方法综合了在关系数据库中发展的全部工程原理,以及系统分析、软件工程和专家系统领域的内容,符合一般人的思维规律,将现实世界分解成明确的对象。系统设计人员用OODBMS创建的计算机模型能更直接反映客观世界,使得非计算机专业人员的最终用户也可以通过这些模型理解和评述数据库系统。这些都是传统数据库所缺乏的,正因为如此,OODBS更能在新兴应用领域中发挥作用。这些领域集中在以下几个方向:(1)工程应用领域:此领域(如CAD/CAM)涉及到的数据种类多,操作和数据间涉及的关系都极为复杂,由于面向对象数据库实现了无缝连接,能够支持非常复杂的数据模型,从而特别适用于工程设计领域;(2)多媒体应用领域:由于多媒体中数据种类很多,他们之间有复杂的联系使之成为一个整体,在多媒体领域这些要求也能在面向对象数据库中得到解决;(3)集成应用领域:随着计算机越来越集成,系统也跟着越发复杂,这要求多种应用的集成需要一个能适应不同应用要求的结构模型;(4)传统应用领域:近年来商业、事务处理的需求发生了很大的变化,而面向对象数据库很能适应这些新的变化,因此在传统领域面向对象数据库也有着重要的应用市场。

5 面向对象数据库存在的问题及解决方法初步探讨

5.1 面向对象数据库存在的问题

面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术。尽管目前已有大量的研究开发工作,有一些可支持的面向对象数据库系统,但面向对象数据库的成熟仍有存在许多亟待解决的问题:

(1)实现复杂性问题:在实现复杂性和思维复杂性问题上,面向对象模型和关系模型之间存在很大差距――关系模型构造集合以及在集合基础上发展出来的关系,对一个有数学基础的人而言其操作语义显然有思维简洁性,对计算机而言,关系运算可以递归并具有能行性的,计算简洁;而对面向对象模型而言,其思想主要是控制流为主导,也就是通过对象的行为,指引数据的传递。比如在服务驱动的分布式系统中,如SOA,其数据是用XML描述的,但由于其交互性,以及消息扮演的控制流的角色,导致用面向对象的传递信息方式不能发挥作用,所以在数据库的流程和运算上,OODB并不占优势。

(2)理论支持问题:面向对象数据库,并没有严格的理论支持。虽然对象间的关系有聚合、组合、关联、继承登,但这些并不是理论,而是实践结果。不能从理论上推导出这些关系,也就无法实现出支持这些关系的对象数据库。

(3)模型复杂度问题:由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。

(4)性能问题:由于面向对象数据库中数据被存放在许多地方,因此,有效对象聚集是性能好坏的关键因素。面向对象数据库技术要想能取代传统的数据库技术,性能改善是必不可少的。

5.2 解决方法初步探讨

就目前面向对象数据库而言,它与关系数据库之间的比较并不同与上世纪70年代关系数据库和网状数据库间不能共存的关系。而现在面向对象数据库的兴起是在肯定关系数据库在处理数据简洁性,适合商务用途的基础上的,它是对关系数据库的补充,例如工程和多媒体应用。

在一些不需要很强大计算能力的场所,例如配置一些信息等非业务数据时,可想而知,面向对象数据库将成为下一代数据库的典型代表,并与关系数据库系统并存。它们将在不同的应用领域支持不同的应用需求。

对象数据库需要快速索引能力,以从庞大的数据集中抽取数据。在这方面做得比较好的关系型数据库使用位图索引技术,但数据一旦更新,这些索引就需要重新建立。因为这个原因,很少有对象数据库有这个功能。如果能把关系数据库的索引技术经过一定的手段嵌套在对象数据库中,对象数据库的性能将能得到进一步的提高。

对于标准化,这应该是面向对象数据库发展的当务之急。早日形成关于对象关系的理论,形成一种类似与SQL语言的标准,对厂商加强约束力和实行指导作用,这对当下对象数据库的发展具有显著意义。

6 结束语

面向对象技术是近年来计算机技术界研究的热点,而面向对象方法与先进的数据库技术相结合已成为当今数据库领域研究和发展的主要方向之一。面向对象数据库经过较长时间的发展,已经取得一些关键的进展:业内对面向对象数据库的核心概念逐步取得了共同的认识,其标准化的工作正在进行中;随着核心技术逐步解决,工具正在开发,面向对象数据库管理系统正在走向实用阶段。

面向对象数据库技术对复杂对象既要有极强的表达和建模能力,又要有很强的存储和管理能力,这正是传统数据库技术面向复杂工程数据所难以胜任的关键技术。但由于面向对象模型本身固有的一些特征,业内对面向对象数据库性能和形式化理论的担忧仍然存在。总之,数据库系统发展的趋势是,面向对象数据库和关系数据库将不断融合,继承上述两者的优点,获得更快的发展,最终成为DBS发展的主流。

参考文献:

[1]Ian Graham著. 袁兆山译. 面向对象方法原理与实践[M]. 北京:机械工业出版社,2003,3.

[2]来羽,张华杰. 面向对象数据库的特点分析[J]. 河南科技,2010(9):58~59.

[3]Lombardoni.A. Towards a Universal Information platform: An Object-Oriented, Multi-user,Information Store[J]. PhD thesis,ETH Zurich, Zurich, Switzerland, 2006:99~105.

[4]Kobler.A, Norrie.M.C. OMS Java: Lessons Learned from Building a Multi-Tier object Management Framework[J]. Proceedings of Workshop on Java and Databases[J]. Persistence Options. 1999,11(2), Denver, CO, USA.

[5]季维岩.面向对象数据库及其实现方法研究[J] .科学技术与工程,2004(1):119~131.

[6]乔世权,张永强,赵金宝. 面向对象数据库研究[J]. 软件导航,2008(9):282~287.

[7]Supcik.J., Norrie. M.C.. An Object-oriented Database programming Environment for Oberon[C]. Proceedings of the Joint Modular Languages Conference, 1997, Linz, Austria.

[8]徐洁磐. 面向对象数据库系统及其应用[M]. 科学出版社,2003(11):4~89.

[9]M Blaha, W Pmmerlani, H She. Converting OO Models into RDBMS Schema[J]. IEEE Software. l994, I(f):28~39

[10](美)C. J.Date,孟小峰 译. 数据库系统导论(第七版)[M]. 北京:机械工业出版社,2000.

上一篇:肠内营养混悬液应用于老年吞咽困难患者的护理... 下一篇:妊娠高血压孕妇临床护理要素