收藏
0 有用+1
0

面向对象数据库系统

播报 讨论 上传视频
计算机程序
面向对象数据库系统是 面向对象的程序设计 技术与 数据库技术 相结合的产物·面向对象数据库系统的主要特点是具有 面向对象技术 的封装性和 继承性 ,提高了 软件 的可重用性·
中文名
面向对象数据库系统
外文名
Object oriented database system
英文简称
OODBS

数据特点

播报
编辑
面向对象程序 语言操纵的是对象,所以 面向对象数据库 (简称OODB)的一个优势是面向对象语言 程序员 在做程序时,可直接以对象的形式存储数据。对象数据模型有以下特点:
(1)使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统 。对象可以定义为对象的属性和对象的行为描述,对象间的关系分为直接和间接关系。(2)语义上相似的对象被组织成类,类是对象的集合,对象只是类的一个实例[6],通过创建类的实例实现对象的访问和操作。(3) 对象数据模型具有“封装”、“继承”、“ 多态 ”等基本概念[7]。(4) 方法实现类似于关系数据库中的 存储过程 ,但存储过程并不和特定对象相关联,方法实现是类的一部分。(5) 实际应用中,面向对象数据库可以实现一些带有复杂数据描述的应用系统,如时态和空间事务、多媒体 数据管理 等。

体系结构

播报
编辑
面向对象数据库管理系统 包括了 关系数据库管理系统 的全部功能,只是在面向对象环境中增加了一些新内容,其中有一些是关系数据库管理系统所没有的。面向对象数据库管理系统( C/S 即客户/服务器结构)主要由以下五个子系统组成。

发展

播报
编辑
自20世纪80年代来,OODBS的发展经历了主要三个阶段:(1)实验室原型阶段,很多原型产品于80年代末在实验室完成,它们大都具有较新的思路和大胆的设计但却缺乏实际应用的考验,代表产品有工业界Vbase和Orien等,学术界的Gemstone等;(2)初期 商业化 产品阶段,80年代末至90年代初,所推出的产品均具有 面向对象数据库管理系统 的基本特色和实际运用的能力,为OODBMS占领市场起了重大作用,但仍有许多缺陷;(3)成熟产品阶段,20世纪90年代中期至今,OODBMS的商业化趋于成熟,产品如Object Store、Ontos、O2、Jasmin等。

重要技术

播报
编辑
.数据库转换技术
由于关系数据库在当今数据库应用领域处于主导地位,而面向对象数据库如果要满足更高一级数据库要求,实现 异构数据库 之间数据库模式和操作的转换是一个关键研究课题。数据库转换技术包括 数据模式 技术和数据操作转换技术,转换时要保证一致性(对象语义和动作信息在转换过程中不丢失)。
模式演进技术
OODB的类为适应需求变化而随时间变化称为模式演进,包括创建新类、删除旧类、修改 类属性 和操作等模式演进必须保持模式一致性(模式自身内部不能有矛盾),这由模式一致性约束描述。模式一致性约束分为唯一性约束、存在性约束和子类型约束等,满足所有这些一致性约束的模式称为一致模式。模式演化是面向对象数据库研究重点与难点,实现途径一般有两种:模式改变考虑现有应用程序使二者相互集成和适应;开发新的 高级数据库 编程语言。
视图类实现技术
面向对象数据库中很多操作(如统计、 连接查询 和视图操作)都能自由访问数据库数据,这些操作益于实现视图操作及降低复杂度并提高效率,但易破坏对象封装性。为了不破坏对象封装性,必须对 面向对象数据库 的核心模型进行扩充,在对象中设计一组接口,系统通过这组接口完成视图操作,这样会增加对象复杂性和面向对象数据库系统设计难度,因此需要对这些接口实行标准化。基于上述条件,设计相应类数据结构和操作则可实现OODBS视图操作。
OODBS事务管理技术
OODBS事务 管理子系统 包括 死锁 管理器、锁管理器、恢复管理器和日志管理器几个部分。相比传统RDBS,OODBS加锁具如下特点:①加锁单位是对象而不是类;②给类对象加锁比给关系对象加锁需更多信息;③当类实例被加锁时,其父类也被加锁。OODBS采用粗粒度加锁具有很高的 并行性 ,加锁的一般是对象,若某一事务要访问同一类多数实例,则对整个类加锁,保证可靠性又降低系统开锁代价。另外,OODBS还具有恢复机制,其中包括多媒体日志恢复和索引页日志恢复两种。多媒体日志恢复是指OODBS把多媒体数据和其描述部分分开,后者通过对象标识符引用前者。若创建多媒体数据事务失败,则置空描述部分引用并复位。索引页日志恢复的方法有两种:一是分裂索引页的插入操作,系统把当前索引页一半表项分给新页,除拷贝的表项外其余都记录在日志中,发生故障时则去掉整个新页;二是合并索引页的删除操作,系统把当前索引页表项拷贝到新页,除了从当前页删除的表项外其余都记录在日志中,发生故障时则重新使用当前页。

