面向对象的数据库 - 为什么大多数公司不使用它们

Gig*_*aPr 24 oop database-design object-oriented-database

我对编程很新(刚刚完成大学).

在过去的4年里,我一直在思考面向对象的开发以及这种方法的众多优点.

我的问题是

在开发应用程序中使用纯面向对象数据库不是更容易吗?

为什么面向对象的数据库不像关系那样分散?

从我的观点来看,使用OO数据库是有意义的,后者将避免在表上复杂对象的映射所需的众多构造.

Chr*_*s K 14

过去曾在一家面向对象数据库公司工作过(www.objectstore.com) - 而且目前 - 我认为我对于什么使他们变得伟大以及是什么让他们变得不那么伟大有一个公平的见解.

大:

没有对象关系不匹配.如果要将对象x在内存中存储到持久性存储,ObjectStore可以通过近实时保证来实现.我们的产品已被许多公司用于满足关系数据库或ORM引擎难以实现的残酷时间要求.

没有对象关系不匹配 - 你在对象中开发,你在对象中思考,你存储在对象中.

没有那么大:

ORM:对象关系管理器几乎使Object数据库无关紧要

模式演变:更改类以添加字段,现在您必须变形整个ENTIRE数据库.多年来,ObjectStore对此已经变得更加智能,但对于许多OODBMS来说,它仍然是一个痛点.

坏:

工具支持 - 这使得OODBMS成为大多数地方的非首发.今天的每个人都可以使用Crystal Reports或Access或Excel,并生成大量的报告.使用OODBMS,您必须通过程序员构建此逻辑,并且我们都知道当您需要预算报告时考虑到您在设计时没有想到的某些xyz参数时可能发生的速度有多快.

工具是OODBMS在市场上失败的原因.不是技术优势或性能或语言支持(ObjectStore支持C++/Java/.Net并且支持COM以支持任何IDispatch语言,如VB,Perl等).

所以我在这里说了一些贬低的话,尤其是我真正喜欢的产品.但是ObjectStore在非常具体的任务中非常棒,但是构建webapp的选择很差.虽然在某一时刻,它正在推动Amazon.com的库存管理后端.


Dan*_*den 9

正如你所说的那样,你刚刚从大学毕业,并且刚刚以"真实(面向对象)的方式"进行了强烈的灌输.另一方面,如果你学习了声明性编程,数据库设计和集合论,你会发现关系模型是一种非常合适的方法,基于理论,而OO是一种更实用的方法,主要是在工业中发明的.而不是学术界.实际上,大多数有关数据库问题的有趣研究和开发都是由具有更多数学背景的人员完成的,对于他们来说,关系模型是处理数据的更自然的方式.因此,与面向对象的对手相比,RDBMS往往更稳定,可扩展,更可信.面向对象的数据库,很像XML,


HLG*_*GEM 6

当你已经有一个大小为千兆字节的关系数据库已经存储了20年的数据并且有数百或数千个表时,使用这种方法没有任何好处.这是许多商业应用程序的真实世界.数据库不仅仅用于特定应用程序的对象映射.在您编写的应用程序消失后,数据库仍将存在很久.咬紧牙关,学习关系数据库,因为它们在未来100年内不会随时消失.

  • 柯德先生的工作有多么富有远见,我总是感到惊讶.30年仍然摇摆不定,对于IT概念,它应该获得诺贝尔奖.我认为其他(OO ......)模型还有空间,但正如你所说,RDBMS远未消亡. (3认同)
  • 如果每个人都咬紧牙关,今天就不会有创新.我会接受这个赌注.他们对Geocities说了同样的话. (2认同)
  • Geocities之间存在很大的差异,这是人口中使用的最微小的百分比,以及世界上几乎所有使用计算机的企业都依赖于他们的信息. (2认同)