配色: 字号:
第2章 关系运算
2022-06-07 | 阅:  转:  |  分享 
  
数据库原理及应用第2章关系运算学习关系运算的意义关系运算是以集合运算等为基础,实现关系数据库中的表中数据的联系,设计关系数据库操作语
言和实现各种数据库操作的数学基础。学习和理解关系运算的机理,对于理解关系数据库中的数据查询机制等,都具有十分重要的意义。主要内容
2.0集合的概念及表示2.1关系的数学定义2.2关系代数第2章关系运算2.0集合的概念及表示一、集合的概念1、
对象人们可以感觉到的客观存在及思想中的事物或抽象符号,都可以称作对象。一、集合的概念2、集合把一些由能够确定的不同的对象构成
的整体,称为由这些对象构成的集合。在数学中,把具有相同属性的事物的全体,称为集合。◆集合的直接表示形式(列举法)是用一对花括
号括住组成集合的元素:例如:{大西洋,太平洋,印度洋,北冰洋}{男,女}一、集合的概念3、元素集合中每个对象
叫做这个集合的元素。◆元素通常用小写的拉丁字母表示,如a、b、c、……。比如,如果设a=男,b=女则(用列举法表示的)集合
{男,女}也可以表示成{a,b}二、元素与集合的关系1、属于如果a是集合A的元素,就说a属于A,记作a∈A。
2、不属于如果a不是集合A的元素,就说a不属于A,记作a?A。三、集合的表示1、列举法(适合于有限元素的集合表示)例
如:①四大洋集合{大西洋,太平洋,印度洋,北冰洋}②人的性别集合{男,女}③小于10的所有自然数的集合{0,1,2
,3,4,5,6,7,8,9}④由1~20以内质数组成的集合{2,3,5,7,11,13,17,19}三、集合的表示2、
描述法(适合于大量或无限元素的集合表示)描述法的一般表示形式为:{x|P(x)}其中:(1)x为该集合的代表元素(传统意义上
的元素变量)。(2)P(x)表示该集合中的元素x所具有的性质。三、集合的表示2、描述法(适合于大量或无限元素的集合表示)例如:
①小于10的自然数集合{t|t<10Λt是自然数}②人的性别集合{t|t=男∨t=女}③不等式解的集合{
x|x-7<3}三、集合的表示3、用大写字母表示集合例如:A={大西洋,太平洋,印度洋,北冰洋}B={男,女}C={t|t
<10Λt是自然数}D={t|t=男∨t=女}四、集合中元素的特性1、确定性给定一个集合,任何对象是不是这个集合的元
素是确定的了。2、互异性集合中的元素一定是不同的。3、无序性集合中的元素没有固定的顺序。五、集合的分类根据集合所含元素个
数不同,可把集合分为如下几类:(1)把不含任何元素的集合叫做空集Ф。(2)含有有限个元素的集合叫做有限集。(3)含有无穷个
元素的集合叫做无限集。第2章关系运算2.1关系的数学定义一、笛卡儿积的数学定义定义2.1设有属性A1和A2分别在值域D
1和D2中取值,则这两个属性的值域集合的笛卡儿积定义为:D1×D2={|d1∈D1且d2∈D2}其中,序偶<d
1,d2>中的两个元素d1和d2是有序的,也即其次序是不能改变的。进一步讲,D1×D2≠D2×D1。例如,笛卡儿坐标系的二维平面
上一个点的坐标<x,y>的次序就是不能改变的。一、笛卡儿积的数学定义定义2.2设有属性A1,A2,…,An分别在值域D1,
D2,…,Dn中取值,则这n个值域集合的笛卡儿积定义为:D1×D2×…×Dn={|dj∈Dj,j=1
,2,…,n}其中:①每个元素称为有序n元组,也即<a1,a2,…,an>=<b1,b2,…,bn>,
当且仅当aj=bj(j=1,2,3…,n)。一、笛卡儿积的数学定义定义2.2设有属性A1,A2,…,An分别在值
域D1,D2,…,Dn中取值,则这n个值域集合的笛卡儿积定义为:D1×D2×…×Dn={|dj∈Dj
,j=1,2,…,n}其中:②有序n元组中的第j个值dj称为有序n元组的第j个分量。若Dj为有限集,且其基数为mj,则n个D
j的笛卡儿积的基数为m=。一、笛卡儿积的数学定义比如:设D1={1,2,3},基数为3;D2={a,b},基数
为2;则有:D1×D2={<1,a>,<1,b>,<2,a>,<2,b>,<3,a>,<3,b>}且基数为3×2=6。对
比基数的定义式:m=可知,笛卡儿积的基数即为笛卡儿积定义的元组集合中的元组的个数。二、关系的数学定义下面通过一个例子,引出关系
的数学定义。一、关系的数学定义例2.1:设D1={李兵,王芳},D2={男,女},D3={北京,上海}。D1×D2×D3={<
李兵,男,北京>,<李兵,男,上海>,<李兵,女,北京>,<李兵,女,上海>,<王芳,男,北京>,<王芳,男,上海>
,<王芳,女,北京>,<王芳,女,上海>}且基数为2×2×2=8。一、笛卡儿积的数学定义分析上述例2.1中的笛卡儿积结果可
知,可将其表示成一个具有8个元组的二维表。姓名(D1)性别(D2)籍贯(D3)李兵男北京李兵男上海李兵女北京李兵女上海王芳男北京王
芳男上海王芳女北京王芳女上海二、关系的数学定义考察例2.1中用表格表示的根据笛卡儿定义所得的结果可知,其内容是难以符合现实中的实
际情况的。姓名(D1)性别(D2)籍贯(D3)李兵男北京李兵男上海李兵女北京李兵女上海王芳男北京王芳男上海王芳女北京王芳女上海例2
.1的笛卡儿结果二、关系的数学定义在实际中,只有取该表格中的一部分元组,其元组值才可能有意义。姓名性别籍贯李兵男北京王芳女上海
有意义!姓名性别籍贯李兵男上海王芳女北京二、关系的数学定义1、关系的数学定义定义2.3笛卡儿积D1×D2×?×Dn的任一子集称
为在域D1,D2,…,Dn上的关系。其中:(1)值域集合D1,D2,…,Dn是关系中元组的取值范围,称为关系的域(Doma
in)。(2)n称为关系的目或关系的度(Degree)。二、关系的数学定义1、关系的数学定义定义2.3笛卡儿积D1×D2×?
×Dn的任一子集称为在域D1,D2,…,Dn上的关系。其中:(1)值域集合D1,D2,…,Dn是关系中元组的取值范围,称为
关系的域(Domain)。(2)n称为关系的目或关系的度(Degree)。n=2时,二元关系n=m时,m元关系三、关系的性质2、
关系的性质(1)关系中的每个属性值都是不可再分的数据单位,即关系表中不能再有子表;(2)关系中任意两行不能完全相同,即关系中
不允许出现相同的元组;(3)关系是一个元组的集合,所以关系中元组间的顺序可以任意;(4)每一个关系都有一个主键,用于唯一地标识
它的各个元组。第2章关系运算2.2关系代数运算对象:关系集合运算符:∩,∪,—,×关系代数专门的关系运算符:÷,π,?,运
算符算数比较符:<,>等逻辑运算符:?,∧,∨运算结果:关系◆关系代数的运算对象和运算符一、基于传统集合理论的关系运算1、并设
关系R和S具有相同的关系模式,R和S的并是由属于R,或属于S,或同时属于R和S的所有元组组成的集合,并定义为:R∪S
={t|t∈R∨t∈S}R?SRS一、基于传统集合理论的关系运算并运算过程:将关系R和S的元组放在
一起,然后消去重复的元组。一、基于传统集合理论的关系运算1、并示例:求R1∪R2R1∪R2ABCabcadefdcABCadef
dcfdeABCabcadefdcfde关系R1关系R2适用于:找出所有出现在两个关系之一的或同时出现在两个关系中的元组的运算需
求。一、基于传统集合理论的关系运算2、交设关系R和S具有相同的关系模式,R和S的交是由既属于R也属于S的所有元组组成
的集合,并定义为:R∩S={t|t∈R∧t∈S}RSR∩S一、基于传统集合理论的关系运算交运算过程:找出同时存
在于关系R和S中的所有相同的元组。一、基于传统集合理论的关系运算2、交示例:求R1∩R2ABCabcadefdcABCade
fdcfdeABCadefdcR1∩R2关系R1关系R2适用于:需要找出那些所有同时出现在两个关系中的元组的运算需求。一、基于传
统集合理论的关系运算3、差设关系R和S具有相同的关系模式,R和S的差运算是由属于R但不属于S的元组组成的集合,并定义
为:R-S={t|t∈R∧t∈S}RSR?S一、基于传统集合理论的关系运算差运算过程:从关系R的元组中去除
它与关系S相同的那些元组。一、基于传统集合理论的关系运算3、差示例:求R1-R2ABCabcadefdcABCadefdcfd
eABCabcR1-R2关系R1关系R2适用于:找出在一个关系中而不在另一个关系中的那些元组的运算需求.一、基于传统集合理论的关
系运算4、广义笛卡儿积由前面的关系的数学定义可知,在面向关系运算的笛卡儿积中,并不强调“序偶”<a,b>和“有序n元组”
<a,a,…,a>中各元素的次序问题。比如:(学号,姓名,性别)和(姓名,学号,性别)的表示只是习惯问题而不是严格的次序问题。
所以,把这种不强调其n元组中元素次序的笛卡儿积运算,称为广义笛卡儿积运算。在广义笛卡儿积运算中,用一对圆括号表示一个n元组。一、
基于传统集合理论的关系运算4、广义笛卡儿积定义:设关系R和S的目数分别为r和s,R和S的笛卡尔积是一个r+s目的元组
集合,每个元组的前r个分量来自R中的一个元组,后s个分量来自S中的一个元组,并定义为:R×S={t|t=(tr,ts
)∧tr∈R∧ts∈S}其中,tj表示t的目数为j。一、基于传统集合理论的关系运算广义笛卡儿积运算过程:用R的第i(i
=1,2,…,m)个元组与S的全部元组(设为n个元组)进行结合(为n个),所以R×S有m×n个元组。一、基于传统集合理论的关
系运算4、广义笛卡儿积示例:求R1×R3R1×R3ABCDEadeghadeijABCDEABCabcadefdcabcg
hDEghijabcij关系R1关系R3一、基于传统集合理论的关系运算4、广义笛卡儿积示例:求R1×R3R1×R
3ABCDEadeghadeijfdcghfdcijABCDEABCabcadefdcabcghDEghijabc
ij关系R1关系R3一、基于传统集合理论的关系运算4、广义笛卡儿积命名机制关系名.属性名R1×R3ABR1.CR3.C
DabcghabcijadeghadeijfdcghfdcijABCabcadefdcCDghij关系R1关系R3广义笛卡儿积适用
于:将任意两个关系的信息无条件组合在一起的运算需求。二、关系代数特有的关系运算1、投影(Projection)设关系R为
r目关系,其元组tr变量为tr=(t1,t2,……,tr),关系R在其分量Aj1,Aj2,…,Ajk(k≤r,j1,j2,…,
jk为1到r之间互不相同的整数)上的投影是一个k目关系,并定义为:πj1,j2,…,jk(R)={t|t=(tj1,tj2,
…,tjk)∧(Aj1,Aj2,…,Ajr)∈R}其中,π为投影运算符。二、关系代数特有的关系运算投影运算过程:首先按照j
1,j2,…,jk的顺序,从关系R中取出列序号为j1,j2,…,jk(或属性名序列为Aj1,Aj2,…,Ajk)的k列,然后
除去结果中的重复元组,构成一个以Aj1,Aj2,…,Ajk为属性顺序的k目关系。投影是从列的角度进行的运算投影的下标可是列序号
,也可是列属性名二、关系代数特有的关系运算1、投影示例:π1,2(R2)ABadfdABCadefdcfdeABadfdfd取
掉重复元组取出A、B两列关系R2适用于:可以从某一关系中选出若干属性列构成新的关系,通常用于查询结果的输出二、关系代数特有的关系
运算2、选择设F是一个命题公式,其运算对象是常量或元组分量(属性名或列序号),运算符为算术比较运算符(<,≤,>,≥,=,≠)
和逻辑运算符(∧,∨,┐)。则关系R关于公式F的选择运算定义为: σF(R)={t|t∈R∧F=true}其中,σ为选择运算
符。σF(R)运算是从R中挑选满足公式F的那些元组。二、关系代数特有的关系运算选择运算过程:σF(R)≡{t∣t∈R∧F(t
)=true}根据由形如<属性名><比较操作符><常量值>或<属性名><比较操作符><属性名>组成的命题公式(关
系表达式)F对关系R作水平(行)分割,从中挑选出满足公式F的那些元组,组成新关系。运算得到的新关系与R的属性相同,
但其元组数量总是小于或等于R中的元组数量。二、关系代数特有的关系运算概念示例:已知关系R如下,计算ABCDdeb2ddg7ed
z9fez9R答案:哪一个结果正确?为什么会有如下的错误结果?ABCDedz9DB9d二、关系代数特有的关系运算2、选择示例:σ
B=’d’∧C=’e’(R1)ABCabcadefdcABCade关系R1运算结果适用于:可以在某一关系中选择满足给定条件的诸元
组构成新的关系二、关系代数特有的关系运算练习ABCabcadefdcCAcaeacf关系R1①π3,1(R1)二、关系代数特有的
关系运算练习ABCadefdcfdeABCadefde关系R2②σ2>3(R2)二、关系代数特有的关系运算3、商设关系R和
S的目数分别为r和s,且r>s,s≠φ,则关系R关于S的商是一个由r-s目元组组成的集合,且如果tr-s?π1,2,…
,r-s(R),则tr-s与S中的每一个元组us组成的新元组必在关系R中。关系R关于S的商记为R÷S
:R÷S={t|t=(t1r,t2r,…,trr-s)∧∧“如果tr-s?π1,2,…,r-s(R),则对于所有的us?S,
成立?R”}也即,其结果是关系R中的那些,后s列都在关系S中的那些元组的前r-s列组成的元组。二、关系代数特有的
关系运算3、商设关系R和S的目数分别为r和s,且r>s,s≠φ,则关系R关于S的商是一个由r-s目元组组成的集合,
且如果tr-s?π1,2,…,r-s(R),则tr-s与S中的每一个元组us组成的新元组必在关系R中。
关系R关于S的商记为R÷S:R÷S={t|t=(t1r,t2r,…,trr-s)∧∧“如果tr-s?π1,2,…,r-s(R
),则对于所有的us?S,成立?R”}二、关系代数特有的关系运算商运算过程:①计算π1,2,…,r-s(R
);②对于π1,2,…,r-s(R)中每一个元组tr-s和所有us?S,如果?R均成立,则tr-s属于结
果关系R÷S中的元组;否则,不属于R÷S中的元组。r-s二、关系代数特有的关系运算例2.4已知关系R和S,求R÷SABab
edABabbcedABCDabcdabefbcefedcdedefabdeCDcdefR÷S关系SπA,B(R)①计算π1,2,
…,r-s(R);关系R②验证?R成立。二、关系代数特有的关系运算自练习题ABCDdcb2fez9feb2edz
9feg7dcg7CDb2g7学生练习关系S关系R计算:二、关系代数特有的关系运算4、连接设关系R和S的目数分别为r和s
,θ是算术比较运算符,则连接运算定义为:二、关系代数特有的关系运算连接运算过程:将R的每个元组的第j个分量与S的每个元组的
第k个分量做?比较运算,当满足比较条件时,就把S的该分量所在元组接在R的相应元组的右边构成一个新关系的元组;当不满足比较条
件时,继续下一次比较,直到关系R和S中的元组都比较完为止。二、关系代数特有的关系运算例2.5已知关系R和S,求RS或
RSABCDE123311236245662ABC123456789DE3162关系S关系R适用于:有选择条件的多个关系的数据
组合运算需求。二、关系代数特有的关系运算连接运算的条件:①RS,F=F1∧F2∧…∧Fm②当Fi中的关系运算符θ
是“=”时,为等值连接。视同一种自然情况下的连接二、关系代数特有的关系运算5、自然连接设关系R和S的目数分别为r和s,
且关系R和S的属性中有部分相同属性A1,A2,…,Ak,则自然连接定义为:其中:表示从S关系的元组变量ts=(,,
…,)中取掉分量S.A1,S.A2,…,S.Ak后所形成的新元组变量。二、关系代数特有的关系运算自然连接运算过程:将R的
每个元组的A1,A2,…,Ak列的值和关系S的每个元组的A1,A2,…,Ak列的值按条件:R.A1=S.A1∧R.A2=S.A
2∧…∧R.Ak=S.Ak进行比较,当条件都满足时,就从关系S中正在比较的元组中去掉被比较的k个分量后,把剩余的分量依原序接在
关系R的元组的右边构成新关系的一个元组;当至少有一个条件不满足时,就继续下一次比较,直到关系R和S中的元组均比较完为止。二、
关系代数特有的关系运算例2.6已知关系R和S,求RSRABCabcdbcbbfcadSABCDdbcddbceABCDBC
Dbcdbceadbabcdabce二、关系代数特有的关系运算例2.6已知关系R和S,求RSRABCabcdbcbbfcad
SABCDdbcddbcecadbABCDBCDbcdbceadbabcdabcecadb二、关系代数特有的关系运算补充题:已知关
系R和S如下,计算R1=RS。RABC135246357SABCDdbcddbcecadbCD756784abcdab
cecadb二、关系代数特有的关系运算补充题:已知关系R和S如下,计算R1=RS。CD756784ABC1352463
57RS答案:哪一个结果正确?为什么会有如下的错误结果?ABD135247354ABR.CS.CD2466735775ABCD24
673575二、关系代数特有的关系运算5、自连联接需要关注的问题——自然联接与等值连接的区别:当两个关系R和S有相同属性时
,自然联接与等值连接都是判断在相同属性上的值是否相等。但结果关系中,自然连接的公共属性只出现一次,而等值连接的公共属性则要重复出现
;当关系R和S无公共属性时,R与S的自然连接即为R与S的广义笛卡儿积。#基本的关系运算方法小结1、并:2、交:
3、差:4、广义笛卡儿积:5、投影:6、选择:7、商:8、连接:9、自然连接:传统的关系运算∪∩均可用集合理论来定义基
本关系运算-??特有的关系运算??三、关系运算综合示例1、交设R和S具有相同的关系模式。定义:R∩S=R-(R-S)或
R∩S=S-(S-R)三、关系运算综合示例2、商设R和S的目数分别为r和s,且r>s,s≠φ。用基本关系代数运算可定义
商为:R÷S=π1,2,…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例例2
.7已知关系R和S如图2.7的(a)和(b),求R÷S。ABCDaabeeabbcddbceeceddffdfeCDcedf(a
)关系R(b)关系S三、关系运算综合示例例2.7已知关系R和S如图2.7的(a)和(b),求R÷S。ABCDaabeeabbc
ddbceeceddffdfeCDcedfABabebcd(a)关系R(b)关系S(c)π1,2(R)R÷S=π1,2,…,
r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例例2.7已知关系R和S如图2.7
的(a)和(b),求R÷S。ABCDaabbeebbccddcececedfdfdfABCDaabeeabbcddbceecedd
ffdfeCDcedfABabebcd(a)关系R(b)关系S(c)π1,2(R)(d)π1,2(R)×SR÷S=π1,
2,…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例例2.7已知关系R和S如
图2.7的(a)和(b),求R÷S。ABCDaabbeebbccddcececedfdfdfABCDaabeeabbcddbcee
ceddffdfeABCDbccd(a)关系R(e)π1,2(R)×S-R(d)π1,2(R)×SR÷S=π1,2,
…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例例2.7已知关系R和S如图2
.7的(a)和(b),求R÷S。ABCDaabeeabbcddbceeceddffdfeABCDbccd(a)关系RABbc(e
)π1,2(R)×S-R(f)π1,2((π1,2(R)×S)-R)(e)R÷S=π1,2,…,r-s(R)-π1,
2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例例2.7已知关系R和S如图2.7的(a)和(b),求
R÷S。ABCDaabeeabbcddbceeceddffdfeABbcABabebcd(f)π1,2((π1,2(R)×S)
-R)(e)(c)π1,2(R)ABabed(a)关系R(g)R÷S=(c)-(f)R÷S=π1,2,…,r-s(R)
-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)三、关系运算综合示例3、连接设R和S的目数分别为r和s。
用基本关系代数运算可定义连接为:运算过程为:在R和S的广义笛卡儿积中挑选那些其第j个分量和第r+k个分量满足算术比较
条件θ的元组。三、关系运算综合示例例2.8已知R和S如图2.8的(a)和(b)。求RS或RS。ABC14725
8369DE3612(b)关系S(a)关系R三、关系运算综合示例例2.8已知R和S如图2.8的(a)和(b)。求R
S或RS。ABCDE114477225588336699363636121212ABC147258369DE3612(
b)关系S(a)关系R(c)R×S(d)RS2<1三、关系运算综合示例例2.8已知R和S如图2.8的(a)和
(b)。求RS或RS。ABCDE114477225588336699363636121212ABC1472583
69ABCDE114225336366122DE3612(b)关系S(a)关系R(c)R×S4、自然连联接设R
和S的目数分别为r和s,且关系R和S有部分相同属性A1,A2,…,Ak。用基本关系代数运算可定义联接为:其中:是是关
系S中取掉列(重复列)后所剩余的那些列。运算过程为:先计算R和S的广义笛卡儿积,然后从R×S中挑选出同时满足条件:R
.A1=S.A1,R.A2=S.A2,…,R.Ak=S.Ak的元组,投影后再去掉重复值,即为自然联接的运算结果。四、关系代数
运算在关系DB查询中的应用例2.10已知教学管理数据库系统中的七个关系模式如下:学生关系模式:S(S#,SNAME,SSE
X,SBIRTHIN,PLACEOFB,SCODE#,CLASS)专业关系模式:SS(SCODE#,SSNAME)课程关系模
式:C(C#,CNAME,CLASSH)设置关系模式:CS(SCODE#,C#)学习关系模式:SC(S#,C#,GRA
DE)教师关系模式:T(T#,TNAME,TSEX,TBIRTHIN,TITLEOF,TRSECTION,TEL)讲授关系模
式:TEACH(T#,C#)四、关系代数运算在查询中的应用(1)查询全体教师的教职工号、教师姓名、职称和所在教研室。教师关系
模式:T(T#,TNAME,TSEX,TBIRTHIN,TITLEOF,TRSECTION,TEL)解题思路:从教师表中把各教
师的相应属性投影出来。πT#,TNAME,TITLEOF,TRSECTION(T)教职工号姓名职称教研室T040100
1张国庆教授计算机T0401002徐浩讲师计算机T0402001张明敏教授指挥信息系统T0402002李阳洋副教
授指挥信息系统T0403001郭宏伟副教授网络工程T0403002宋歌网络工程或π1,2,5,6(T)四、关系代数运算
在查询中的应用(2)查询全部女学生的基本信息。学生关系模式:S(S#,SNAME,SSEX,SBIRTHIN,PLACEO
FB,SCODE#,CLASS)解题思路:从学生表中选择出那些性别为“女”的元组。σSSEX=’女’(S)或σ3=’
女’(S)学号姓名性别出生年月籍贯专业代码班级201401003王丽丽女1997-02-02上海S040120140120
1402001杨秋红女1997-05-09西安S0402201402201403001赵晓艳女1996-03-11长沙S04032
01403四、关系代数运算在查询中的应用(3)找出专业代码为S0401的男学生的学号和姓名。学生关系模式:S(S#,SNAM
E,SSEX,SBIRTHIN,PLACEOFB,SCODE#,CLASS)解题思路:首先确定涉及到的表,仅有学生表;涉及到的
查询条件有两个,选择专业代码为“S0401”和性别为“男”的元组;最后,查询结果用投影表示出来。πS#,SNAME(σSSE
X=’男’∧SCODE#=’S0401’(S))或π1,2(σ3=’男’∧6=’s0401’(S))
学号姓名201401001张华四、关系代数运算在查询中的应用(4)找出选修了课程号为C401001或课程号为C40100
2的学生的学号。学习关系模式:SC(S#,C#,GRADE)解题思路:在SC表中判断元组是否满足条件为选修了课程号C40
1001或C401002,可以在选择条件中用“∨”连接“或”的条件;也可以分别查询出满足条件的元组,再并运算。学号201401
001201401002201402001πS#(σC#=’C401001’∨C#=’C401002’(SC))或πS
#(σC#=’C401001’(SC))∪πS#(σC#=’C401002’(SC))四、关系代数运算在查询中的应用
(5)找出选修了课程号为C401001和课程号为C403001的学生的学号。SC(S#,C#,GRADE)解题思路:因此,
可利用连接运算创造出对于某一个学生来说,一个元组中有两个课程号能分别满足不同的课程号要求;另一种办法为分别求出满足条件的元组,再交
运算。学号201401001201401002π1(σ2=’C401001’∧5=’C403001’(SCSC))或π
S#(σC#=’C401001’(SC))∩πS#(σC#=’C403001’(SC))四、关系代数运算在查询中的应用
(6)找出选修了课程号为C402002的学生的学号、姓名和考试成绩。SC(S#,C#,GRADE)S(S#,SNAME
,SSEX,….,SCODE#,CLASS)解题思路:首先确定涉及到的表,学号和姓名在S表中,成绩在SC表中,而S表和S
C表具有相同属性S#,因此需将两个表作自然联接操作;查询条件为选修了课程号C402002,作选择操作;最后,投影出查询结果的列
。学号姓名分数201401001张华90201401002李建平88201401003王丽丽69πS#,SNAME,GRA
DE(σC#=’C402002’(S??SC))四、关系代数运算在查询中的应用(7)找出网络工程专业(专业代码为S0403
)学习了“计算机网络”课程的学生的学号、姓名和考试成绩。SC(S#,C#,GRADE)S(S#,SNAME,SSEX,….,SCODE#,CLASS)C(C#,CNAME,CLASSH)解题思路:首先确定涉及到的表。本例中除了设计学习关系和学生关系外,由于查询涉及到条件“计算机网络”课程,该属性在C表中。所以需将三个表作自然联接;选择出满足条件的元组;并投影出相应结果列。πS#,SNAME,GRADE(σSCODE#=’s0403’∧CNAME=’计算机网络’(S??SC??C))学号姓名分数201403001赵晓艳91四、关系代数运算在查询中的应用(8)找出没学习课程号为C402002或课程号为C403001的学生的学号、姓名和班级。SC(S#,C#,GRADE)S(S#,SNAME,SSEX,….,SCODE#,CLASS)解题思路:从以具有属性“学号,姓名,班级”的全部学生中去掉选修了“课程号为C402002或课程号为C403001”的那些学生,剩余的显然就是没有选修“课程号为C402002或课程号为C403001”的其余学生了。学号姓名班级201402001杨秋红201402关系查询表示方法小结将一个汉语查询语句表示成一个关系代数表达式时,应从如下几个方面入手:1、确定结果关系的属性有哪些?分别来自哪些关系??2、是否有选择条件?条件涉及哪些关系?应用何种运算符表示条件?σ、÷3、查询如果涉及多个关系,应用何种运算符进行联接?×、??、联接、∪、∩、-本章复习要点关系代数的9种运算:{并,交,差,广义笛卡儿积投影,选择,商,连接,自然连接}关系代数运算在查询中的应用关系数据库之所以取得巨大成功和广泛运用,就是因为它具有适合关系运算的集合运算、投影、选择、联接和商运算的数学基础,以及以这些运算为基础建立起来的其他各种运算。关系的数学基础是集合代数理论,那么关系又是什么呢?可不可以用集合论给出关系的定义呢?
献花(0)
+1
(本文系太好学原创)