• 1.摘要
  • 2.基本信息
  • 3.简介
  • 4.基本技术
  • 4.1.数据库转换技术
  • 4.2.模式演进技术
  • 4.3.索引技术
  • 4.4.事务管理技术
  • 4.5.视图类实现技术
  • 4.6.版本管理技术
  • 4.7.安全建模技术
  • 5.优点
  • 6.问题
  • 7.参考资料

面向对象数据库

面向对象数据库系统(OODBS)支持定义和操作OODB,应满足两个标准:首先它是数据库系统,其次它也是面向对象系统。第一个标准即作为数据库系统应具备的能力(持久性、事务管理、并发控制、恢复、查询、版本管理、完整性、安全性)。第二个标准就是要求面向对象数据库充分支持完整的面向对象(OO)概念和控制机制。1

基本信息

  • 中文名

    面向对象数据库

  • 外文名

    object-oriented database(OODB)

  • 类型

    认识方法学

  • 其他称呼

    新的程序设计方法学

  • 优点

    易维护

简介

面向对象数据库系统(OODBS)支持定义和操作OODB,应满足两个标准:首先它是数据库系统,其次它也是面向对象系统。第一个标准即作为数据库系统应具备的能力(持久性、事务管理、并发控制、恢复、查询、版本管理、完整性、安全性)。第二个标准就是要求面向对象数据库充分支持完整的面向对象(OO)概念和控制机制。综上所述,我们将面向对象数据库简写为:面向对象数据库=面向对象系统+数据库能力。

面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。2

基本技术

数据库转换技术

异构数据库系统中各数据库模式和操作之间转换是一个关键研究课题。由于关系数据库系统主宰当今数据库应用领域,而面向对象数据库能满足更高一级数据库要求,所以有必要在这两种数据库模型中建立一种映射关系,实现模式和操作相互转换1

转换一般有两种途径:从关系DB到面向对象DB(RDBtoOODB)和从面向对象DB到关系DB(OODBtoRDB)。OODBtoRDB转换技术转换时要保证一致性(对象语义和动作信息在转换过程中不丢失)。转换包括数据模式和数据操作转换。

数据模式转换

对象标识符是对象存在的唯一标志,两个对象相同等价于其标识符相同。与关系模式不同的是面向对象中类属性分为原子属性、组合属性和集合属性。数据模式转换指从OODB到RDB数据描述语言(DML)的转换,基本思路是把父类属性扩展到所有子类中,每个类映射为一个关系;类的每个属性映射为它对应的关系属性。类中不同类型属性作不同处理。默认对象标识符属性映射为RDB关键字属性,原子属性映射为固定属性,组合属性映射为与主属性对应关系关键字相关的外关键字,集合属性映射为原子属性加上具有两个属性的关系,其中一个属性是设置与对应的集合属性的联系;另一个属性是处理集合元素。方法转换是数据模式转换的重要转换,方法有定义和调用。标准RDB无支持用户自定义函数和过程的机制,近年来一些商业化RDBMS提供这方面的功能,称为PSM子程序(包含用户自定义函数和过程)。标准PSM子程序至少支持以下两种功能:

①创建用户自定义函数,并从标量表达式中调用此函数;

②创建用户自定义过程,并通过一个新的SQL语句(典型的是CALL)调用这些过程。

继承性是OODBMS典型特性,M.Blaha提出四种借助关系表处理继承性的方法,其核心是把分层结构中的每个类转换为一张表。

数据操作转换

数据模式转换是指从OODB到RDB数据操纵语言(DCL)的转换。本文从OODB to RDB角度讲述。数据库常用操作有数据查询、插入、删除和修改,它们都离不开限制条件,所以先讲述限制条件转换。

我们用imageimage分别表示类限制条件和关系限制条件。相比之下,imageimage多两个机制:路径表达式操作数机制和集合操作数及运算符。通过直接设置类C某些属性及以类C为根类组合层次结构中的限定谓词得到image。根据image我们得到一个类限定图GC,同样每一个image也对应一个关系限定图GR。实施限制条件转换时,通常是先根据image构造image,然后把GC转换成GR,最后由GR产生image。数据查询转换是把对象查询运算转换为关系查询运算。其过程是从指定的类和(或)它的所有子类映射关系中选出与image限定对象对应的元组(由关系限定条件image所限定)。

数据修改转换是把对象修改运算转换为关系修改运算。该操作受QR(由image映射得到)限定,过程是删除所有旧元组后再插人新元组。数据插入转换与此相似。数据删除转换是把对象删除运算转换为关系删除运算,该操作受image(由QC映射得到)限定,此时必须把与这些组合对象对应的元组中那些外关键字属性设置为NULL。

模式演进技术

面向对象数据库中的类为适应需求变化而随时间变化称为模式演进,包括创建新类、删除旧类、修改类属性和操作等。模式演进必须保持模式一致性(模式自身内部不能出现矛盾),这通过模式一致性约束来描述。模式一致性约束可分为唯一性约束(同一模式中名字唯一)、存在性约束(显示引用的成分须存在)和子类型约束(子类和父类的联系不可有环,不能有从多继承带来的任何冲突等)等,满足所有这些一致性约束的模式称为一致模式。模式演化历来是面向对象数据库研究的重点与难点。其解决途径一般有以下两种:

①模式改变考虑现有应用程序,使两者相互集成和适应。