时间:2022-11-02 06:30:01 | 来源:信息时代
时间:2022-11-02 06:30:01 来源:信息时代
面向对象数据库管理系统 : 基于面向对象数据模型,提供面向对象数据库语言,支持面向对象数据库设计,实现复杂数据管理的数据库管理系统。开发面向对象数据库管理系统基本上采用以下三种途径:
(1)面向对象程序设计语言的持久化: 这种面向对象数据库系统的实现方法是充分利用面向对象程序设计语言的编程能力,以其为核心,增加传统数据库的功能,使其成为具有持久性数据管理能力的程序设计语言,形成面向对象数据库管理系统。这一途径主要采用ODMG标准,典型产品有Gemstone和ObjectStore等。
Gemstone系统是美国Servio Logic公司自1986年开始开发的面向对象数据库系统。它支持对象标识、复杂对象和大对象。其数据库语言合成数据定义与操作,是一种可扩展的、计算完备的语言,支持对象封装、类、继承和滞后联编(late binding)。Gemstone系统采用客户/服务器(C/S)结构,提供异构的分布式处理能力。Gemstone系统提供了C、C++、Smalltalk语言的接口。
ObjectStore是美国Object Design公司于1989年推出的面向对象数据库产品。它的优点在于将C++与数据库功能充分相结合,用对象的概念将两者统一,将对象区分为临时性和持久性两种,C++中的对象为临时性对象,数据库中对象为持久性对象,这种方法将C++与数据库统一于面向对象基本概念之中,同时又能够以相同形式统一表示,使得C++与数据库功能融为一体。
(2)关系数据库管理系统的对象化: 这一途径的思想是以关系数据库为核心,增加面向对象技术,使之具有面向对象数据库管理功能。这种方法主要是将关系数据库的类型系统开放,允许用户定义自己的抽象数据类型。这是一种十分自然的研发方法,其原因在于关系数据库系统积累了相当成功的经验,并为业界广泛接受,若将成熟的关系数据库与面向对象思想结合起来,并在保持现有数据库功能的基础上适应新的应用需求,可以减少研制的工作量,缩短研制周期。这种途径普遍采用SQL-3标准。
美国加州大学Berkeley分校研制的对象关系数据库Postgres是这种途径的典型代表系统。它开放源码,提供多版本并发控制,支持几乎所有SQL构件(包括子查询、用户定义类型和函数等),并且可以获得多种语言绑定(包括C,C++,Java,perl,tcl和python)。
(3)纯粹面向对象数据库管理系统: 这种途径的构思是基于面向对象数据模型,一切从零开始,独立开发面向对象数据库管理系统。该方法将面向对象技术与数据库技术结合起来,从支持对象存储管理器开始构造完全体现面向对象特征的数据库系统,消除了数据库系统与应用之间的语义断层,从而使面向对象数据库系统结构更清晰,效率更高。典型代表系统有Iris、O2等。
Iris是在20世纪90年代初,由惠普实验室(Hewlett-Packard Laboratories)开发的面向对象数据库管理系统。开发Iris的目的是增强数据库程序员的生产力和对将来各种应用提供支持,比如在工程信息管理、工程测试与测量、知识库系统方面等。
O2是O2 Technology公司于1991年推出的面向对象数据库管理系统,其面向对象表示能力强,同时数据库管理功能也很完整,并有一套完整的开发工具。O2不仅能用于传统的商务与事务应用,而且适用于一些新的应用领域,如CAD/CAM、地理和城市系统、编辑信息系统和办公自动化等。
O2系统的体系结构如图 1所示,其核心是O2Engine。O2Engine存储结构化多媒体对象。它控制磁盘管理(包括缓冲区、索引、聚簇和I/O)、数据分布、事务管理、并发控制、故障恢复和数据安全。
O2Engine能支持两种类型的接口:语言接口(C和C++)和O2环境。语言接口使C或C++程序通过声明O2模式、组装和操作O2数据库的方式来利用O2Engine的服务。用户可以利用完全的O2环境。这个环境包括: 一种查询语言O2Query; 一个用户接口生成器O2Look;一种对象语言O2C;一个图形化的编程环境,包含一个调试器和一个可查看模式和数据库的浏览器。
O2Query类似于SQL语言,但是它被扩展成能处理复杂对象。它是O2C的一个子集,但可单独用来作为一种专门的交互式查询语言或作为可由C、C++调用的函数。
图1 O2系统的体系结构