- 关系数据库设计
- DBMS - 数据库规范化
- DBMS - 数据库连接
- 存储和文件结构
- DBMS - 存储系统
- DBMS - 文件结构
- 事务和并发
- DBMS - 事务
- DBMS - 并发控制
- DBMS - 死锁
- 备份和恢复
- DBMS - 数据备份
- DBMS - 数据恢复
- DBMS 有用资源
- DBMS - 快速指南
- DBMS - 有用资源
- DBMS - 讨论
DBMS - 连接
我们了解获取两个关系的笛卡尔积的好处,它为我们提供了所有配对在一起的可能元组。但在某些情况下,获取笛卡尔积可能不可行,例如我们遇到具有数千个元组的大型关系,这些元组具有相当多的属性。
连接是笛卡尔积与选择过程的组合。当且仅当满足给定的连接条件时,连接操作才会将来自不同关系的两个元组配对。
我们将在以下部分简要描述各种连接类型。
θ 连接
θ 连接组合来自不同关系的元组,前提是它们满足 θ 条件。连接条件用符号θ表示。
符号
R1 ⋈θ R2
R1 和 R2 是具有属性 (A1, A2, .., An) 和 (B1, B2,.. ,Bn) 的关系,使得这些属性之间没有任何共同点,即 R1 ∩ R2 = Φ。
θ 连接可以使用各种比较运算符。
| 学生 | ||
|---|---|---|
| 学号 | 姓名 | 年级 |
| 101 | Alex | 10 |
| 102 | Maria | 11 |
| 科目 | |
|---|---|
| 班级 | 科目名称 |
| 10 | 数学 |
| 10 | 英语 |
| 11 | 音乐 |
| 11 | 体育 |
学生详细信息 -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
| 学生详细信息 | ||||
|---|---|---|---|---|
| 学号 | 姓名 | 年级 | 班级 | 科目名称 |
| 101 | Alex | 10 | 10 | 数学 |
| 101 | Alex | 10 | 10 | 英语 |
| 102 | Maria | 11 | 11 | 音乐 |
| 102 | Maria | 11 | 11 | 体育 |
等值连接
当 θ 连接仅使用等号比较运算符时,称为等值连接。上面的示例对应于等值连接。
自然连接(⋈)
自然连接不使用任何比较运算符。它不像笛卡尔积那样进行连接。只有当两个关系之间存在至少一个公共属性时,我们才能执行自然连接。此外,这些属性必须具有相同的名称和域。
自然连接作用于那些匹配的属性,其中两个关系中属性的值相同。
| 课程 | ||
|---|---|---|
| 课程ID | 课程名称 | 系别 |
| CS01 | 数据库 | CS |
| ME01 | 力学 | ME |
| EE01 | 电子学 | EE |
| 系主任 | |
|---|---|
| 系别 | 主任 |
| CS | Alex |
| ME | Maya |
| EE | Mira |
| 课程 ⋈ 系主任 | |||
|---|---|---|---|
| 系别 | 课程ID | 课程名称 | 主任 |
| CS | CS01 | 数据库 | Alex |
| ME | ME01 | 力学 | Maya |
| EE | EE01 | 电子学 | Mira |
外连接
θ 连接、等值连接和自然连接称为内连接。内连接仅包含具有匹配属性的元组,其余元组在结果关系中被丢弃。因此,我们需要使用外连接将参与关系中的所有元组包含在结果关系中。外连接有三种类型:左外连接、右外连接和全外连接。
左外连接(R
S)
左关系 R 中的所有元组都包含在结果关系中。如果 R 中的元组在右关系 S 中没有匹配的元组,则结果关系的 S 属性将设为 NULL。
| 左 | |
|---|---|
| A | B |
| 100 | 数据库 |
| 101 | 力学 |
| 102 | 电子学 |
| 右 | |
|---|---|
| A | B |
| 100 | Alex |
| 102 | Maya |
| 104 | Mira |
| 课程 |
|||
|---|---|---|---|
| A | B | C | D |
| 100 | 数据库 | 100 | Alex |
| 101 | 力学 | --- | --- |
| 102 | 电子学 | 102 | Maya |
右外连接:(R
S)
右关系 S 中的所有元组都包含在结果关系中。如果 S 中的元组在 R 中没有匹配的元组,则结果关系的 R 属性将设为 NULL。
| 课程 |
|||
|---|---|---|---|
| A | B | C | D |
| 100 | 数据库 | 100 | Alex |
| 102 | 电子学 | 102 | Maya |
| --- | --- | 104 | Mira |
全外连接:(R
S)
两个参与关系中的所有元组都包含在结果关系中。如果两个关系都没有匹配的元组,则它们各自未匹配的属性将设为 NULL。
| 课程 |
|||
|---|---|---|---|
| A | B | C | D |
| 100 | 数据库 | 100 | Alex |
| 101 | 力学 | --- | --- |
| 102 | 电子学 | 102 | Maya |
| --- | --- | 104 | Mira |