应用

播报
编辑
面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的 无缝连接 。无缝连接即假设不使用数据库,而使用某种编程语言编写一个程序,可以基本不经任何改动地将它作用于数据库,即可以用编程语言透明访问数据库,就好像数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。
面向对象方法 综合了在关系数据库中发展的全部工程原理,以及系统分析、软件工程和 专家系统 领域的内容,符合一般人的 思维规律 ,将现实世界分解成明确的对象。系统设计人员用OODBMS创建的计算机模型能更直接反映客观世界,使得非 计算机专业 人员的最终用户也可以通过这些模型理解和评述 数据库系统 。这些都是 传统数据库 所缺乏的,正因为如此,OODBS更能在新兴应用领域中发挥作用。这些领域集中在以下几个方向:(1)工程应用领域:此领域(如CAD/CAM)涉及到的数据种类多,操作和数据间涉及的关系都极为复杂,由于面向对象数据库实现了 无缝连接 ,能够支持非常复杂的数据模型,从而特别适用于工程设计领域;(2)多媒体应用领域:由于多媒体中数据种类很多,他们之间有复杂的联系使之成为一个整体,在多媒体领域这些要求也能在面向对象数据库中得到解决;(3)集成应用领域:随着计算机越来越集成,系统也跟着越发复杂,这要求多种应用的集成需要一个能适应不同应用要求的结构模型;(4)传统应用领域:近年来商业、 事务处理 的需求发生了很大的变化,而面向对象数据库很能适应这些新的变化,因此在传统领域面向对象数据库也有着重要的应用市场。

存在的问题

播报
编辑
面向对象数据库 技术可望成为继关系数据库技术之后的新一代 数据管理技术 。尽管已有大量的研究开发工作,有一些可支持的面向对象数据库系统,但面向对象数据库的成熟仍有存在许多亟待解决的问题:
(1)实现复杂性问题:在实现复杂性和思维复杂性问题上, 面向对象模型 关系模型 之间存在很大差距——关系模型构造集合以及在集合基础上发展出来的关系,对一个有数学基础的人而言其操作语义显然有思维简洁性,对计算机而言, 关系运算 可以 递归 并具有能行性的,计算简洁;而对面向对象模型而言,其思想主要是控制流为主导,也就是通过对象的行为,指引数据的传递。比如在服务驱动的 分布式系统 中,如SOA,其数据是用XML描述的,但由于其 交互性 ,以及消息扮演的控制流的角色,导致用面向对象的传递信息方式不能发挥作用,所以在数据库的流程和运算上,OODB并不占优势。
(2)理论支持问题:面向对象数据库,并没有严格的理论支持。虽然对象间的关系有聚合、组合、关联、继承等,但这些并不是理论,而是实践结果。不能从理论上推导出这些关系,也就无法实现出支持这些关系的对象数据库。
(3)模型复杂度问题:由于模型较为复杂(而且缺乏数学基础),使得很多 系统管理 功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。
(4)性能问题:由于 面向对象数据库 中数据被存放在许多地方,因此,有效对象聚集是性能好坏的关键因素。面向对象数据库技术要想能取代传统的数据库技术,性能改善是必不可少的。 [1]