什么是RDBMS(关系数据库管理系统)

2025年5月14日 | 阅读 7 分钟

RDBMS关系数据库管理系统 的缩写。

所有现代数据库管理系统,如SQL、MS SQL Server、IBM DB2、ORACLE、My-SQL和Microsoft Access,都基于RDBMS。

它之所以被称为关系数据库管理系统(RDBMS),是因为它基于E.F. Codd提出的关系模型。

工作原理

在RDBMS中,数据以元组(行)的形式表示。

关系数据库是最常用的数据库。它包含多个表,每个表都有自己的主键。

由于组织良好的表集合,在RDBMS中可以轻松访问数据。

RDBMS简史

从1970年到1972年,E.F. Codd发表了一篇论文,提出使用关系数据库模型。

RDBMS最初基于E.F. Codd的关系模型发明。

以下是RDBMS的各种术语

What is RDBMS

什么是表/关系?

关系数据库中的一切都以关系的形式存储。RDBMS数据库使用表来存储数据。表是相关数据条目的集合,包含行和列来存储数据。每个表代表一些现实世界的对象,如人、地点或事件,有关这些对象的信息被收集起来。数据组织到关系表中的过程称为数据库的逻辑视图。

关系的属性

  • 每个关系都有一个唯一的名称,在数据库中通过该名称进行标识。
  • 关系不包含重复的元组。
  • 关系中的元组没有特定的顺序。
  • 关系中的所有属性都是原子的,即关系的每个单元格都包含一个值。

表是RDBMS中数据存储的最简单示例。

让我们来看一个学生表的例子。

ID名称年龄课程
1Ajeet24B.Tech
2Aryan20C.A.
3Mahesh21BCA
4Ratan22MCA
5Vimal26BSC

什么是行或记录?

表的一行也称为记录或元组。它包含表中每个条目的特定信息。它是表中的水平实体。例如,上表包含5条记录。

行的属性

  • 没有两个元组在所有条目上都相同。
  • 关系的元组具有相同的格式和相同数量的条目。
  • 元组的顺序无关紧要。它们通过内容而不是位置来识别。

让我们看表中的一条记录/行。

ID名称年龄课程
1Ajeet24B.Tech

什么是列/属性?

列是表中的垂直实体,包含与表中特定字段相关的所有信息。例如,“name”是上表中的一列,其中包含有关学生姓名的所有信息。

属性的属性

  • 关系的所有属性都必须有一个名称。
  • 允许属性为空值。
  • 可以为属性指定默认值,如果在指定属性的其他值时未指定,则会自动插入。
  • 唯一标识关系中每个元组的属性是主键。
名称
Ajeet
Aryan
Mahesh
Ratan
Vimal

什么是数据项/单元格?

表中最小的数据单元是单个数据项。它存储在元组和属性的交叉点。

数据项的属性

  • 数据项是原子的。
  • 属性的数据项应来自同一域。

在下面的示例中,学生表中的数据项包括Ajeet、24和Btech等。

ID名称年龄课程
1Ajeet24B.Tech

构成关系的属性总数称为表的度。

例如,学生表有4个属性,其度为4。

ID名称年龄课程
1Ajeet24B.Tech
2Aryan20C.A.
3Mahesh21BCA
4Ratan22MCA
5Vimal26BSC

基数

关系中任何时候的元组总数称为表的基数。基数为0的关系称为空表。

例如,学生表有5行,其基数是5。

ID名称年龄课程
1Ajeet24B.Tech
2Aryan20C.A.
3Mahesh21BCA
4Ratan22MCA
5Vimal26BSC

领域

域是指每个属性可以包含的可能值。可以使用标准数据类型(如整数、浮点数等)来指定。例如,一个名为Marital_Status的属性可能仅限于已婚或未婚的值。

考虑下面的员工关系。

