当前位置:文档之家› 面向对象数据库技术探讨

面向对象数据库技术探讨

计算机与网络创新生活 网络技术 

面向对象数据库技术探讨 

朱永昌 

(金昌市公安局武威路派出所甘肃金昌737100) 

【摘要】面向对象的数据库极有可能是数据库发展的方向,关系型数据库已显得力不从心,面向对象技术已经渗透到了数 

据库领域,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一 

致。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。 

【关键词】数据库面向对象技术 

中图分类号: 文献标识码:A 文章编号:1008—1739(2010)07—63—3 

Discussing Obj ect-oriented database technology 

ZHUYong——chang 

(Jinchang Municipal Public Security Bureau,Jingchang Gamu 737100,China) 

Abstract:Object—oriented database May be direction of the database development.It is not efficient enough of relational database 

for the complicated applications.Hopefully,Object—oriented technology has pene ̄ated into the database field,combining to The ob— 

ject-oriented methods and database technology will make the database system analysis and design to Consistent Maximumly With 

people S undentanding of the objective world.Mechanism of object—oriented database technology is not profound,but its design ideas 

is much valuable. 

Key words:Database Object—oriented Relational database technology 

1引言 

随着应用的日趋复杂和智能化.传统的关系数据库的缺 点一点点的暴露出来,人们迫切希望产生一种新的数据库解 

决方案来适应这些复杂需求。一种新的解决方案呼之欲出。而 

这个解决方案极有可能就是面向对象数据库技术。面向对象 

数据库的技术机理并不高深。但它的设计思想却极有价值。在 

传统的面向对象应用开发中,由于传统的关系数据库开发风 

格完全不同于面向对象风格。使得许多程序员难以从复杂的 

SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框 

架,如Hibernate,但程序员仍需要做大量的数据库代码工作), 

从而也无法从实质上提高工作效率。 

定稿日期:2010-02-26 2面向对象数据库技术概述 

面向对象是当前计算机界关心的重点,面向对象是一种 

新的方法学,也是一种认知方法学。它是一种支持模块化设计 

和软件重用的实际可行的编程方法。它把程序间的逻辑活动 

建立在对象间的消息传递之上,且设计上更加符合现实世界, 

更加自然,所以面向对象方法得到了更广泛的应用。 

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

产生的新一代数据库系统。在数据库中提供面向对象的技术 

是为了满足特定应用的需要。随着许多基本设计应用(如 

MACD和ECAD)中的数据库向面向对象数据库的过渡,面向 

对象思想也逐渐延伸到其它涉及复杂数据的应用中.其中包 

括辅助软件工程(CASE1、计算机辅助印81](CAP)*I]材料需求计 

 ̄1](MRP)。这些应用如同设计应用一样在程序设计方面和数 

据类型方面都是数据密集型的,它们需要识别于类型关系的 

2010年第07期《计算机与网络

》 : I ̄IJlIIP,IIII,]I [t,lli*lRO]l++l 1『r 兽 帆 _1 删 臻 例 新 年 / 

存储技术,并能对相近数据备份进行调整。 查询语言实现太复杂的逻辑,因为它将导致开发和维护困难, 还有许多应用要求多媒体数据库。它们要求以集成方式 提升成本。在数据库中使用数据库查询语言实现复杂的基于 

和文本或图形信息一起处理关系数据,这些应用包括高级办 面向对象的业务逻辑是面向对象数据库的一大亮点。这不仅 

公室系统的其它文档管理系统。面向对象数据库从面向程序 使得程序的开发和维护变得简单,而且执行性能也得到了提 

设计语言的扩充着手使之成为基于面向对象程序设计语言的 升(因为在数据中实现的逻辑总比在应用中实现的逻辑快那 

面向对象数据库。例如:ONTOS、ORION等,它们均是c++ 么一两步)。 

的扩充,熟悉c++的人均能很方便地掌握并使用这类系统。 (3)低冗余性和高效性 

面向对象数据库研究的另~个进展是在现有关系数据库中加 在关系数据库中,低冗余和高效一直是鱼和熊掌不可兼 

入许多纯面向对象数据库的功能。在商业应用中对关系模型 得的状态。低冗余往往会使得查询困难并最终导致数据库效 

的面向对象扩展着重于性能优化,处理各种环境的对象的物 率降低(因为将产生可观的笛卡尔集或者生成复杂的查询优 

理表示的优化和增加SQL模型以赋予面向对象特征。如 化方案,从而降低效率)。而在面向对象数据库中,查询将变成 

