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
广告

© . All rights reserved.