3. 连接 ⋈
连接运算是二元运算,即涉及到两个关系的运算。假设参与运算的两个关系是R和S,则连接运算的结果是R和S笛卡儿积中满足属性间既定条件的元组的集合,即它是R和S笛卡儿积的一个子集。连接运算常用的主要有两种:等值连接和自然连接。
1)等值连接
对于关系R和S,假设F和M分别是关系模式R和S的属性子集,如果按照F和M进行连接,则R和S的等值连接表示为:
xrxs表示由元组xr和xs连接起来而构成的新元组。等值连接R S是R和S笛卡儿积的一个子集,子集中的元组在F和M上的取值相等。
2)自然连接
自然连接是一种特殊的等值连接,它是在等值连接的基础上加上两个条件:
(1)参与比较的属性子集F 和M 必须是相同的,即F=M;
(2)形成的新关系中不允许存在重复的属性,如果有则去掉。R和S的自然连接可以表示为:
F是关系R和S都包含的属性(组)。
表2.9和表2.10所示的两个关系,分别表示学生的基本信息和学生的考试成绩。
等值连接stu_info⋈ 年龄=高数grade和stu_info⋈ 姓名=姓名grade以及
自然连接stu_info ⋈ 姓名grade的结果分别见表2.11、表2.12和表2.13所示。
从这三个结果的对比中读者不难比较这几种连接的区别。
4. 除/
对于关系模式R(LR)和S(LS),约定:
LR --- R的属性集
LS --- S的属性集
L = LR ∩LS (即L表示关系R和关系S的公共属性)
Lx= {t(L) | t∈R∧t(LR-L)=x} (其中,x∈πLR -L(R) ,Lx称为x在R中关于L的像集)
R和S的除运算产生一个新关系R/S:
该新关系由投影 x∈πLR -L(R)中的某些元组组成,这些元组在R中关于L的像集包含S在L上的投影πL(S)。即:
相同部分所在行