全国计算机等级考试《二级C语言程序设计》专用教材【考纲分析+考点精讲+真题演练+强化习题】
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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选项。