12

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

另外,我的关键问题与 Microsoft SQL Server 世界中我们经常使用实体框架 (EF) 层在应用程序端进行对象关系映射有关。那么,在 ORDBMS 世界中,ORM 的所有职责是否已经由数据库本身完全履行,或者可能存在我最终在 ORDBMS 之上使用像实体框架这样的 ORM 的用例或场景?人们真的会在 ORDBMS 系统之上使用 ORM 吗?

4

2 回答 2

3

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

关系型数据库管理系统

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

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

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

管理系统

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

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

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

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

于 2016-08-21T04:56:58.463 回答
2

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

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

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

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

对象关系数据库

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

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

在此处输入图像描述

于 2016-08-23T06:43:35.790 回答