RDBMS和ORDBMS之间的区别

时间:2016-08-21 01:31:04

标签: sql-server entity-framework postgresql rdbms ordbms

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

此外,我的关键问题与以下事实有关:在Microsoft SQL Server的世界中,我们经常使用一层实体框架(EF)在应用程序端执行对象关系映射。因此,在ORDBMS世界中,ORM的所有职责都已由数据库本身完全实现,或者可能存在用例或场景,我最终会在ORDBMS之上使用ORM,如Entity Framework?人们真的甚至在ORDBMS系统上使用ORM吗?

2 个答案:

答案 0 :(得分:3)

取自http://www.aspfree.com/c/a/database/introduction-to-rdbms-oodbms-and-ordbms/

  

RDBMS

     

RDBMS的主要元素基于Ted Codd关于关系系统的13条规则,关系完整性的概念和规范化。关系数据库的三个基本原则是所有信息必须以表格的形式保存,其中所有数据都使用数据值来描述。第二个基本原则是表列中找到的每个值都不重复。最后的基础是使用标准查询语言(SQL)。

     

RDBMS的好处在于系统简单,灵活且高效。由于表格简单,因此数据更易于理解并与其他人进行通信。 RDBMS非常灵活,因为用户不必使用预定义的密钥来输入信息。此外,RDBMS更高效,因为SQL更容易学习。这允许用户花更多时间输入而不是学习。更重要的是,RDBMS的最大优势是用户可以轻松创建和访问数据,并在需要时扩展数据。创建原始数据库后,可以添加新数据类别,而不更改现有应用程序。

     

关系数据库管理系统存在局限性。首先,关系数据库没有足够的存储区来处理图像,数字和音频/视频等数据。该系统最初是为处理媒体,传统现场数据和模板的集成而创建的。关系数据库的另一个限制是它不适合使用SQL之外的语言。在最初的开发之后,形成了诸如C ++和JavaScript的语言。但是,关系数据库无法有效地使用这些语言。第三个限制是要求信息必须在表中,其中实体之间的关系由值定义。

     

ORDMS

     

对象关系数据库(ORDBMS)是当今常见的第三种数据库。 ORDBMS是“尝试使用支持更广泛的应用程序类所需的功能来扩展关系数据库系统的系统,并且在许多方面提供了关系和面向对象范例之间的桥梁。”

     

创建ORDBMS是为了处理关系数据库无法处理的新型数据,如音频,视频和图像文件。此外,它的开发是面向对象编程语言使用量增加的结果,以及这些语言与DBMS软件之间的大量不匹配。

     

ORDBMS的一个优点是它允许组织继续使用现有系统,而无需进行重大更改。第二个优点是它允许用户和程序员并行开始使用面向对象的系统。

     

实施ORDBMS存在挑战。首先是存储和访问方法。第二个是查询处理,第三个是查询优化。

答案 1 :(得分:1)

大多数数据库播放器不支持它,或者不支持它。它很复杂,并没有广泛使用。即使“数据”本质上是OO,数据库也存在于几十年前,并且它们不能采用ORDBMS(或OODBMS)。学习曲线也带来了问题。

ORDBMS / OODBMS就像您在注册表编辑器中看到的虚拟注册表视图。内容是树型对象。但在内部,它们可能以平面/分层或关系方式存储。你真的不在乎--API为你提供注册表信息的视图

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

作为开发人员,您将数据的这种关系性质变为面向对象的形式,其中Movie为类,引用演员/导演(1:1或1:N) )。我不知道EE如何促进这一点,但它只会以这种方式进行映射。

对象关系数据库

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

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

enter image description here