
What are the pros and cons of object databases?有关对象关系映射器的信息很多,如何最好地避免阻抗不匹配,如果要使用对象数据库,所有这些似乎都是有争议的。 我的问题是为什么不更频繁地使用它? 是由于性能原因还是由于对象数据库导致您的数据成为应用程序专有的,还是由于其他原因?
自然,开发人员对面向对象的模型更为熟悉,并且,正如您所指出的那样,它将避免使用ORM之一。但是到目前为止,关系模型已被证明是更可行的选择。 另请参阅最近的问题,面向对象与关系数据库。 我一直在使用db4o,它是一个OODB,它解决了列出的大多数缺点:
我感兴趣的专业人士是:
我同意-OODB还有很长的路要走,但是他们正在走。 OODB可以更好地解决领域问题, 它与性能无关。 也就是说,基本上所有应用程序都可以通过OODB更好地运行。 但这也会使许多DBA失去工作/必须学习新技术。 甚至会有更多的人无法纠正数据中的错误。 这不太可能使OODB在成熟的公司中流行。 加文(Gavin)似乎一无所知,最好的连结是柯克(Kirk) 对对象数据库的一个反对意见是,它在数据和您的代码之间建立了紧密的联系。对于某些应用程序,这可能是好的,但对于其他应用程序则不是。关系数据库为您提供的一个好处是可以在数据上放置许多视图。 Ted Neward对此进行了解释,并且有关OODBMS的更多内容要比这更好。 缺点:
jodonnel,我看不到对象数据库的使用如何将应用程序代码耦合到数据。您仍然可以通过使用存储库模式从OODB中提取应用程序,如果设计合理,则可以替换为ORM支持的SQL数据库。 对于OO应用程序,OO数据库将为持久对象提供更自然的契合度。 将数据绑定到域模型可能是正确的,但这才是关键! 使用以域为中心的视图同时查看数据,业务规则和流程的单一方法不是很好吗? 因此,一个大优点是OODB与大多数现代的企业级面向对象的软件应用程序的设计方式匹配,因此无需花费额外的精力来使用不同的(关系)设计来设计数据层。构建和维护成本更低,并且在许多情况下,它们通常具有更高的性能。 缺点,我认为普遍缺乏成熟度和采用性。 S?ren 您说的所有原因都是有效的,但是我看到OODBMS的问题是逻辑数据模型。对象模型(或者更确切地说是70年代的网络模型)不像关系模型那样简单,因此是次等的。 |