第3章
面向对象数据库
随着计算机技术发展和应用需求驱动,面向对象数据库(ObjectOriented DataBases,OODB)受到人们的广泛关注。OODB技术建立在面向对象思想方法基础之上,以将静态属性与动态操作为封装体的“对象”作为数据元素,以同型对象的集合“类”作为数据存储与操作的基本单元,更加符合人们对于客观世界的直观认识,对现实世界中复杂事物具有较强的语义描述能力,同时也具有高效开发应用系统和实现软件重用的功能,能够在传统数据库技术难以有效支持的领域获得成功应用。OODB研究始于20世纪80年代,当时主要是针对关系数据库的一些弱项,如有限的数据类型、没有基于系统的全局标识、不支持用户或系统可扩充的函数,以及运算和难以处理的复杂数据对象等。虽然人们在OODB技术的概念和原理上还未取得完全一致的理解,但大都认为对象、类、继承和封装等是OODB应该具有和支持的基本元语。进入20世纪90年代,从事研制面向对象数据库管理系统的厂商组成了ODMG集团(Object Database Management Group,ODMG)以着手制定OODB标准,并于1993年8月公布第一个ODBMS工业化标准——ODMG—1993。此后,又相继推出ODMG 1.2、ODMG 2.0(1997)和ODMG 3.0(2000)。本章将简要介绍基于ODMG 3.0的OODB技术。
3.1数据管理新的需求
自20世纪80年代以来,关系数据库(Relational DataBases,RDB)在传统商业事务处理领域获得巨大成功,随之带动了其他各领域对数据库技术应用需求的巨大增长。这些领域主要包括计算机辅助设计、计算机辅助软件工程、计算机集成制造系统、办公室自动化系统、地理信息系统、知识库系统、数据仓库与知识发现、多媒体系统和计算机网络系统等。这些新领域所需要的数据管理功能相对于传统情形具有许多新的特点。
(1) 存储和处理复杂对象。数据对象内部结构复杂,相互联系具有多种语义,难以用常规关系结构进行描述与表达。
(2) 多样数据类型。从数据逻辑描述来说,数据项取值可以是半结构或无结构数据类型; 从数据应用背景来说,有时态和版本数据类型、空间数据类型、时空数据类型及各种用户自定义数据类型等。
(3) 数据常驻内存。数据常驻内存中包括数据管理及对大量数据对象的存取和计算。
(4) 数据处理与程序语言集成。由于数据结构的复杂化和实际应用背景的不断拓展,需要将常规程序设计语言与数据库语言进行无缝整合才能完成各类数据管理任务。
(5) 支持复杂事务管理。支持长事务和嵌套事务处理。
面对新的应用需求,RDB的弱项或缺陷日益显现出来。
(1) 数据类型简单。RDB只能表达、存储和处理确定的某些简单数据类型,不易根据应用需求扩展数据类型集合。对于各种复杂类型依赖用户自行编写的应用程序进行个别构造、描述和处理,这显然与数据库管理数据初衷不相符合。
(2) 结构与行为分离。RDB主要关注数据独立性和存取效率,语义表达能力较差。数据实体结构存储在数据库当中,而数据实体行为常常需要由应用程序另外实现。这种结构与行为分离导致数据库中复杂结构数据只能通过相关应用程序进行解释执行,限制了用户对数据的有效使用。
(3) 查询实现复杂RDB。由于规范化的基本要求,通常需要将复杂对象分解为多个基本关系表进行处理,逻辑结构与外部实用场景差别较大,由此建立在相应逻辑结构之上的查询实现相当复杂。DBMS需要在实现数据存储透明和查询优化方面付出沉重开发代价。
(4) 阻抗失配。代价之一就是“嵌入式”SQL。由于SQL语言面向集合,基于嵌入式应用程序语言面向记录,两者编程模式不同,类型系统各异,需在相互之间通过适当方式进行转换,即会出现“阻抗失配”。解决“阻抗失配”需要使用较多的应用程序,增加了用户负担和系统开销。
针对RDB的不足及为支持在新领域中的应用,经过实践对比,人们发现面向对象技术与数据库技术相结合而形成的对象数据库具有广阔发展前景。
首先,在物理和逻辑两个层面上,通过面向对象技术可对常规面向记录的数据格式进行复杂语义结构描述,从而大大扩展了数据库技术的应用范围。