【问题标题】:What are the best scenarios for using object-oriented databases?使用面向对象数据库的最佳场景是什么?
【发布时间】:2009-05-06 11:46:30
【问题描述】:

我们计划使用 OO 数据库来存储配置对象。 选项有:

  1. 创建 300 多个关系表。
  2. 创建一个包含少量表的通用结构。我们认为这将 使对象关系映射的构建和维护更加复杂。
  3. 使用 OO 数据库。我们现在正在对此进行测试。

你怎么看?

【问题讨论】:

标签: database oop


【解决方案1】:

对象数据库

  • 高性能
  • 更快,因为不需要连接
  • 固有的版本控制机制
  • 操作的导航界面(如图形遍历)
  • 对象查询语言以声明方式检索对象
  • 复杂的数据类型
  • 对象身份,即。 equals() 对象身份独立于值和更新
  • 促进对象共享
  • 类和层次结构(继承和封装)
  • 支持关系
  • 与 ODL 等持久性语言集成
  • 支持原子性
  • 支持嵌套关系
  • 语义建模

缺点

  • 没有 RDB 的数学基础(参考 Codd)
  • 面向对象的缺点
  • 复杂结构难以持久化,某些数据必须是瞬态的

对象关系数据库(您可能见过 UDT!)

  • 支持复杂的数据类型,如集合、多集等
  • 面向对象的数据建模
  • 扩展的 SQL 和丰富的类型
  • 支持 UDT 继承
  • 强大的查询语言

不同的应用程序可能需要不同的方法(OO、关系 DB 或 OODB)

参考文献

OODMS manifesto

ODMG

The Object-Oriented Database System Manifesto

Object Oriented Database Systems

Object Relational Databases in DBMS

Completeness Criteria for Object-Relational Database Systems

比较

http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems

【讨论】:

    【解决方案2】:

    主要阅读(或单个用户);简单的关系;受约束的对象图深度;约束管理非要求;和宽松的对象标识用例有利于 oo db。

    【讨论】:

    • 我认为是这样。而且数据库的大小也会很小。只是很多属性/字段和类/表,具体取决于选择
    • 在这种情况下,您可以使用对象数据库或新流行的持久键值“数据库”之一。 Google Redis 和 (plug ;) JRedis 在 github 上看看是否适合你。 (还有一个完整的左字段方法 [;)],看看 Lua。它是专门为解决复杂系统中的配置管理而发明的。它声称是目前最快的脚本语言。)
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2015-02-08
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多