4.3 关系代数
【考点1】关系模型的基本操作
关系模型有插入、删除、修改和查询四种操作,它们又可以进一步分解成六种基本操作:
(1)关系的属性指定
指定一个关系内的某些属性,用它确定关系这个二维表中的列,它主要用于检索或定位。
(2)关系的元组的选择
用一个逻辑表达式给出关系中所满足此表达式的元组,用它确定关系这个二维表的行,它主要用于检索或定位。
(3)两个关系的合并
将两个关系合并成一个关系。用此操作可以不断合并从而可以将若干个关系合并成一个关系,以建立多个关系间的检索与定位。
(4)关系的查询
在一个关系或多个关系间做查询,查询的结果也为关系。
(5)关系元组的插入
在关系中增添一些元组,用它完成插入与修改。
(6)关系元组的删除
在关系中删除一些元组,用它完成删除与修改。
【考点2】关系模型的基本运算
(1)插入
插入可用集合并运算表示为:R∪R′
(2)删除
删除可用集合差运算表示为:R-R′
(3)修改
修改关系R内的元组内容可用下面的方法实现:
①设需修改的元组构成关系R′,则先做删除得:R-R′
②设修改后的元组构成关系R″,此时将其插入即得到结果:(R-R′)∪R″
(4)查询
用于查询的三个操作无法用传统的集合运算表示,需要引入一些新的运算。
①投影运算
对于关系内的域指定可引入新的运算叫投影运算,它是一元运算。
一个关系通过投影运算(并由该运算给出所指定的属性)后仍为一个关系R′。R′是R中投影运算所指出的那些域的列所组成的关系。
②选择运算。
它是一个一元运算,关系R通过选择运算后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。设关系的逻辑条件为F,则R满足F的选择运算可写成为:σF(R)
③笛卡儿积运算。
对于两个关系的合并操作可以用笛卡儿积表示。设有n元关系R及m元关系S,它们分别有p、q个元组,则关系R与S经笛卡儿积记为R×S,该关系是一个n+m元关系,元组个数是p×q,由R与S的有序组组合而成。
【真题演练】
1有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是( )。[2014年9月真题]
A.并
B.投影
C.交
D.选择
【答案】A
【解析】关系运算包括:①选择运算是行层次的操作,是从关系中找出满足给定条件的那些元组,从水平方向抽取元组。②投影运算是列层次的操作,是从R中选择出若干属性列组成新的关系。③连接运算是将两个关系拼接成一个新的关系,生成的新关系中包含满足条件的元组。并运算是将S中的记录追加到R后面,与题目中结果相符。答案选择A选项。
2有两个关系R,S如下,由关系R和S通过运算得到关系T,则所使用的操作为( )。[2014年3月真题]
A.并
B.自然连接
C.笛卡尔积
D.差
【答案】D
【解析】差结果是属于R但不属于S的记录组成的集合,写为R-S。关系T中记录(b,1,n1)属于R但不属于S,所以R-S=T。答案选择D选项。
3有两个关系R,S如下:
由关系R通过运算得到关系S,则所使用的运算为( )。[2013年9月真题]
A.选择
B.投影
C.插入
D.连接
【答案】B
【解析】关系S是由关系R的第1、2列组成,很显然这是对关系R进行投影运算的结果。可以简单理解为:选择运算是对行的操作,投影运算是对列的操作。答案选择B选项。
4在学生表中要查找所有年龄大于30岁姓王的男同学,应该采用的关系运算是( )。[2015年3月真题]
A.选择
B.投影
C.联接
D.自然联接
【答案】A
【解析】关系运算包括:选择、投影和连接。①选择:从关系中找出满足给定条件的元组。选择是从行的角度进行的运算,即从水平方向抽取记录。是单目运算。②投影:从关系模式中指定若干个属性组成新的关系。投影是从列的角度进行的运算,是单目运算。③连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。是双目运算。此题干要求从关系中找出同时满足两个条件的元组,应进行的运算是选择,答案选择A选项。
5有两个关系R与s如下,由关系R和s得到关系T,则所使用的操作为( )。[2013年3月真题]
A.并
B.自然连接
C.笛卡尔积
D.交
【答案】C
【解析】C项正确,笛卡儿积是用R集合中的元素为第一元素,S集合中的元素为第二元素构成的有序对。AD两项,并是将S中的记录追加到R后面;交是关系R和S的公共元组组成的集合。这两种操作中,关系R与S要求有相同的结构。B项,自然连接是指去掉重复属性的等值连接。答案选择C选项。
【考点3】关系代数中的扩充运算
(1)交运算
关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组所组成,记为R∩S。
交运算可由基本运算推导而得:R∩S=R-(R-S)。
(2)除运算
除运算是笛卡尔积运算的逆运算,若T=R×S时,除运算可写成:T÷R=S或T/R=S。
(3)连接与自然连接运算
①连接运算又可称为θ-连接运算,这是一种二元运算,通过它可以将两个关系合并成一个大关系。设有关系R、S以及比较式iθj,其中i为R中的域,j为S中的域,θ含义同前。则可以将R、S在域i,j上的θ连接记为:
它的含义可用下式定义:
即R与S的θ连接是由R与S的笛卡儿积中满足限制iθj的元组构成的关系,一般其元组的数目远远少于R×S的数目。应当注意的是,在θ连接中,i与j需具有相同域,否则无法作比较。
在θ连接中如果θ为“=”,就称此连接为等值连接,否则称为不等值连接。
②自然连接满足下面的条件:
a.两关系间有公共域;
b.通过公共域的相等值进行连接。
【真题演练】
1有3个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( )。[2013年3月真题]
A.并
B.自然连接
C.笛卡儿积
D.交
【答案】D
【解析】关系T是从关系R与关系S中取得相同的关系组,所以使用的是交运算。A项,并运算将S中的记录追加到R后面;B项,自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉;C项,笛卡儿积是用R集合中元素为第一元素,S集合中元素为第二元素构成的所有可能的有序对。答案选择D选项。
2有两个关系R与S如下,由关系R和S得到关系T,则所使用的操作为( )。
A.并
B.自然连接
C.除法
D.交
【答案】C
【解析】除运算可以近似地看作笛卡尔积的逆运算。R÷S=T,T称为R除以S的商。S中属性为A和A1,T中属性为B和B1,在R元组中找到对应于S中两个元组的T中元组为f 3与n 2。R中最后一个元组与S中无对应关系,所以在T中也不会出现。答案选择C选项。
3有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为( )。[2013年9月真题]
A.选择
B.投影
C.交
D.并
【答案】D
【解析】选择和投影操作对单个关系进行操作,选择运算是对行的操作,投影运算是对列的操作。交和并运算要求参与运算的表具有相同的属性,交运算的结果是两个表的公共部分,并运算的结果包含两个表的所有元素。观察三个关系的元组可知,关系T=R∪S。答案选择D选项。