数据库管理系统中的关系数据模型: Concepts & 例子

什么是关系模型?
关系模型(RM) 将数据库表示为关系的集合。关系不过是一张值表。表中的每一行都表示相关数据值的集合。表中的这些行表示现实世界中的实体或关系。
表名和列名有助于理解每一行数据的含义。数据以关系集的形式表示。在关系模型中,数据以表格的形式存储。然而,数据的物理存储方式与数据的逻辑组织方式无关。
该模型由 EF Codd 于 1970 年提出,至今仍是几乎所有主流数据库的基础。 一些常用的关系型数据库管理系统包括:
- DB2 和 Informix Dynamic Server – IBM
- Oracle 和 RDB – Oracle
- SQL Server 和 Access – Microsoft
关系模型 Concepts 在 DBMS 中
- 属性: 表中的每一列。属性是定义关系的特征,例如,学号、姓名等。
- 表: 在关系模型中,关系以表格形式保存,并与实体一起存储。表格有两个属性:行和列。行代表记录,列代表属性。
- 元组: 它只不过是表格中的一行,其中包含一条记录。
- 关系模式: 关系模式表示关系及其属性的名称。
- 学士课程: 关系中属性的总数称为关系的度。
- 基数: 表中的总行数。
- 柱: 该列代表特定属性的一组值。
- 关系实例: 在关系数据库管理系统中,关系实例是一组有限的元组。关系实例中永远不会有重复的元组。
- 关系键: 每一行都有一个、两个或多个属性,这些属性被称为关系键。
- 属性域: 每个属性都有一些预定义的值和范围,这被称为属性域。
词汇量到位后,下一个需要关注的问题是保持ping 这些关系中的数据是有效的,这是完整性约束的作用。
相关的 Integrity 限制
数据库管理系统中的关系完整性约束是指有效关系必须满足的条件。这些关系约束源自数据库所代表的微观世界中的规则。
完整性约束有很多种类型。关系数据库管理系统中的约束主要分为三大类:
- 域约束
- 关键约束
- 参考文献 Integrity 限制
域约束
如果属性值未出现在相应的域中,或者数据类型不合适,则可能违反域约束。
域约束规定,每个元组中每个属性的值必须是原子性的,并且必须来自正确的域。域以数据类型的形式指定,包括整数、实数、字符、布尔值和变长字符串等标准类型。
计费示例:
CREATE DOMAIN CustomerName CHECK (value NOT NULL)
所示示例演示了如何创建域约束,使得 CustomerName 不为 NULL。
关键约束
能够唯一标识关系中元组的属性称为表的键。关系中不同元组的属性值必须是唯一的。
计费示例:
在给定的表格中,CustomerID 是 Customer 表的一个关键属性。一个客户很可能只有一个 CustomerID 值;CustomerID = 1 仅对应 CustomerName。Google指南中全面介绍了各种不同的按键类型。 数据库管理系统密钥.
| 顾客ID | 顾客姓名 | 状态 |
|---|---|---|
| 1 | 有效 | |
| 2 | Amazon | 有效 |
| 3 | 蘋果 | 过去的 |
参考文献 Integrity 限制
数据库管理系统中的引用完整性约束基于外键的概念。外键是一个关系的重要属性,其他关系需要引用它。当一个关系引用另一个关系(无论该关系是否相同)的键属性时,就会发生引用完整性约束。被引用的键元素必须存在于被引用的表中。
计费示例:
在上面的例子中,我们有两个关系,Customer 和 BillING。
CustomerID = 1 的元组在关系中被引用了两次 Bill所以我们知道客户名称“Google账单金额为 300 美元。
Opera关系模型中的问题
关系数据库模型上执行四种基本更新操作:插入、更新、删除和选择。
- Insert 用于将数据插入到关系中。
- Delete 用于从表中删除元组。
- 修改允许您更改现有元组中某些属性的值。
- 选择允许您选择特定范围的数据。
无论何时应用这些操作之一,都绝不能违反关系数据库模式中指定的完整性约束。
插页 OperaTION
插入操作会给出要插入到关系中的新元组的属性值。
更新 OperaTION
您可以在下面的关系表中看到,客户名称“Apple”已从“非活跃”更新为“活跃”。
删除 OperaTION
为了指定删除,关系属性的条件选择要删除的元组。
在上面的例子中,CustomerName“Apple”从表中删除。
如果被删除的元组被同一数据库中其他元组的外键引用,则删除操作可能会破坏引用完整性。 数据库.
选择 OperaTION
在上面的例子中,“客户名称”Amazon”被选中。
关系模型与层级模型和网络模型
关系模型取代了之前的两种方法,这种对比解释了它为何最终占据主导地位。下表将这三种模型并列列出。
| 方面 | 关系模型 | 层次模型 | 网络模型 |
|---|---|---|---|
| 结构 | 表(关系) | 树,父子 | 图,多对多 |
| 资料存取 | 声明式,按值 | 导航,按路径 | 导航,通过指针 |
| 关系 | 外键 | 父子链接 | 集合和指针 |
| 查询语言 | SQL | 程序代码 | 程序代码 |
| 灵活性 | 高 | 低 | 中 |
由于关系模型是通过值而不是通过物理链接来处理数据的,因此像 这样的高级语言 SQL 无需了解数据存储方式即可表达查询。
创建关系模型的最佳实践
- 数据需要表示为关系的集合。
- 表格中应清晰地展现每一种关系。
- 行应包含有关实体实例的数据。
- 列必须包含有关实体属性的数据。
- 表格中的每个单元格都应该只包含一个值。
- 每一列都应该有一个唯一的名称。
- 任何两行都不可能完全相同。
- 属性值应来自同一域。
关系数据库模型的优势
- 简单性: 数据库管理系统中的关系数据模型比层次模型和网络模型更简单。
- 结构独立性: 关系型数据库只关注数据而不关注结构,这可以提高模型的性能。
- 使用方便: 关系模型易于使用,因为由行和列组成的表格自然而简单易懂。
- 查询功能: 这使得像 SQL 这样的高级查询语言能够避免复杂的数据库导航。
- 数据独立性: 关系数据库的结构可以在不更改任何应用程序的情况下进行更改。
- 可扩展性: 就记录数或行数以及字段数而言,可以通过增加数据库来提高其可用性。
关系模型的缺点
- 很少有关系型数据库对字段长度有限制,不能超过这个限制。
- 随着数据量的增长和数据之间关系的日益复杂,关系型数据库有时会变得非常复杂。
- 复杂的关联数据库系统可能导致数据库彼此孤立,信息无法在系统间共享。