UNISQL、02等,它们均具有关系数据库的基本功能。采用 对对象ID和消息的传递(也就是方法调用),从而消除了大范 

类似于SQL的语言,用户很容易掌握。 围的笛卡尔集带来的困扰,提高数据库的访问效率。同时,由 

于面向对象的封装性,使得面向对象数据库在设计程序时天 

3面向对象数据库的优点 生就已经达到了相当于关系数据库中的第三范式的设计准 

则。因此面向对象的数据库天生就是低冗余的。 

面向对象数据库是数据库技术与面向对象程序设计方法 (4)提高软件的可重用性 

相结合的产物,由于同是面向对象方法学,所以其具有了所有 原 很简单,因为面向对象的设计思想本来就要求你把 

面向对象的优点。同时,由于数据库主要操作的是集合(而不 业务逻譬封装到一个个对象中,并通过给它们传递消息调用 

是单个数据),所以其又具有自身的特点和优点。 业务逻辑计算。这样,你就不得不首先把一些通用的业务逻辑 (1)提高数据库开发效率 设计在一个个类中,下次使用只需调用它们即可。同时,面向 

由于面向对象本身的亲和性,使得人们可以使用更自然 对象方法还有继承该概念,继承使得功能可以从一个类直接 

的方式来开发数据库,而不必像关系数据库那样考虑到方方 扩展到它的子类中。另外,多态,动态联编等技术以及设 模 

面面诸如规范到第几范式等等问题,大大的提高了开发效率。 式的应用使得代码的可复用性得到了最大限度的扩展嘲。 

同时.由于面向对象开发的流行.人们往往更热衷于使用面向 对象的方式思考问题。这也无形中提高了数据库系统的开发 4面向对象方法学在计算机领域中的 

效率。再有,应用于数据库间的交互将变得更加直接和方便,J立用 

因为加入应用也是面向对象的,那么可以将面向对象数据库 

中的对象直接映射到应用程序的对象中。比如当前J2EE开发 面向对象数据库系统可以应用于复杂的诸如人工智能等 

中流行的EJB以及开源的Hibernate等框架技术就是在关系 领域,也可以使用于传统的企业级应用。总之,面向对象数据 数据数据库与面向对象间搭桥方面做了积极的工作。而对于 库可以应用在所有关系数据库能够应用的地方。且在许多方 面向对象数据库来数,EJB和Hibernate等中间技术将显得无 面效能更高。比如人工智能和其他较为复杂的应用中。面向对 用,人们可以直接将数据库中的信息转换到基于面向对象技 象数据库现在已经存在一些实现,主要是三条路线: 术应用程序的对象中,而且效率更高(因为无需中间层的转 (1)以关系数据库和SQL为基础的扩展关系模型 

化)。程序员可以彻底的从持久层复杂的开发逻辑中解放出 这种方式的优点是适宜于市场推广,缺点是无法做到纯 来,投入跟为重要的业务逻辑开发中,而且再也不用写复杂的 粹的面向对象性。这个方式已经在各大主流数据库总得到实 SQL语句,因为应用中的编程和数据库中的编程是一致的Ⅲ。 现.如Orade、DB 2等。 (2)数据库本身可以完成复杂的逻辑 (2)以面向对象程序设计语言为基础 

由于使用了面向对象方法学,在数据库中编写复杂的逻 这种方式是以面向对象程序设计语言为基础的,研究持 辑变得简单了,于是,人们可以在数据库中加入复杂的逻辑, 久的程序设计语言。这种方式的优点是它是纯粹的面向对象 而且可以和在应用中添加的逻辑相互衔接。目前,主流数据库 的,缺点是难以进行市场推广。 都提供了过程化查询语言,但毕竟还是过程化的,它天生就不 (3)建立新的面向对象数据库 

如面向对象方法高效简单,因此人们往往并不想使用过程化 这种方式已经有一些实现,如法国02 Tecllll0logy公司 

\ 

《计算机与厨络>2010年第07期 网络技术 

七卜 笛 素n.量 l弼 络 囱l塞 士: 活__.Ⅲ,.m旧r啊a日 :——, 

的02系统。优缺点与第二条路线一致,基于研究的目的,本 关系数据库系统中增加一个对象至关系转换器,将上层的面 

