天天看点

关系代数运算之连接运算

原文转自 https://blog.csdn.net/f_kld/article/details/77168351

1.关于连接的理解:连接也称为θ连接,关系R与关系S的连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接。这个条件为θ(比较运算符,如>、<、=)。

2.自然连接:是一种特殊的等值连接,比较两个关系中分量相同的属性组,并且在结果中把重复的属性列去掉,最后只保留属性组中分量相同的元组。

3.左连接:在自然连接的基础上加上左边表上不包含自然连接中所含元组(行)的元组。

4.右连接:在自然连接的基础上加上右边表上不包含自然连接中所含元组(行)的元组。

5.外连接:左连接+右连接

下面用一个例子来说明上述连接:

关系R

A B C
2 4 6
3 5 7
4 6 8

关系S

B C D
4 6 8
5 6 7
4 6 2
6 8 5

关系R与关系S的笛卡尔积为:

R.A R.B R.C S.B S.C S.D
2 4 6 4 6 8
2 4 6 5 6 7
2 4 6 4 6 2
2 4 6 6 8 5
3 5 7 4 6 8
3 5 7 5 6 7
3 5 7 4 6 2
3 5 7 6 8 5
4 6 8 4 6 8
4 6 8 5 6 7
4 6 8 4 6 2
4 6 8 6 8 5

R与S的自然连接:关系R和关系S中的共同属性组为B和C,找出笛卡尔积中B与C对应相等的元组,去掉其中重复的属性值。

A B C D
2 4 6 8
2 4 6 2
4 6 8 5

R与S的左连接:对照关系R中,元组3、7、5不包含在自然连接中,在自然连接的基础上加上该元组,没有属性的列补空值。

A B C D
2 4 6 8
2 4 6 2
4 6 8 5
3 5 7 null

R与S的右连接:对照关系S中,元组5、6、7不包含在自然连接中,在自然连接的基础上加上该元组,没有属性的列补空值。

A B C D
2 4 6 8
2 4 6 2
4 6 8 5
null 5 6 7

R与S的外连接(R⋈S):左连接+右连接。

A B C D
2 4 6 8
2 4 6 2
4 6 8 5
3 5 7 null
null 5 6 7

注意:R(⋈)S,谁在前谁在后。 

继续阅读