首页 百科知识 对象关系数据库

对象关系数据库

时间:2022-10-17 百科知识 版权反馈
【摘要】:对象关系数据库系统允许用户在关系数据库系统中定义复杂数据类型,即允许用户根据应用需求自己定义数据类型、函数和操作符。对象关系数据库系统要支持的规则将更加通用、更加灵活,并且与其他的对象关系能力是集成为一体的。相对于面向对象数据库具有比较高的性能,可以利用关系数据库的成熟技术及其研究成果;相对于关系数据库,对象关系数据库能力更强,能更好地满足应用需求。

10.2.3 对象关系数据库

随着面向对象技术的成熟,人们花费大量精力来研究面向对象数据库技术,虽然面向对象数据库技术取得了巨大的进步,并且在很多领域中开始得到应用,但是面向对象数据库还不能和传统关系数据库相比,更谈不上取代了。造成这种情况的原因主要有以下几种:

(1)虽然现在已经提出了一些面向对象数据库标准,但是面向对象数据库技术还缺乏理论的支持,没有统一的数据模型,人们对面向对象技术在概念和原理上还没有取得完全一致,而且面向对象数据库系统在程序接口、对象实现、对查询的支持等方面都存在差异,这给OODBMS的应用程序开发、移植等都造成了不良的影响。

(2)在一些方面无法与关系数据库抗衡。由于底层实现采用面向对象的编程方法,导致对视图不支持,模式演化艰难,而且现有的面向对象数据库语言也未能做到与SQL的兼容。

(3)与原来的关系数据库差异较大,无法做到对它的兼容。很多地方原来运行的都是关系数据库,要将原来的关系数据库转换成面向对象数据库是一个很困难的事情。不但要重新设计数据模式、转换数据和对数据库进行正确性检验,还要修改和调整原来数据库上开发的应用程序,而且人员需要重新培训,以适应和熟悉新的数据库环境,花费是巨大的。

由于以上几个原因使得面向对象数据库遇到了一定的困难,发展缓慢,因此人们在研究面向对象数据库的同时,也开始研究如何在传统的关系数据库的基础上扩展,使其支持面向对象数据类型,这就是对象关系数据库。

一、对象关系数据库的功能

对象关系数据库系统实际上是在关系数据库系统上增加了面向对象的功能,由于对象关系数据库系统目前在功能上还没有一个统一的规范,因此它除了具有原来关系数据库的各种功能外还具有下面一些功能:

(1)支持复杂数据类型和扩充数据类型

对象关系数据库系统可以支持多种复杂的数据类型,如聚合类型,它们包括集合、数组、列、包及元组等多种类型;几何拓扑类型,对象关系数据库系统中允许出现表示平面以及三维空间的几何拓扑类型;时间类型,对象关系数据库系统中允许出现表示date(年、月、日)、time(时、分、秒)以及时间戳等时间类型;度量衡类型,对象关系数据库系统中还允许出现表示度量衡等类型,如表示长度、质量等多种度量衡以及其转换规则。

目前的商品化RDBMS只支持某一固定的类型集,不能依据某一应用所需的特定数据类型来扩展其类型集。对象关系数据库系统允许用户在关系数据库系统中定义复杂数据类型,即允许用户根据应用需求自己定义数据类型、函数和操作符。

(2)支持复杂对象

能够在SQL中支持复杂对象。复杂对象是指由多种基本数据类型或用户自定义的数据类型构成的对象。

(3)支持继承的概念

能够支持子类、超类的概念,支持继承的概念,包括属性数据的继承和函数及过程的继承;支持单继承与多重继承;支持函数重载(操作的重载)。

(4)提供通用的规则系统

能够提供强大而通用的规则系统。规则在DBMS及其应用中是十分重要的,在传统RDBMS中用触发器来保证数据库数据的完整性。触发器可以看成是规则的一种形式。对象关系数据库系统要支持的规则将更加通用、更加灵活,并且与其他的对象关系能力是集成为一体的。例如规则中的事件和动作可以是任意的SQL语句,可以是用户自定义的函数,规则能够被继承等。这就大大增强了对象关系数据库的功能,使之具有主动数据库和知识库的特性。

二、对象关系数据库的实现

实现对象关系数据库系统的方法主要有以下五类:

(1)从基础开始开发一种全新的对象关系数据库系统,用这种方法开发出来的系统不会出现兼容方面的问题,但是抛弃现有的成果,开发比较费力,所以基本上不可行。

(2)在现有的关系型DBMS基础上进行扩展。因为现在关系数据库技术比较成熟,所以这种方法容易实现。扩展方法有两种:一种是对关系型DBMS核心进行扩充,逐渐增加对象特性。这是一种比较安全的方法,新系统的性能往往也比较好。另外一种是不修改现有的关系型DBMS核心,而是在现有关系型DBMS外面加上一个包装层,由包装层提供对象关系型应用编程接口,并负责将用户提交的对象关系型查询映射成关系型查询,送给内层的关系型DBMS处理。采用这种方法系统效率会因包装层的存在受到影响。

(3)将现有的关系型DBMS与其他厂商的对象关系型DBMS连接在一起,使现有的关系型DBMS直接而迅速地具有对象关系特征。连接方法主要有两种:一种是关系型DBMS使用网关技术与其他厂商的对象关系型DBMS连接。但网关这一中介手段会使系统效率降低。另一种是将对象关系的引擎与关系型存储管理器结合起来,即以关系型DBMS作为系统的最底层,具有兼容的存储管理器的对象关系型系统作为上层。

(4)将现有的面向对象型DBMS与其他厂商的对象关系型DBMS连接在一起,使现有的面向对象型DBMS直接而迅速地具有对象关系特征。连接方法是将面向对象型DBMS引擎与持久语言系统结合起来。即以面向对象的DBMS作为系统的最底层,具有兼容的持久语言系统的对象关系型系统作为上层。

(5)扩充现有的面向对象的DBMS使之成为对象关系型DBMS。

上述五类实现方法中最主要和最有效的是对现有的关系型DBMS核心进行扩展,增加对象特性,使之逐渐成为对象关系数据库系统。

三、对象关系数据库的优点

根据上述的介绍,对象关系数据库具有以下优点:

(1)具有关系数据库的优点:支持透明的存储路径,通过标准的SQL可以完成对类型、对象视图、对象引用、表、存储过程等数据库对象的管理,提供对事务、恢复、数据完整性的支持。

(2)具有面向对象数据库的一些优点,容易表达各种复杂的关系。

(3)相对于面向对象数据库具有比较高的性能,可以利用关系数据库的成熟技术及其研究成果;相对于关系数据库,对象关系数据库能力更强,能更好地满足应用需求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