Emp_IDE_NameE_AGEE_PostMarital_Status
1Ajeet Singh24ClerkMarried
2Aryan Manhas20--Unmarried
3Mahesh Thakur--教师Married
4Ratan Kumar22ClerkUnmarried
5Vimal Chabbra26教师Married

NULL 值

表中的NULL值表示在创建记录时该字段被留空。它不同于填充零或包含空格的字段。

例如,如果我们说一个人的身高是null,这意味着这个人存在,他必须有身高,但我们不知道在收集数据时身高是多少。所以我们将其标记为null,并解释我们不知道实际值是什么。

现在我们将讨论显示缺失或未知信息以及不适用数据的示例。

考虑下面的员工关系。

Emp_IDE_NameE_AGEE_PostMarital_Status
1Ajeet Singh24ClerkMarried
2Aryan Manhas20--Unmarried
3Mahesh Thakur--教师Married
4Ratan Kumar22ClerkUnmarried
5Vimal Chabbra26教师Married

在上表中,Emp_Id被用作主键,因此不能有null值。Mahesh Thakur的年龄在表中没有条目,不是因为它不存在,仅仅是因为在录入数据库信息时组织不知道。稍后知道后,就会录入。

同样,ID为2、姓名为“Aryan Manhas”的员工的E_Post属性未知,因为他刚加入组织,在收集数据时还没有被分配职位。稍后,当他被分配工作时,会为此输入一个值。所以它们在关系中表示为null值。

数据完整性

RDBMS存在以下数据完整性类别

实体完整性:它规定表中不应有重复的行。

域完整性:它通过限制值的类型、格式或范围来强制对给定列进行有效条目。

参照完整性规定不能删除被其他记录使用的行。

用户定义完整性:它强制执行用户定义的某些特定业务规则。这些规则不同于实体、域或参照完整性。

关系数据操作

操作组件由一组高级操作组成,如关系代数和关系演算,它们作用于现有关系并产生新的关系。

关系代数是一种过程语言,它指定要对现有关系执行的操作以产生新的关系。它包括集合操作,如并集、交集、差集,以及其他操作,如选择、投影、连接、除等。

关系演算是一种非过程语言,查询通常表示为一个由许多变量和涉及这些变量的表达式组成的公式。

用于执行大多数数据操作的商业上最常用的查询语言是SQL(结构化查询语言)。该语言允许使用DML与数据库进行交互(即打开、关闭数据库、添加元组、查找元组、删除元组等)。

关系数据库管理系统的优点

以下是RBMS各种优点的列表

结构独立性:在该模型中,结构的修改不影响数据的访问。关系模型实现了数据和结构的独立性。

容错性:数据库复制提供了并发访问,并在发生电源故障或突然关机时有助于系统恢复。

关系数据库管理系统的缺点

以下是RBMS各种缺点的列表

硬件开销:关系模型隐藏了实现中的复杂性和物理数据存储细节。它需要更强大的硬件计算机和存储设备来执行。

成本:建立和维护关系数据库管理系统的成本很高。

并发问题:当多个用户同时访问和更新数据库时,数据并发管理可能会成为一个挑战。各种锁定技术用于确保数据一致性。

设计的简单性可能导致糟糕的设计:用户不了解数据存储的复杂性,这可能导致开发和实现一个非常糟糕的数据库管理系统。

关系数据库管理系统常见问题解答

1. 关系数据库管理系统中“关系”一词的含义是什么?

在关系数据库管理系统中,数据以行和列的形式组织在表中的称为关系。

2. 解释关系数据结构?

关系数据结构是一种数据结构,其中数据表示为二维表集合,也称为关系。

3. 解释关系中的键?

关系数据库概念的一个主要特性是,关系中不应该有重复的行,以便表中的每一行都可以被唯一地识别。

4. 列出域的属性?

  • 域属性取决于属性的数据类型声明。例如:布尔数据类型只能取两个值。
  • 可以通过对域应用一组约束来限制域的大小。
  • 在属性的规范之前应定义属性的域。
  • 关系中的一个以上属性可以从同一域中获取其值。