目前,面向对象数据模型最大问题是没有一个统一的标准,并且缺乏一个完善的理论来指导,因此面向对象的数据库更多地带上领域的印记,在不同的领域有着不同的表现。尽管有许多商品化的ODBMS,但它们在程序设计接口、实现方法(手段)、对查询的支持等方面都存在许多差异。其次,面向对象的数据库产品在一些方面仍然落后于关系数据库产品,例如,还没有OODB支持视图机制,并且在这方面的先前研究也未真正展开;模式化在OODB中更为落后,许多OODB产品仍然停留在类似CODASYL风格的模式/应用编译周期上;OODB与它们的应用程序语言紧密集成,许多系统仅提供一种语言(大多为C++);除此以外,OODB的鲁棒性、可伸缩性和容错性都难以赶上关系数据库系统。 在开发工具、C/S计算环境相关的一些方面在存在不少问题。例如在工具方面,OODB明显缺乏最终用户工具及应用开发工具,而这方面的工具在关系数据库中却得到了广泛的应用。 最后,OODB的商业市场的增长速度比预想的要慢得多,一些应用领域,如CAD,原指望很快就会从文件系统转移到OODB上来,可事实并非如此;另外值得指出的是,一些大型数据库厂商并未转移到OODB上来,而是在传统的关系数据中扩展,将面向对象技术与数据库技术结合起来,提供对于复杂数据进行复杂查询的支持。 前面我们讨论了数据库技术中最常用的四种数据模型:层次数据模型、网状数据模型、关系数据模型、对象数据模型。基于这几种数据模型,数据库厂商都开发了相应的数据库管理系统。目前的发展趋势是将对象-关系模型相结合,在关系数据库管理系统中引入对象概念是各数据库厂商研究开发的主要方向。如Oracle从8.15i开始就支持对象模型的概念,提出了物化视图、行类型(Row Set)、Collection对象(Array,Set,List等)对象;IBM公司的DB2通过扩展的Extender支持对象-关系模型能力的表达。 除了这些常用的结构数据模型外,在数据库界研究的还有实时数据模型、演绎数据模型、XML数据模型等。传统的关系数据库管理系统除了需要扩展对象功能外,对XML数据模型的支持也是一个方向。 有关这方面的文献请参看Db2和Oracle相关的用户手册。 |