2011-02-03 120 views
1

我想知道为什么ORM如此受欢迎,每个人都在使用JDO和JDA规范的ORM实现,而不是使用实现这些规范的对象数据库。使用Object数据库的性能要好得多。可以将ORM +关系数据库视为对象关系数据库管理系统吗?

objectdb(JDO,JPA) db4o(JDO)

我说得对,如果我说,这是因为开发人员需要使用他们的应用程序都对象模型和关系模型?

ORDBMs呢?是否有任何ORDBM(值得一试),或者可以将对象关系映射与关系数据库一起考虑为ORDBM?

+1

因为没有人因为购买Oracle而被解雇;) – Gugussee 2011-02-03 16:17:19

+0

另外请注意,大多数“OO程序”根本就没有做OO。以这种方式来看待它:* equals *和* hashCode *它们在Java中完成的方式与OO从根本上不兼容(这在Joshua Bloch的*“Effective Java”*中很好地解释,并且在Bill Venners/Martin关于Artima等的Odersky访谈)[这是一个**事实**顺便说一句,没有必要争论:在非final类中接受equals/hashCode合约是不可能的,接口也有问题]。然而,几乎没有人在Java中使用* equals *和* hashCode *。为什么?因为大多数Java程序不是真正的面向对象程序。 – Gugussee 2011-02-03 16:21:49

回答

3

为什么人们使用OR映射器而不是对象数据库使用RDBMS的主要原因是RDBMS深深扎根,深入理解并得到每个人的支持。如果你使用一个对象数据库,那你有问题

  • 找人使用现有的工具进行报告,以支持它
  • ,备份等
  • 有其他应用程序访问数据

可能还有很多疑问(无论是否合理),对象数据库是否真的可以在真实的文字场景中提供相同或更好的性能和安全性。

1

根据我的经验,使用对象数据库导致代码少得多,而且项目更清洁。

它使RDBMS + ORM(LINQ-to-Entities)的6周学习曲线与对象数据库(db4o)的1周学习曲线有所不同。

0

您可能熟悉的常用DBMS(例如Oracle,SQL Server,DB2,MySQL,PostGreSQL)不是关系型的。它们是基于SQL模型的,尽管它在某些方面类似于关系模型,但它是完全不同的。

一个对象关系 DBMS意味着与关系 DBMS相同的事情。这是另一种说法,即RDBMS原则上将支持任何无限制的数据类型和关系操作。 O/R Mapping软件确实只解决了SQL DBMS不能很好地实现的事实。