DBMS中的关系数据模型 | 数据库概念与示例
什么是关系模型?
关系模型 (RM) 将数据库表示为关系的集合。关系就是值的表。表中的每一行代表一组相关的值。表中的这些行表示一个真实世界的实体或关系。
表名和列名有助于解释表中值的含义。数据表示为一组关系。在关系模型中,数据以表的形式存储。但是,数据的物理存储独立于数据的逻辑组织方式。
一些流行的关系数据库管理系统是
- DB2 和 Informix Dynamic Server – IBM
- Oracle 和 RDB – Oracle
- SQL Server 和 Access – Microsoft
DBMS 中的关系模型概念
- 属性:表中的每一列。属性是定义关系的属性。例如,Student_Rollno、NAME 等。
- 表 – 在关系模型中,关系以表格格式保存。它与其实体一起存储。表有两个属性:行和列。行代表记录,列代表属性。
- 元组 – 它就是表中的单行,包含一个记录。
- 关系模式:关系模式表示关系及其属性的名称。
- 度:关系中属性的总数称为关系的度。
- 基数:表中的总行数。
- 列:列表示特定属性的值集。
- 关系实例 – 关系实例是 RDBMS 系统中有限的元组集合。关系实例从不包含重复的元组。
- 关系键 – 每一行都有一个、两个或多个属性,称为关系键。
- 属性域 – 每个属性都有一些预定义的值和范围,称为属性域
关系完整性约束
DBMS 中的关系完整性约束是指对于有效关系必须存在的条件。DBMS 中的这些关系约束源自数据库所表示的迷你世界的规则。
DBMS 中有许多类型的完整性约束。关系数据库管理系统上的约束主要分为三类:
- 域约束
- 键约束
- 参照完整性约束
域约束
如果属性值不在相应的域中或数据类型不正确,则可能违反域约束。
域约束指定在每个元组中,每个属性的值都必须是唯一的。这指定为包括标准数据类型整数、实数、字符、布尔值、可变长度字符串等的数据类型。
示例
Create DOMAIN CustomerName CHECK (value not NULL)
所示示例演示了创建域约束,使 CustomerName 不为 NULL
键约束
可以唯一标识关系中元组的属性称为表键。关系中不同元组的属性值必须是唯一的。
示例
在给定的表中,CustomerID 是 Customer 表的键属性。一个客户很可能只有一个键,CustomerID =1 仅用于 CustomerName =“Google”。
CustomerID | CustomerName | 状态 |
---|---|---|
1 | Active | |
2 | Amazon | Active |
3 | Apple | Inactive |
参照完整性约束
DBMS 中的参照完整性约束基于外键的概念。外键是关系中的重要属性,应在其他关系中引用。参照完整性约束发生在关系引用不同或相同关系键属性的情况下。但是,该键元素必须存在于表中。
示例
在上例中,我们有 2 个关系:Customer 和 Billing。
CustomerID =1 的元组在 Billing 关系中被引用了两次。因此,我们知道 CustomerName=Google 的账单金额为 300 美元。
关系模型中的操作
在关系数据库模型中执行的四个基本更新操作是
插入、更新、删除和选择。
- Insert 用于将数据插入到关系中
- Delete 用于从表中删除元组。
- Modify 允许您更改现有元组中某些属性的值。
- Select 允许您选择特定范围的数据。
每当应用这些操作之一时,关系数据库模式上指定的完整性约束绝不能被违反。
插入操作
Insert 操作提供新元组的属性值,该元组应插入到关系中。
Update 操作
您可以看到,在下面的关系表中,CustomerName='Apple' 从 Inactive 更新为 Active。
删除操作
要指定删除,关系属性上的条件将选择要删除的元组。
在上例中,CustomerName="Apple" 已从表中删除。
如果被删除的元组被同一 数据库 中其他元组的外键引用,则 Delete 操作可能会违反参照完整性。
Select 操作
在上例中,选择了 CustomerName="Amazon"
创建关系模型的最佳实践
- 数据需要表示为关系的集合
- 每个关系都应在表中清晰地描绘
- 行应包含关于实体实例的数据
- 列必须包含关于实体属性的数据
- 表的单元格应包含单个值
- 每列都应有一个唯一的名称
- 没有两行可以相同
- 属性的值应来自同一域
关系数据库模型的优点
- 简单性:DBMS 中的关系数据模型比层次模型和网络模型更简单。
- 结构独立性:关系数据库仅关注数据而不关注结构。这可以提高模型的性能。
- 易于使用:DBMS 中的关系模型易于使用,因为由行和列组成的表非常自然且易于理解。
- 查询能力:它使得像 SQL 这样的高级查询语言可以避免复杂的数据库导航。
- 数据独立性:关系数据库的结构可以在不更改任何应用程序的情况下进行更改。
- 可扩展性:关于记录或行的数量以及字段的数量,应扩大数据库以增强其可用性。
关系模型的缺点
- 某些关系数据库对字段长度有限制,无法超过。
- 随着数据量的增长以及数据之间关系的复杂化,关系数据库有时会变得复杂。
- 复杂的关系数据库系统可能导致孤立的数据库,其中信息无法从一个系统共享到另一个系统。
摘要
- 关系数据库建模将数据库表示为一组关系(表)
- 属性、表、元组、关系模式、度、基数、列、关系实例是关系模型的一些重要组成部分
- 关系完整性约束是指 DBMS 中有效关系方法必须存在的条件
- 如果属性值不在相应的域中或数据类型不正确,则可能违反域约束
- 关系模型中的约束执行的操作包括插入、选择、修改和删除
- 关系数据库仅关注数据而不关注结构,这可以提高模型的性能
- DBMS 中关系模型的优点包括简单性、结构独立性、易用性、查询能力、数据独立性、可扩展性等。
- 某些关系数据库对字段长度有限制,无法超过。