14.4.1 面向对象数据库系统的特征

2025-06-09 00:39:35 更新

数据库的特征依赖于实际应用,所设计的数据库语言必须允许用户方便地使用这些特征,数据库的结构也应能有效地支持这些特征。本节结合面向对象的程序设计方法,讨论面向对象

数据库系统与传统数据库系统相区别的主要特征。

(1) 面向对象数据库系统应该具有表达和管理对象的能力。面向对象数据库系统通过对象及它们之间的相互联系来描述现实世界。它应该支持对象标识,使得对象的存在不依赖于本身的值,而只依赖于它的标识,对象间能够通过对象标识而相互区分。类的层次和继承是一个关键的概念,新的类允许从以前定义过的类那里继承结构和操作。因此在面向对象数据库系统中,新的对象类型可以简便地重用已有的类型定义。面向对象数据库系统的一个问题是如何表示对象间的联系。在ODMG2.0 (Object Database Management Group,对象数据库管理组)标准中,提出了用一对反向引用来表示二元关系,即把与某个对象相关的对象的标识放在那个对象内部,并维护参照完整性。

(2) 面向对象数据库系统中的对象可以具有任意复杂度的对象结构。这使对象能够包含所有描述该对象的必要信息。传统数据库恰好与此相反,它把关于复杂对象的信息分散在许多关系或记录中,从而丧失了现实世界的对象与数据库表示之间的直接对应关系。在面向对象数据库系统中,允许逐步细化复杂实体,还能将整个复杂对象或其子集作为一个独立的单位,可以在某一时刻将一成员对象加进去。

(3) 面向对象数据库系统必须具有与面向对象编程语言交互的接口。面向对象程序设计中的对象是瞬态对象,只在程序执行过程中存在,而面向对象数据库可以延长对象的存在,把对象持久地存储起来。对象在程序结束之后仍然持续存在,以后可以被检索或被其他程序使用。面向对象数据库系统通过与面向对象编程语言交互的接口,可以提供持久化对象和共享对象的能力,从而允许多个程序和应用共享这些对象。

(4) 面向对象数据库应具有表达和管理数据库变化的能力。管理同一对象的多个版本的能力对于设计和工程应用是至关重要的。一个对象的旧版本代表一个已经通过测试和鉴定的设计方案,那么应该保存这个版本直到新版本通过测试和鉴定。除了允许版本变化外,面向对象数据库系统也应该允许模式演变。所谓模式演变,是指类的声明发生了变化,或创建了新的类或联系。

综上所述,一个面向对象数据库系统首先应是一个数据库系统,同时又必须具有面向对象的特征。