面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。
在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中, 其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。 这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。
还有许多应用要求多媒体数据库。它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。
人工智能(AI)应用的需要,如专家系统,也推动了面向对象数据库的发展。专家系统常需要处理各种(通常是复杂的)数据类型。与关系数据库不同,面向对象数据库不因数据类型的增加而降低处理效率。
由于这些应用需求,80年代已开始出现一些面向对象数据库的商品和许多正在研究的面向对象数据库。多数这样的面向对象数据库被用于基本设计的学科和工程应用领域。
早期的面向对象数据库由于一些特性限制了在一般商业领域里的应用。首先同许多别的商业事务相比,面向设计假定用户只执行有限的扩充事务;其次,商业用户要求易于使用的查询手段,如结构查询语言(SQL)所提供的手段。 而开发商用于商业领域的数据库定义和操作语言未获成功,使得它们对规模较大的应用完全无法适应。
面向对象数据库的新产品都在试图改变这些状况,使得面向对象数据库的开发从实验室走向市场。
面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。
面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。如UNISQL、O2等, 它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。