关于oop:对象数据库的优缺点是什么?

关于oop:对象数据库的优缺点是什么?

What are the pros and cons of object databases?

有关对象关系映射器的信息很多,如何最好地避免阻抗不匹配,如果要使用对象数据库,所有这些似乎都是有争议的。 我的问题是为什么不更频繁地使用它? 是由于性能原因还是由于对象数据库导致您的数据成为应用程序专有的,还是由于其他原因?


  • 熟悉度。数据库管理员了解关系概念。对象,不是很多。
  • 性能。关系数据库已被证明可以更好地扩展。
  • 到期。 SQL是一种功能强大且经过长期发展的语言。
  • 供应商支持。与OODBMS相比,您可以在更多的第一方(SQL服务器)和第三方(管理界面,映射以及其他类型的集成)工具之间进行选择。

自然,开发人员对面向对象的模型更为熟悉,并且,正如您所指出的那样,它将避免使用ORM之一。但是到目前为止,关系模型已被证明是更可行的选择。

另请参阅最近的问题,面向对象与关系数据库。


我一直在使用db4o,它是一个OODB,它解决了列出的大多数缺点:

  • 熟悉-程序员比SQL更了解他们的语言(请参阅本机查询)
  • 性能-这是非常主观的,但是您可以看看PolePosition
  • 供应商的支持和成熟度-会随着时间而变化
  • 不能同时使用相同框架的程序不能使用-有OODB标准,您可以使用不同的框架
  • 版本控制可能有点麻烦-版本控制实际上更容易!

我感兴趣的专业人士是:

  • 本机查询-Db4o允许您使用静态类型的语言编写查询,因此您不必担心会弄乱字符串并在运行时查找丢失的数据,
  • 易于使用-在域层,持久层(映射)以及SQL数据库中定义业务逻辑肯定违反了DRY。使用OODB,您可以定义其所属的域。

我同意-OODB还有很长的路要走,但是他们正在走。 OODB可以更好地解决领域问题,


它与性能无关。 也就是说,基本上所有应用程序都可以通过OODB更好地运行。 但这也会使许多DBA失去工作/必须学习新技术。 甚至会有更多的人无法纠正数据中的错误。 这不太可能使OODB在成熟的公司中流行。 加文(Gavin)似乎一无所知,最好的连结是柯克(Kirk)


对对象数据库的一个反对意见是,它在数据和您的代码之间建立了紧密的联系。对于某些应用程序,这可能是好的,但对于其他应用程序则不是。关系数据库为您提供的一个好处是可以在数据上放置许多视图。

Ted Neward对此进行了解释,并且有关OODBMS的更多内容要比这更好。


缺点:

  • 不能被以下程序使用
    也不要使用相同的框架
    用于访问数据存储,
    在整个过程中使用起来更加困难
    企业。

  • 可供在线使用的资源较少
    非基于SQL的数据库

  • 跨数据库不兼容
    类型(不能交换到其他数据库
    提供者而不更改所有
    码)

  • 版本控制可能有点
    子我想添加一个新的
    对象的属性不完全是
    就像将新列添加到
    表。


jodonnel,我看不到对象数据库的使用如何将应用程序代码耦合到数据。您仍然可以通过使用存储库模式从OODB中提取应用程序,如果设计合理,则可以替换为ORM支持的SQL数据库。

对于OO应用程序,OO数据库将为持久对象提供更自然的契合度。

将数据绑定到域模型可能是正确的,但这才是关键!

使用以域为中心的视图同时查看数据,业务规则和流程的单一方法不是很好吗?

因此,一个大优点是OODB与大多数现代的企业级面向对象的软件应用程序的设计方式匹配,因此无需花费额外的精力来使用不同的(关系)设计来设计数据层。构建和维护成本更低,并且在许多情况下,它们通常具有更高的性能。

缺点,我认为普遍缺乏成熟度和采用性。


S?ren

您说的所有原因都是有效的,但是我看到OODBMS的问题是逻辑数据模型。对象模型(或者更确切地说是70年代的网络模型)不像关系模型那样简单,因此是次等的。


推荐阅读

    无法读取U盘中的数据

    无法读取U盘中的数据,,核心提示:我有一个512MB的U盘,把它插在电脑显示器里面是空的,但右键单击以查看已经使用USB 480mb文件的属性未设置为隐

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    优化PostgreSQL中的批量更新性能

    优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

    诺基亚威图性能好到哪里

    诺基亚威图性能好到哪里,诺基亚,手机,诺基亚威图性能好到哪里这是一部以前列出的手机。即使当时配置不高,该品牌的手机也不依赖于该功能吸

    魅蓝note6性能参数有哪些

    魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

    EXCEL数据透视表怎么用?是干什么的

    EXCEL数据透视表怎么用?是干什么的,透视,干什么,怎么,excel透视表:数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等

    通过备份记录获得数据库的增长

    通过备份记录获得数据库的增长,,通常你想知道数据库是否正在增长,以及它增长了多少,可能比较数据库中每个历史时期的大小。 但是我们怎样才