主键和外键:数据库关系建模的基础,深入理解其作用与约束
发布时间: 2024-07-24 06:17:32 阅读量: 59 订阅数: 40
![主键和外键:数据库关系建模的基础,深入理解其作用与约束](https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/news/images/1622603599892040159.png)
# 1. 数据库关系建模基础
数据库关系建模是设计数据库架构的关键步骤,它涉及创建实体、属性和关系,以表示现实世界中的数据。关系建模的目的是创建一种有效且高效的数据存储和检索系统。
在关系建模中,实体是现实世界中具有可识别特征的对象,例如客户、产品或订单。属性是描述实体特征的属性,例如客户姓名、产品价格或订单日期。关系是实体之间建立的关联,例如客户与订单之间的关系。
关系建模遵循特定的规则和原则,以确保数据库的完整性和一致性。这些规则包括实体完整性、参照完整性和级联操作。实体完整性确保每个实体都有一个唯一标识符,称为主键。参照完整性确保外键列的值在关联表中具有对应的值。级联操作定义当父表中的记录被删除或更新时,对子表中相关记录执行的操作。
# 2. 主键与外键的概念和作用
### 2.1 主键:唯一标识符和数据完整性
**概念:**
主键是数据库表中唯一标识每条记录的一个或多个列。它确保表中的每条记录都具有唯一且不可重复的值。
**作用:**
* **唯一标识符:**主键用于区分表中的不同记录,防止重复数据。
* **数据完整性:**通过强制唯一性,主键有助于确保数据的准确性和一致性。
**示例:**
在学生表中,学号通常用作主键,因为它可以唯一标识每个学生。
### 2.2 外键:建立表之间的关联
**概念:**
外键是表中的一列,它引用另一张表中的主键。它建立了表之间的关系,允许我们根据共同的值链接数据。
**作用:**
* **建立关联:**外键将表连接起来,允许我们查询和检索跨多个表的数据。
* **数据完整性:**外键有助于确保数据完整性,因为它强制引用表中存在的有效记录。
**示例:**
在订单表中,客户 ID 列通常用作外键,它引用客户表中的主键,建立了订单与客户之间的关联。
#### 外键约束
**参照完整性:**外键约束确保外键值在被引用的表中存在,防止无效引用。
**级联操作:**级联操作定义了当被引用的记录被删除或更新时,对引用记录的处理方式。
| 级联操作 | 描述 |
|---|---|
| CASCADE | 级联删除或更新引用记录 |
| RESTRICT | 禁止删除或更新被引用的记录 |
| SET NULL | 将引用记录的外键值设置为 NULL |
| SET DEFAULT | 将引用记录的外键值设置为默认值 |
**示例:**
如果我们删除客户表中的客户记录,并且订单表中的外键约束设置为 CASCADE,则所有引用该客户的订单记录也会被删除。
# 3. 主键和外键的约束
### 3.1 主键约束:唯一性和非空性
主键约束是确保表中每一行都具有唯一标识符的一组规则。它强制执行以下限制:
- **唯一性:**表中每一行都必须具有一个唯一的值。
- **非空性:**主键列不能包含 NULL 值。
这些约束对于维护数据完整性和准确性至关重要。唯一性约束防止重复行,而非空性约束确保主键始终存在,即使其他列的值为 NULL。
### 3.2 外键约束:参照完整性和级联操作
外键约束是确保表之间关联关系完整性的一组规则。它强制执行以下限制:
- **参照完整性:**外键值必须引用父表中存在的行。
- **级联操作:**当父表中的行被删除或更新时,外键表中的相关行会自动进行相应的操作。
级联操作有三种类型:
-
0
0