《25第25章 对象 关系数据库》.pdf
文本预览下载声明
下载
第25章 对象/关系数据库
25.1 引言
在本书第 6版出版后五年左右的时间里,一些厂商已经发布了“对象 /关系”D B M S产品
(在市场上被称为是通用服务器)。例如D B 2 的通用数据库版,I n f o r m i x动态服务器的通用数据
选件以及Oracle 8i 的通用服务器、数据库服务器或企业服务器(这三个名字都在使用)。在这
些产品中广泛的思想是产品能够同时支持对象和关系;换句话说,这些产品试图将这两种技
术结合起来。
作者认为这种结合应该以关系模型作为坚实的基础(毕竟如本书第二部分中所谈到的,关
系模型是现代大多数数据库技术的基础)。所以,我们希望能够在关系系统发展过程中 加入
对象系统的新特性 (我们当然不希望完全放弃整个关系系统,也不希望将这两种系统分开处理)。
其他许多作者也支持这一观点,包括《第三代数据库系统宣言》 [ 2 5 . 3 4 ]的作者;他们认为第三
代D B M S必须包容第二代 D B M S 。在这里第一代D B M S 是指关系以前的数据库系统,第二代
D B M S是指S Q L系统,而第三代D B M S 是指未来的系统。然而,某些对象系统的作者并不支持
这一观点。这里引用一段较为代表性的话:
在计算机科学中已经产生了许多代数据管理方式,从开始的索引文件到后来的网
状和层次D B M S ……,再到最近的关系D B M S ……。目前我们正处在新一代数据库系统
的开始点……,这种系统提供对象管理并支持更复杂的数据[25.4]。
在这里作者明确地认为:就像关系系统代替更早的层次和网状系统那样,对象系统也将
代替关系系统。
我们不同意这一观点的理由在于关系是完全不同的 [ 2 5 . 1 3 ] ,它并不针对特定的环境;而
老的层次和网状系统却是基于特定环境的,它们也许能解决某些重要的问题,但却不具备牢
固的理论基础。然而不幸的是,早期关系系统的支持者们—包括作者本人在内—对关系
和关系以前的系统的优缺点比较存在着很大的分歧;这些争论在当时是必要的,但是实际上
却起了不良的后果,使人觉得关系和关系以前的 D B M S在本质上是同一事物。这一错误的思
想支持了以上引文中的观点—关系系统到对象系统与层次和网状系统到关系系统相类似。
对象系统到底是什么?它们是基于特定环境的吗?《面向对象数据库系统宣言》 [ 2 4 . 1 ]中
对此做了很好的说明:“关于系统的详细规范,我们采用一种达尔文方式:我们希望通过构建
一系列实验原型,自然而然生成适当的对象模型”。换句话说,作者认为我们不需要预定义模
型,而是应该先编写代码并构建系统来看看结果到底如何!
在下文中,我们将始终贯彻我们的观点,即通过在关系系统中加入对象技术的优秀特性
注意我们感兴趣的是发展而非完全的变革。相反,在关于 O D M G 的[ 2 4 . 1 3 ] 中认为:“对象D B M S是数据库
世界的一场革命而非进化式的发展”。我们不认为数据库市场已经为这场革命做好了准备,我们也不认为
应该有这样一场革命—这也是第三次宣言[ 3 / 3 ]认为其本质上是进化式发展而非完全变革的原因。
638使用第六部分 对象和对象/ 关系数据库
下载
来增强其性能。再次声明,毕竟关系技术已经研究了三十多年,我们绝不希望完全放弃这一
技术。
在第2 4 章中我们已经论证—可见[ 2 5 . 2 3 ] 中的相关叙述—面向对象只包含一种好的思
想,那就是适当的数据类型支持 (或者说是两种好的思想,如果将类型继承单独算的话)。所
以我们遇到的问题是:如何将适当数据类型支持这一特性融入到关系模型中?当然,答案很
简单,这种支持已经以域的形式存在了(我们仍倾向于将其称为类型)。换句话说,为了加入
对象功能我们并不需要在关系模型中增加任何东西,除了将其完整地实现;而现在大多数系
统在实现上都不是很成功 。
所以,我们认为一个真正支持域的关系系统应该能够处理所有那些所谓的对象系统才能
够处理而关系系统处理不了的数据类型:时间序列数据、生物数据、金融数据、工程设计数
据、办公自动化数据,等等。同时,我们还认为一个真正
显示全部