最近一直在想这2种数据库:面向对象与关系数据库 但是我实在搞不明白 什么是面向对象数据库 他们2者有什么区别???能举个例子吗?用面向对象的数据库比关系数据库有什么优势?

解决方案 »

  1.   

    http://www.51cto.com/art/200511/11684.htm
    介绍的比较详细
      

  2.   

    对象数据库是一种以对象形式表示信息的数据库。对象数据库的数据库管理系统被称为 ODBMS 或 OODBMS。两个主要原因让用户使用对象数据库技术。首先,关系数据库在管理复杂数据时显得笨重。其次,被应用软件操作的数据一般是用面向对象的编程语言如 C++, Java, Delphi和 C# 写成,而那些用来转化数据表示和关系数据库元组的代码很冗繁,执行时也有不少耗时。
    对 ODBMS 和关系 DBMS 的基准测试显示 ODBMS 在某些任务上优势明显。 主要原因是许多操作使用导航式而不是声明式接口, 并且对数据的导航式访问通常可以有指针高效得实现。对基于导航数据库技术,如ODBMS的批评指出, 基于指针的技术为一些特殊的搜索路径或视点(viewpoint)作了优化。而且,对一般目的的查询,基于指针的技术比关系型要慢并难于形式化。导航式显得适合与特定应用而失了普遍,未来的使用。ODBMS 的其他技术显得缺失了与SQL世界中大量工具或特性的互操作性包括但不限于产业标准互联性,报告工具, OLAP 工具以及备份和恢复标准。 另外,不像关系数据库,对象数据库缺少形式化的数学基础,而这反过来导致他们在查询支持上的弱势。 不过,这一缺陷被部分弥补,因为一些 ODBMS 除了 导航式访问外也提供了对 SQL 的完全支持,如 Objectivity/SQL++。事实上,在概念封装即隐藏数据使他只能通过公布的一些接口访问 和关系数据库技术假定数据只能由基于数据内容的查询而不是预定义的查询路径的形式访问之间存在着本质的张力。数据库中心论倾向于用声明和属性驱动的观点看世界, 而面向对象倾向于从行为的观点看世界。这就是 围绕着OOP和数据库的许多 impedance mismatch 问题之一。尽管很多评论认为对象数据库是失败的,但主要的辩护者仍很活跃,更紧密得整合数据库的功能和对象编程语言的尝试在研究和产业社区里仍在继续。