⑴面向对象数据库管理系统(ODBMS)和关系数据库管理系统(RDBMS)的共同特点⑵基本特性的比较 如前所述,面向对象和关系数据库二者都支持数据库的持久性、二次存储管理、并发控制、恢复和查询的功能。但这两种方式是以不同的范例(paradigm)或数据模型为基础的。这种基本的不同表现在按一种技术开发数据库所采取的方法论明显地与另一种的差异,即:
a. 面向对象的范例是以分类为基础的,类用于定义存储在数据库内对象的结构及行为。
b. 关系范例是以元组(tuple)或记录为基础的,它被唯一地用来定义存储在数据库内的数据结构。一组元组被称之为一个关系(relation)或一个表(table)。
⑶开发方法的比较①关系数据库的开发
在关系数据库的开发过程中,对于被存储的数据实体是通过它们的属性或变量来描述的。实体一旦被描述,初始的数据结构需经过"规范化" (normalization)的处理来建立一组表(关系),同时减少了包含在元组中冗余的信息量。另外,每个元组至少要有一个特殊的属性称之为"码" (Key),它能唯一地标识表中的每个记录。码用于将各个不同表中的记录明显地联系起来。
②面向对象数据库的开发
面向对象数据库的开发过程中,实体应存什么数据也是由它们的属性来描述的。但与关系数据库不同的是将数据简化成一些类型,而不必经常引入码。对于复杂的应用来说,引入码是个特别繁琐的过程。
面向对象数据库的设计过程的注意力集中在以尽可能自然和直接的方式对现实世界的实体进行分类。类可以按子类的等级来组织,子类是定义较特殊一类对象集合的较自然的一种方法。子类继承了现存父类的属性。如前所述,继承是面向对象与关系系统之间差别的关键特点之一,尽管某些扩展的关系数据库如Ingress可以提供有限的继承能力。
在ODBMS中数据的冗余也有不同的管理方式。在关系数据库中对表的结构进行分解使得实体属性以最少的表来表示。而在 ODBMS中冗余的处理是按类结构进行,它与所存数据格式相对独立。唯一的一组属性被归并为一类,并能被许多子类重新使用,父类的变化将自动地用于其低层的类中,这意味着几个对象可以共享相同的属性,而不会在存取数据库中的对象时引起冗余问题。
在查询方面,ODBMS也提供与关系数据库相似的陈述式查询方式,但比RDBMS增加了直接引用的能力。采用直接引用来查询相应对象的方法比关系数据库存取的性能要高一到两个数量级。
⑷性能的比较 ODBMS 和RDBMS产品数据存取性能的差别已按通用测试标准验证过了。SUN公司的Riok Cattell等人著的"对象数据库评估"(1991年对象世界会议文集)已对四个ODBMS产品:Objectivity,Objectstore, Ontos,Versant以及两个RDBMS产品:Sybase和Ingress进行了测试。一般说来,对于"冷"数据存取(对磁盘数据库存取) ODBMS比RDBMS平均快5倍;对于"热"数据存取(在内存中的数据库存取)要快30倍,对于"热导航"(在内存中对某一给定的对象访问与之相联系的所有对象)ODBMS任何一个产品都比RDBMS的每一个产品性能要高出三个数量级。