1.3.2 关系运算

1.3.2 关系运算

关系模型提供了一组关系运算。关系的基本运算有两类:传统的集合运算(并、交、差等)和专门的关系运算(选择、投影、连接),关系数据库进行数据查询时有时需要几个基本运算的组合。

设有两个关系R和S,进行集合运算,必须具有相同的关系模式,即R和S具有相同的属性集。

1.并运算

R和S的并运算是由属于R或属于S的元组组成的集合,运算符为“∪”。记为R∪S。

2.差运算

R和S的差运算是由属于R但不属于S的元组组成的集合,运算符为“-”。记为R-S。

3.交运算

R和S的交运算是由既属于R又属于S的元组组成的集合,运算符为“∩”。记为R∩S,R∩S=R-(R-S)。

任务1.1 已知关系R和S,如表1-4、表1-5所示,求两者并、差和交。

表1-4 关系R

表1-5 关系S

解答:

关系R和S的并、差和交的运算结果如表1-6、表1-7、表1-8所示。

表1-6 关系R∪S

表1-7 关系R-S

表1-8 关系R∩S

4.选择运算

选择运算是指从一个关系中选取满足给定条件的所有元组。其中的条件是以逻辑表达式表示,值为真的元组将被选取。

选择运算是一个一元运算,运算对象是一个关系,从关系中抽取满足条件的元组(从表中抽取满足条件的行),经过选择运算可以得到一个新的关系,其关系模型不变,其中的元组是原关系的一个子集。

5.投影运算

投影运算是从关系中选取若干个属性组成一个新的关系,并去掉重复的元组,是对关系的属性进行筛选。

投影运算也是一个一元运算,运算对象也是一个关系,从关系中抽取指定的属性(从表中抽取指定的字段),其属性的个数往往比原属性少,同时也可能减少某些元组。这是因为排除了一些属性后,特别是排除了关系中关键字属性后,所选属性可能有相同值,出现了相同的元组,而关系中必须排除相同的元组,从而有可能减少某些元组。

6.连接运算

选择和投影运算都属于一元运算,它们的操作对象只是一个关系。连接运算是二元运算,需要两个关系作为操作对象。

连接运算是将两个关系模式通过公共的属性连接成一个新的关系模式,新关系中包含满足连接条件的元组。运算过程通过连接条件来控制的,连接条件中将出现两个关系中的公共属性,或者具有相同语义、可比的属性。

连接运算可分为等值连接和自然连接。

在连接运算中,连接关系的属性值对应相等的条件进行的连接操作称为等值连接,自然连接是去掉重复属性的等值连接。它属于连接运算的一个特例。

如果需要两个以上的关系进行连接,应当两两进行。

任务1.2 已知学生关系,如表1-9所示,成绩关系,如表1-10所示。试运算:

(1)在学生关系中,显示男生。

(2)在学生关系中,显示学号、姓名和班级。

(3)根据学生关系与成绩关系的公共属性“学号”,建立等值连接和自然连接。

表1-9 学生(X)

表1-10 成绩(C)

解答:

(1)学生关系中,显示男生,选择的结果,如表1-11所示。

表1-11 显示男生

(2)学生关系中,显示学生的学号、姓名和班级,投影的结果,如表1-12所示。

表1-12 显示学号、姓名和班级

(3)学生关系与成绩关系的等值连接,如表1-13所示。

表1-13 等值连接

在表1-13中,学号(X)为学生关系中的属性,学号(C)为成绩关系中的属性,其值对应相等,为重复属性,去掉重复的学号(C),得到自然连接。