首页 理论教育 关系R和关系S进行关系运算的结果及方法

关系R和关系S进行关系运算的结果及方法

时间:2023-11-15 理论教育 版权反馈
【摘要】:例1-1已知关系R和关系S具有相同的属性,求R与S的并、交、差运算的结果。表1-12学生表(关系R)选择运算。例1-6已知关系R和关系S,进行R与S的条件连接运算,即:。图1-13关系的条件连接运算答案解析:将关系R的C列与关系S的D列相比较,如果C列的值大于D列的值,那么对应的元组做笛卡儿积运算。例1-8已知关系S“读者借阅表”和关系T“超期罚款表”,依据“读者卡号

关系R和关系S进行关系运算的结果及方法

关系数据库建立在严格的数学二维理论基础上,数据结构简单,易于操作和管理,同一个关系中不存在相同的记录,从而避免了数据的重复输入,最大限度地减少了数据冗余。

1.数据操作

数据操纵是数据模型描述内容之一,关系模型是数据模型的一个分支,所以关系数据库中的关系也存在对数据的操作。在关系数据库中的数据操作对象和操作结果都是关系,即若干记录的集合。

关系的基本数据操作包括4种操作类型。

(1)数据查询:查找用户需要的元组

(2)数据插入:在关系内插入一些新的元组。

(3)数据删除:在关系内删除没有用的一些元组。

(4)数据修改:在关系内修改一些元组的属性内容。

2.关系运算

关系可以看作集合,关系也有运算,关系的运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除运算等)。有些查询需要几个基本运算的组合,要经过若干步骤才能完成。

1)传统的关系运算

进行并、交、差集合运算的两个关系必须具有相同的关系模式,即具有相同的属性。

(1)并运算(R∪S)。

两个关系的元组组成的集合。运算符为“∪”,记作“R∪S”,即将S中的元组追加到R中。

(2)交运算(R∩S)。

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

(3)差运算。

差运算即从R中去掉S中也有的元组组组成的集合。运算符为“-”,记作“R-S”。

例1-1 已知关系R(表1-4)和关系S(表1-5)具有相同的属性,求R与S的并、交、差运算的结果。

表1-4 R

表1-5 S

R与S的并运算结果如表1-6所示。

表1-6 R∪S

R与S的交运算结果如表1-7所示。

表1-7 R∩S

R与S的差运算结果如表1-8所示。

表1-8 R-S

(4)广义笛卡儿积运算。

设两个关系R和S的属性列数分别是m和n,元组分别是i和j,R和S的广义笛卡儿积是一个(m+n)个属性列的元组的集合,每一个元组的前m个分量来自R的一个元组,后n个分量来自S的一个元组,共有i×j个元组。运算符号为“×”笛卡儿积记为“R×S”。

例1-2 已知学生表(表1-9)和课程表(表1-10)两个关系,求两关系的广义笛卡儿积。

表1-9 学生表

表1-10 课程表

学生表与课程表的广义笛卡儿积运算结果如表1-11所示。

表1-11 学生表×课程表

注:做广义笛卡儿积运算的关系不一定要求属性相同。

2)专门的关系运算

专门的关系运算包括选择、投影、连接和除运算。这些运算不仅涉及关系的水平方向(元组),而且也涉及关系的垂直方向(属性)。

设有学生表(关系R)如表1-12所示,以下运算都是基于关系R的运算。

表1-12 学生表(关系R)

(1)选择运算。

选择又称为限制,它是在关系R中选择满足给定条件的诸元组,记作:σf(R)。其中f表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

选择运算实际上是从关系R中选取使逻辑表达式f为真的元组,这是从行的角度进行的运算。(www.xing528.com)

例1-3 对表1-12中的关系R,求性别为男的学生,记作σ性别=“男”(学生表),结果如表1-13所示。

表1-13 选择运算的结果

(2)投影运算

关系R上的投影是从R中选择出若干属性列组成新的关系,记作:∏A(R)。其中A为R中的属性列。

投影操作是从列的角度进行的运算,相当于对关系进行垂直分解,其属性的个数往往比原属性少或排列顺序不同。

例1-4 对表1-12中的关系R,要得到由学生的学号和姓名的一个新关系。

分析:要得到由学生的学号和姓名的一个新关系,需用投影运算,运算的表达式为:

学号,姓名(学生表),运算结果如表1-14所示。

表1-14 投影运算结果

(3)连接运算。

连接运算是从两个或多个关系的笛卡儿积中选取属性间满足一定条件的元组,记作:img。其中A和B分别为R和S上列数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡儿积R×S中选取关系R在A属性组上的值与关系S在B属性组上值满足比较关系θ的元组。

连接运算有两种最为重要也是最为常用的连接,即等值连接和自然连接。

① 等值连接。

当θ为“=”时的连接称为等值连接。它是从关系R与S中的选取A,B属性值相等的元组做笛卡儿积,组成新的元组。等值连接记作:img

例1-5 已知关系R“档案”表(见表1-15)和关系S“借阅”表(见表1-16),若想由“读者卡号”确定借书详细情况组成的新关系,可通过下面的等值连接来实现。

结果为关系“借书明细表”,如表1-17所示。

答案解析:档案表里的读者卡号与借阅表里的读者卡号相比较,如果两者相等,那么相等的元组做笛卡儿积运算。

② 自然连接。

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的属性含有相同的属性组,并且要在结果中把重复的属性去掉。即若R与S具有相同的属性组B,自然连接可记作img

若对例1-5进行自然连接,其结果如表1-18所示。

答案解析:在表1-17中去掉重复的属性“读者卡号”。

一般的连接是从行的角度进行运算的,但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

连接运算除常用的等值连接和自然连接外,还有条件连接和外连接。

③ 条件连接。

条件连接是指从两个关系的笛卡儿积中选取属性间满足一定条件的元组。

例1-6 已知关系R和关系S,进行R与S的条件连接运算,即:img

求解步骤如图1-13所示。

图1-13 关系的条件连接运算

答案解析:将关系R的C列与关系S的D列相比较,如果C列的值大于D列的值,那么对应的元组做笛卡儿积运算。

④ 外连接——左外连接。

两个关系做笛卡儿积运算,结果集包括指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有列为空值。

例1-7 已知关系S“读者借阅表”和关系T“超期罚款表”,依据“读者卡号”为公共连接属性,则关系S与关系T左外连接结果如图1-14所示。

图1-14 关系的左外连接运算

⑤ 外连接——右外连接。

右外连接是左外连接的反向连接,即返回右表的所有行,如果右表的某行在左表中没有匹配行,则将为左表各列返回空值。

例1-8 已知关系S“读者借阅表”和关系T“超期罚款表”,依据“读者卡号”为公共连接属性,则关系S与关系T右外部连接结果如图1-15所示。

图1-15 关系的右外连接运算

(4)除运算。

关系R与关系S的除法运算应满足的条件是:关系S的属性全部包含在关系R中,关系R的一些属性不包含在关系S中。关系R与关系S的除法运算表示为R÷S。除法运算的结果也是关系,而且该关系中的属性由R中除去S中的属性之外的全部属性组成,元组由R与S中在所有相同属性上有相等值的那些元组组成。

例1-9 已知关系R与关系S,求R÷S,结果如图1-16所示。

图1-16 关系的除运算

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