概述
对象关系数据库管理系统对象关系数据库管理系统是一种支持模块化设计和软件重用的实际可行的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系(或通信)上,从而完成所需要的计算。一个面向对象的程序就是相互联系(或通信)的对象集合。面向对象程序设计的基本思想是封装和可扩展性。
对象关系数据库管理系统支持面向对象数据模型(以下简称OO模型)。即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。
核心模块
对象关系数据库管理系统一个OO模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了OO模型的基础。概括起来,OO模型的核心概念有如下一些:
(1)对象(Object)与对象标识OID(ObjectIDentifier)。现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识(OID)。
(2)封装(Encapsulation)。每一个对象是其状态与行为的封装,其中状态是该对象一系列属性(Attribute)值的集合,而行为是在对象状态上操作的集合,操作也称为方法(Method)。
(3)类(C1ass)。共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的一个实例(instance)。
(4)类层次(结构)。在一个面向对象数据库模式中,可以定义一个类(如C1)的子类(如C2),类Cl称为类C2的超类(或父类)。子类(如C2)还可以再定义子类(如C3)。这样,面向对象数据库模式的一组类形成一个有限的层次结构,称为类层次。
(5)消息(Message)。由于对象是封装的,对象与外部的通信一般只能通过显式的消息传递,即消息从外部传送给对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结果仍以消息的形式返回。
功能
对象关系数据库管理系统OODB语言用于描述面向对象数据库模式,说明并操纵类定义与对象实例。OODB语言主要包括对象定义语言(ODL)和对象操纵语言(OML),对象操纵语言中一个重要子集是对象查询语言(OQL)。OODB语言一般应具备下述功能:
(1)类的定义与操纵。面向对象数据库语言可以操纵类,包括定义、生成、存取、修改与撤销类。其中类的定义包括定义类的属性、操作特征、继承性与约束等。
(2)操作/方法的定义。面向对象数据库语言可用于对象操作/方法的定义与实现。在操作实现中,语言的命令可用于操作对象的局部数据结构。对象模型中的封装性允许操作/方法由不同程序设计语言来实现,并且隐藏不同程序设计语言实现的事实。
(3)对象的操纵。面向对象数据库语言可以用于操纵(即生成、存取。修改与删除)实例对象。
还没有像SQL那样的关于面向对象数据库语言的标准,因此不同的OODBMS其具体的数据库语言各不相同。
种类
对象-关系数据库系统就是将关系数据库系统与面向对象数据库系统两方面的特征相结合。对象-关系数据库系统除了具有原来关系数据库的各种特点外,还应该提供以下特点:
(1)扩充数据类型,例如可以定义数组、向量、矩阵、集合等数据类型以及这些数据类型上的操作。
(2)支持复杂对象,即由多种基本数据类型或用户自定义的数据类型构成的对象。
(3)支持继承的概念。
(4)提供通用的规则系统,大大增强对象-关系数据库的功能,使之具有主动数据库和知识库的特性。
特点
将对象数据库管理系统(ODBMS)定义为一个集成了数据库能力与面向对象编程语言能力的数据库管理系统(DBMS),ODBMS使数据库对象看起来像是已有的一个或多个程序设计语言中的程序设计语言以象。——RickCattell,OMG-93委员会主席。
ODBMS在多用户客户机/服务器环境中提供了持久性存储器。ODBMS可以处理对象的并行访问,提供锁定和事务保护,保护对象存储器免遭各种类型的威胁,照管像备份和恢复之类传统任务。ODBMS这所以与关系数据库不同,是因为ODBMS存储的是对象,而不是表格。对象的引用通过持久性标识(PID)进行,PID可以独一无二地识别各个对象,可以用来在对象之间建立标记和容器关系。ODBMS还加强了封装,支持继承。ODBMS结合了对象属性和传统的DBMS功能,如锁定、保护、事务处理、查询、版式本、并发和持久性。