当我在PostgreSQL的wiki页面上阅读有关PostgreSQL的信息时,它发生了,它称自己为ORDBMS。我一直都知道Microsoft SQL Server是RDBM系统。有人可以帮助我理解关系数据库管理系统(RDBMS)和对象关系数据库管理系统(ORDBMS)之间的主要区别吗?在什么情况下我应该使用其中之一?

另外,我的关键问题与以下事实有关:在Microsoft SQL Server的世界中,我们经常使用 Entity Framework (EF)层在应用程序端进行对象关系映射。因此,在ORDBMS领域中,数据库本身已经完全履行了ORM的全部职责,或者在某些使用案例或场景中,我最终还是要在ORDBMS之上使用像 Entity Framework 这样的ORM?人们真的在ORDBMS系统上使用ORM吗?

最佳答案

大多数数据库播放器不支持或不完全支持它。它很复杂,没有被广泛使用。即使“数据”本质上是OO,数据库也已经存在数十年了,它们不能采用ORDBMS(或OODBMS)。学习曲线也有问题。

ORDBMS/OODBMS类似于您在注册表编辑器中看到的虚拟注册表 View 。内容是树样式的对象。但是在内部,它们可能以统一/分层或关系方式存储。您真的不在乎-这些API为您提供了注册表信息的 View 。

同样,即使主要参与者不支持(也不支持)数据库的OO性质,他们也可能会提供一些扩展。或者,您可能必须为OO数据设计自己的框架。可以使用关系(表)来表示具有 Actor 和导演的电影数据库。 Actor ,导演,拍摄地点也将是类/对象,并可以使用表轻松表示,并且由数据库/数据库设计人员强加参照完整性。

作为开发人员,您将使数据的这种关系性质成为具有Movie作为类的对象的形式,并引用参与者/导演(1:1或1:N)。我不知道EE如何/如何促进了这一点,但是它只会以这种方式进行映射。

对象关系数据库

  • 在关系技术之上和关系上下文中的面向对象技术。
  • 对象存储在对象表中,而不是存储在行表中。
  • 支持主要的面向对象功能:复杂类型,继承,聚合,方法
  • 优势:著名技术
  • 的扩展
  • 缺点:两种技术的混合使用可能会导致难以理解的模式
  • 有性能问题
  • 对象关系系统包括诸如复杂的对象可扩展性,封装,继承以及与OO语言的更好接口(interface)之类的功能。
  • ORDBMS允许开发人员将新的数据对象类嵌入到关系数据模型抽象中(并在SQL之上)。

  • 下图显示了如何访问数据。

    sql-server - RDBMS和ORDBMS之间的区别-LMLPHP

    关于sql-server - RDBMS和ORDBMS之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39060110/

    10-11 02:00