RDBMS 和 ORDBMS 之间的区别

Difference between RDBMS and ORDBMS

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

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

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

RDBMS

The main elements of RDBMS are based on Ted Codd’s 13 rules for a relational system, the concept of relational integrity, and normalization. The three fundamentals of a relational database are that all information must be held in the form of a table, where all data are described using data values. The second fundamental is that each value found in the table columns does not repeat. The final fundamental is the use of Standard Query Language (SQL).

Benefits of RDBMS are that the system is simple, flexible, and productive. Because the tables are simple, data is easier to understand and communicate with others. RDBMS are flexible because users do not have to use predefined keys to input information. Also, RDBMS are more productive because SQL is easier to learn. This allows users to spend more time inputting instead of learning. More importantly, RDBMS’s biggest advantage is the ease with which users can create and access data and extend it if needed. After the original database is created, new data categories can be added without the existing application being changed.

There are limitations to the relational database management system. First, relational databases do not have enough storage area to handle data such as images, digital and audio/video. The system was originally created to handle the integration of media, traditional fielded data, and templates. Another limitation of the relational database is its inadequacy to operate with languages outside of SQL. After its original development, languages such as C++ and JavaScript were formed. However, relational databases do not work efficiently with these languages. A third limitation is the requirement that information must be in tables where relationships between entities are defined by values.

ORDMS

Object-Relational database (ORDBMS) is the third type of database common today. ORDBMS are systems that “attempt to extend relational database systems with the functionality necessary to support a broader class of applications and, in many ways, provide a bridge between the relational and object-oriented paradigms.”

ORDBMS was created to handle new types of data such as audio, video, and image files that relational databases were not equipped to handle. In addition, its development was the result of increased usage of object-oriented programming languages, and a large mismatch between these and the DBMS software.

One advantage of ORDBMS is that it allows organizations to continue using their existing systems, without having to make major changes. A second advantage is that it allows users and programmers to start using object-oriented systems in parallel.

There are challenges in implementing an ORDBMS. The first is storage and access methods. The second is query processing, and the third is query optimization.

大多数数据库播放器不支持它,或者不专门支持它。它很复杂,并没有被广泛使用。即使"data"本质上是面向对象的,但数据库是几十年前就存在的,它们不能采用ORDBMS(或OODBMS)。学习曲线也会带来问题。

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

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

作为开发人员,您会将数据的这种关系性质转化为具有 Movie 作为 class、引用 actors/directors(1:1 或 1:N)。我不知道 how/what EE 促进了这一点,但它只会以这种方式进行映射。

对象关系数据库

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

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