文中的面向对象数据库的简易实现版本是以这种方式为基础 向对象模式转化为关系存储模式.存放到关系数据库中。这 的。 样,在面向对象的数据库中关系存储模型位于底层.数据库用 

户可以利用标准的面向对象数据库语言进行查询处理.用户 5面向对象技术和数据库技术的结合 输入的面向对象数据库语言被转换成关系数据库语言,从而 

沿着三种途径发展 喜 暑 薹茎墨 

在实现关系模型和面向对象模型之间的模型转换时需要一定 (1)面向对象数据库管理系统(ooDBMs) 的开销,执行效率比直接面向对象数据库要低一些.但这种扩 面向对象数据库管理系统以一种面向对象语言为基础, 充方式实现比较简单。下面主要介绍一下第二种方式是如何 增加数据库的功能,主要支持持久对象和实现数据共享。利用 实现的: 类来描述复杂对象,利用封装方法来模拟对象行为,利用继承 面向对象技术通过映射接口和关系数据库相结合。面向 性来实现对象的结构和方法的重用。但是这种纯粹的面向对 对象数据库强调的是对象的属性、方法和对象间的关系,设计 象数据库管理系统不能支持SQL语言,不能和现有的数据库 这种类型的数据库需要理解对象到关系数据库表的映射方 

结合起来,在扩展性和通用性方面受到限制。 法。这种映射方法通过将对象类生成为SQL语言中的数据定 (2)对象关系数据库管理系统(oRDBMs) 义语言(DDL)来将对象转换成一个好的概念层的数据模型 对象关系数据库管理系统既支持SQL语句,也支持面向(DDL)。 对象技术,实现了传统数据库技术和面向对象技术的完美结 

曼 竺兰7结束语 产商竞争的一个焦点是如何在现有的数据库中加入面向对象 ’ … 

技术。 (3)对象关系映射数据库系统(oRMDBMs) 随着计算机技术的飞速发展,现有的数据库技术不能满 对象关系映射数据库系统是在对象层和关系层之间建立 足计算机网络、多媒体技术、CAD/CASE等领域的需要,面向 

一个映射层,使得数据源中的关系数据能够进入对象领域。并 对象技术应用到现有的数据库中应运而生。面向对象技术和 且作为对象供上层应用使用。 数据库技术结合的三种途径以及面向对象技术应用到数据库 中的优势,通过在关系数据库中增加一个对象至关系转换器. 

6面向对象技术在数据库中的实现 蠹 茎 三 关系数据库中来实现面向对象技术在 

将面向对象技术应用到关系数据库中可以有两种方式: 

一种方式是把面向对象技术中的对象作为关系数据库系统中 参考文献 的一种新的数据模型。关系表中的属性值包含对象指针,对象 [1】AIex Kriege1 and Boris M.Trukhn0v.SQL宝典【M】.北 数据的操作在关系数据库之外进行。把面向对象数据模型 京:电子工业出版社,2003. (oDM)和关系数据模型(RDM)结合起来,对关系数据库管 【2】Bruce Ecke1.Thinking In Java 4th[M】.北京:机械工 理系统进行扩充,但对象查询功能受到一定的限制。 业出版社.2006. 另一种方式是把面向对象接口添加在关系数据库中.在 

微软推Visual Studio2010软件能驱动世界 

据国外媒体报道,微软在12日发布最新的Visual Studio 我们所使用的设备以及与之交流的系统就知道了。所有的东 2010软件开发平台及.Net Framework 4,并宣称软件将驱动整 西都有软件驱动,开发者仅仅是使得这一切发生的人而已。正 

个世界,开发者不过是软件背后的引擎而已。 如我所说,软件驱动这个世界,意味着开发者就是驱动这个世 据悉,这两项技术经过开发者一个很长的试用期,在12 界的弓I擎 

日终于正式面对用户。 微软高层还盛赞Visual Studio 2010基于代码编辑器的 

微软服务器及开发工具部门总裁鲍勃・穆格里亚(Bob Windows Presentation Foundation。微软公司高层指出。Visual Muglia)在拉斯维加斯Visual Studio 2010的揭幕仪式中说: Studio 2010能够构建其它微软技术的利用能力。例如share一 “毫无疑问,软件将驱动整个世界。看看你的周围所有的事物、Point协作平台、Windows 7 OS以及Silver1ight技术等。 

2010年第07期《计算机与两络》

相关主题