APP下载

面向对象数据库技术分析*

2010-08-15桂早芳

黄冈职业技术学院学报 2010年1期
关键词:关系数据库数据库系统面向对象

桂早芳

(黄冈职业技术学院,湖北,黄冈,438002)

面向对象数据库技术分析*

桂早芳

(黄冈职业技术学院,湖北,黄冈,438002)

面向对象的数据库是数据库技术的发展方向,关系型数据库已显得力不从心。面向对象技术已经渗透到了数据库领域,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。

数据库;面向对象技术;设计思想

随着应用的日趋复杂和智能化,传统的关系数据库的缺点一点点的暴露出来,人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求,而这个解决方案极有可能就是面向对象数据库技术。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。在传统的关系数据库开发中,程序员难以从复杂的SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框架,如Hibernate,但程序员仍需要做大量的数据库代码工作),从而也无法从实质上提高工作效率。风格完全不同的面向对象技术则能够有效地改善这种状况。

1 面向对象数据库技术概述

面向对象是当前计算机界关注的重点,是一种新的认知方法学。它是一种支持模块化设计和程序重用的编程方法,把程序间的逻辑活动建立在对象间的消息传递之上,且设计上更加符合现实世界,更加自然,所以面向对象方法得到了更为广泛的应用。

面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统,是在现有关系数据库中加入许多纯面向对象的功能。在数据库中提供面向对象的技术是为了满足特定应用的需要。商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。

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

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

一种方法是把面向对象技术中的对象作为关系数据库系统中的一种新的数据模型。关系表中的属性值包含对象指针,对象数据的操作在关系数据库之外进行。把面向对象数据模型(ODM)和关系数据模型(RDM)结合起来,对关系数据库管理系统进行扩充,但对象查询功能受到一定的限制。

另一种方法是把面向对象接口添加到关系数据库中。在关系数据库系统中增加一个对象至关系转换器,将上层的面向对象模式转化为关系存储模式,存放到关系数据库中。面向对象技术通过映射接口和关系数据库相结合,设计这种类型的数据库需要理解对象到关系数据库表的映射方法。这种映射方法通过将对象类生成为SQL语言中的数据定义语言(DDL)来将对象转换成一个好的概念层的数据模型(DDL)[1]。这种实现方式使得数据库管理系统在实现关系模型和面向对象模型之间的模型转换时需要一定的开销,执行效率比直接面向对象数据库要低一些,但这种扩充方式实现比较容易。

面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。

2 面向对象数据库的优点

面向对象数据库是数据库技术与面向对象程序设计方法相结合的产物,由于同是面向对象方法学,所以其具有了所有面向对象的优点。同时,由于数据库主要操作的是集合(而不是单个数据),所以其又具有自身的特点和优点。

2.1 提高数据库开发效率

由于面向对象本身的亲和性,使得人们可以使用更自然的方式来开发数据库,而不必像关系数据库那样考虑到方方面面诸如规范到第几范式等等问题,大大的提高了开发效率。同时,因为加入应用也是面向对象的,将面向对象数据库中的对象直接映射到应用程序的对象中,数据库间的交互变得更加直接和方便。人们可以直接将数据库中的信息转换到基于面向对象技术应用程序的对象中,而且效率更高(因为无需中间层的转化),这样程序员就可以彻底的从持久层复杂的开发逻辑中解放出来,投入更为重要的业务逻辑开发中,而且再也不用写复杂的SQL语句,因为应用中的编程和数据库中的编程是一致的[2]。

2.2 数据库本身可以完成复杂的逻辑

目前,主流数据库都提供了过程化查询语言,但毕竟还是过程化的,它天生就不如面向对象方法高效简单,因此人们往往并不想使用过程化查询语言实现太复杂的逻辑,因为它将导致开发和维护困难,提升成本。由于使用了面向对象方法学,在数据库中编写复杂的逻辑变得简单了,人们可以在数据库中加入复杂的逻辑,而且可以和在应用中添加的逻辑相互衔接。这不仅使得程序的开发和维护变得简单,而且执行性能也得到了提升(因为在数据中实现的逻辑总比在应用中实现的逻辑快那么一两步)。在数据库中使用数据库查询语言实现复杂的基于面向对象的业务逻辑是面向对象数据库的一大亮点。

2.3 低冗余性和高效性

在关系数据库中,低冗余和高效一直是鱼和熊掌不可兼得的状态。低冗余往往会使得查询困难并最终导致数据库效率降低(因为将产生可观的笛卡尔集或者生成复杂的查询优化方案,从而降低效率)。而在面向对象数据库中,查询将变成对对象ID和消息的传递(也就是方法调用),从而消除了大范围的笛卡尔集带来的困扰,提高数据库的访问效率。同时,由于面向对象的封装性,使得面向对象数据库在设计程序时天生就已经达到了相当于关系数据库中的第三范式的设计准则。因此面向对象的数据库天生就是低冗余的。

2.4 提高软件的可重用性

原因很简单,因为面向对象的设计思想本来就要求你把业务逻辑封装到一个个对象中,并通过给它们传递消息调用业务逻辑计算。这样,你就不得不首先把一些通用的业务逻辑设计在一个个类中,下次使用只需调用它们即可。同时,面向对象方法还有继承该概念,继承使得功能可以从一个类直接扩展到它的子类中。另外,多态,动态联编等技术以及设计模式的应用使得代码的可复用性得到了最大限度的扩展[3]。

3 面向对象数据库技术在计算机领域应用方式

面向对象数据库系统可以应用于复杂的诸如人工智能等领域,也可以使用于传统的企业级应用。总之,面向对象数据库可以应用在所有关系数据库能够应用的地方,且在许多方面效能更高,比如人工智能和其他较为复杂的应用中。面向对象数据库技术在计算机领域中的应用主要有三种方式:

3.1 以关系数据库和SQL为基础的扩展关系模型

这种方式的优点是适宜于市场推广,缺点是无法做到纯粹的面向对象性。这个方式已经在各大主流数据库总得到实现,如Oracle、DB 2等。

3.2 以面向对象程序设计语言为基础

这种方式是以面向对象程序设计语言为基础的,研究持久的程序设计语言。这种方式的优点是它是纯粹的面向对象的,缺点是难以进行市场推广。

3.3 建立新的面向对象数据库

这种方式已经有一些实现,如法国O2 Technology公司的O2系统。优缺点与第二条路线一致,基于研究的目的,本文中的面向对象数据库的简易实现版本是以这种方式为基础的。

4 面向对象技术和数据库技术结合的三种发展途径[4]

4.1 面向对象数据库管理系统(OODBMS)

面向对象数据库管理系统以一种面向对象语言为基础,增加数据库的功能,主要支持持久对象和实现数据共享。利用类来描述复杂对象,利用封装方法来模拟对象行为,利用继承性来实现对象的结构和方法的重用。但是这种纯粹的面向对象数据库管理系统不能支持SQL语言,不能和现有的数据库结合起来,在扩展性和通用性方面受到限制。

4.2 对象关系数据库管理系统(ORDBMS)

对象关系数据库管理系统既支持SQL语句,也支持面向对象技术,实现了传统数据库技术和面向对象技术的完美结合。全球的数据库生产商争相研发这种数据库产品,数据库生产商竞争的一个焦点是如何在现有的数据库中加入面向对象技术。

4.3 对象关系映射数据库系统(ORMDBMS)

对象关系映射数据库系统是在对象层和关系层之间建立一个映射层,使得数据源中的关系数据能够进入对象领域,并且作为对象供上层应用使用。

5 小结

随着计算机技术的飞速发展,现有的关系数据库技术已不能满足计算机网络、多媒体技术、CAD/CASE等领域的需要,面向对象技术应用到现有的数据库中应运而生,面向对象技术和数据库技术结合应用的优势正日渐凸显出来。随着面向数据库技术的不断完善与日益成熟,它的应用也必将更加广泛,影响也必将更加深远。

[1]侠名.面向对象技术在数据库中的实现[J].eNet硅谷动力 ,2008:11~78.

[2]Alex Kriegel and Boris M.Trukhnov.SQL宝典[M].北京:电子工业出版社,2003:1~200.

[3]Bruce Eckel.Thinking In Java 4th[M].北京:机械工业出版社,2006:1~600.

[4]佚名.浅谈面向对象技术在数据库领域中的应用[N].eNet硅谷动力,2008:11~56.

Analysis on Object-oriented Database Technology

GUI Zao-fang
(Huanggang Polytechnic College,Huanggang,438002,Hubei)

Object-oriented database is the developing direction of the database technology.It is not efficient enough of the relational database for the complicated applications.Hopefully,Object-oriented technology has penetrated into the database field,combining the object-oriented methods with the database technology will make the analysis and design of the database system consistent in maximum to people’s understanding of the objective world.Mechanism of object-oriented database technology is not profound,but its design thought is much valuable.

Database;Object-oriented technology;Design thought

TP311.132.4

A

1672-1047(2010)01-0032-03

10.3969/j.issn.1672-1047.2010.01.10

2010-01-21

桂早芳,男,黄冈职业技术学院中专部讲师。

[责任编辑:罗幼平]

猜你喜欢

关系数据库数据库系统面向对象
关系数据库在高炉数据采集系统中的应用
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
实时数据库系统数据安全采集方案
面向对象Web开发编程语言的的评估方法
核反应堆材料数据库系统及其应用
基于面向对象的车辆管理软件的研制与开发
基于索引结构的关系数据库关键词检索
面向对象的SoS体系结构建模方法及应用
面向对象信息提取中影像分割参数的选择