第3章关系运算及关系系统优秀PPT.ppt
《第3章关系运算及关系系统优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3章关系运算及关系系统优秀PPT.ppt(178页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章关系运算及关章关系运算及关系系统系系统现在学习的是第1页,共178页3.1 关系代数关系代数 第2.2节已对关系模型的数据结构和完整性约束做了介绍。本节主要讨论数据操作,即关系运算。关系运算分为两种方法:一种方法基于代数的定义,称为关系代数;另一种方法基于逻辑的定义,称为关系演算。下面分两节讨论关系运算。现在学习的是第2页,共178页关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。关系代数中给出的功能在任何实际语言中应该都能实现。关系代数是通过关系的运算来表达查询的。它的运算对象是关系,运算结果也是关系。现在学习的是第3页,共178页关系代数的运算分为两类:(1)传
2、统的集合运算:并、交、差和广义笛卡尔乘积。(2)专门的关系运算:选择、投影、连接和除。在集合运算中,还涉及到两类辅助运算符:(1)比较运算符:(大于)、(大于等于)、(小于)、(小于等于)、(等于)、(不等于)。(2)逻辑运算符:(非)、(与)、(或)。现在学习的是第4页,共178页3.1.1传统的集合运算传统的集合运算是二目运算(又称二元操作)。以下运算用到的两个关系R和S均为n度关系,且相应的属性取自同一个域。基本运算如下:1并(Union)关系R和S的并为:RS=t|tRtS其结果仍为n目关系。任取元组t,当且仅当t属于R或t属于S时,t属于RS。现在学习的是第5页,共178页2差(Di
3、fference)关系R和S的差为:RS=t|tRt(S其结果仍为n目关系。任取元组t,当且仅当t属于R且t不属于S时,t属于R-S。3交(Intersection)关系R和S的交为:RS=t|tRtS其结果仍为n目关系。任取元组t,当且仅当t既属于R又属于S时,t属于RS。从集合论的观点分析,关系的交运算可表示为差运算:RS=R-(R-S)。现在学习的是第6页,共178页4笛卡尔乘积(CartesianProduct)设R为m目关系,S为n目关系,则R和S的广义笛卡尔乘积为:RS=t|t=tr,tstrRtsS其结果为m+n目关系。元组的前m列是关系R的一个元组,元组的后n列是关系S的一个元
4、组。若R有k1个元组,S有k2个元组,则RS有k1k2个元组。现在学习的是第7页,共178页实际运算时,可从R的第一个元组开始,依次与S的每一个元组组合,然后对R的下一个元组进行同样的操作,直至R的最后一个元组也进行完相同操作为止,即可得到RS的全部元组。【例3.1】给定两个相容性关系R和S,计算RS,RS,RS,RS的结果。解:依据四种运算的定义,可得到如图3.2(a)、(b)、(c)、(d)所示的结果。现在学习的是第8页,共178页现在学习的是第9页,共178页图3.2传统集合运算举例现在学习的是第10页,共178页3.1.2专门的关系运算专门的关系运算包括选择、投影、连接和除。前两个是一
5、元操作,后两个为二元操作。1选择(Selection)设R是n目关系,F是命题公式,其结果为逻辑值,取“真”或“假”,则R的选择操作定义为:F(R)=t|tRF(t)=true即取出满足条件F的所有元组。其中,F包含下列两类符号:现在学习的是第11页,共178页运算对象(元组分量(属性名或列序号)、常数);运算符(、)。例 如,对 表 3.1可 写 出:学 号 9811018(student),性 别=男6600(student)。前者取出学号大于9811018的元组,后者取出入学成绩大于等于600的男性。F中的常量需用单引号括起。选择操作一般从行的角度进行运算。现在学习的是第12页,共178
6、页2投影(Projection)设R是n目关系,R在其分量为1到m之间的整数,可不连续)上的投影操作定义为:即取出所有元组在特定分量上的值。现在学习的是第13页,共178页例如,对图3.1可写出:姓名,入学成绩(student),1,4,6(student)。前者取出所有元组的姓名、入学成绩两个分量的值,后者取出第一、第四、第六分量的值。ACa1a2c1c2图3.3投影说明举例现在学习的是第14页,共178页投影操作一般从列的角度进行运算,可以改变关系中列的顺序。需要说明的是,投影操作消去部分列后,可能会出现重复元组,根据关系特性,应将重复元组删去。如例3.1给出的关系S,在域列A,C上投影后
7、结果如图3.3所示。现在学习的是第15页,共178页3连接(Join)连接也称为连接,是从两个关系的笛卡尔乘积中选取属性间满足一定条件的元组。记作:=t|t=tr,tstrRtsStrAtsB=AB(RS)其中,A和B分别是R和S上目数相等且可比的属性组(名称可不相同)。AB作为比较公式F,F的一般形式为F1F2Fn,每个Fi是形为trAisBj的式子。现在学习的是第16页,共178页下面介绍两种比较重要的连接:等值连接和自然连接。(1)等值连接(Equijoin)。当一个连接表达式中所有运算符取“=”时的连接就是等值连接,是从两个关系的广义笛卡尔乘积中选取A,B属性间相等的元组。记作:=t|
8、t=tr,tstrRtsStrA=tsB=A=B(RS)若A和B的属性个数为n,A和B中属性相同的个数为k(nk0),则等值连接结果将出现k个完全相同的列,即数据冗余,这是它的不足。现在学习的是第17页,共178页(2)自然连接(Naturaljoin)。等值连接可能出现数据冗余,而自然连接将去掉重复的列。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且将去掉结果中重复的属性列。如 果 R和 S有 相 同 的 属 性 组 B,Att(R)和Att(S)分别表示R和S的属性集,则自然连接记作:Att(R)(Att(S)-B)(tB=tB(RS))此处t表示:t
9、|tRS。现在学习的是第18页,共178页自然连接和等值连接的区别是:等值连接相等的属性可以是相同属性,也可以是不同属性;自然连接相等的属性必须是相同的属性。自然连接必须去掉重复属性(指相等比较属性,其它相同属性不管),而等值连接无此要求。一般地,自然连接用于有公共属性的情况中。如果两个关系没有公共属性,那么它们的自然连接就退化为笛卡尔乘积。现在学习的是第19页,共178页例3.2给定如下关系R和S,计算:B5(R),A,B(R),RBDS,RR.B=S.BR.C=S.CS及RS(R和S及结果如图3.4所示)。现在学习的是第20页,共178页图3.4选择、投影、连接举例现在学习的是第21页,共
10、178页图3.4选择、投影、连接举例现在学习的是第22页,共178页4除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性或属性组合。R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集。RS是满足下列条件的最大关系:其中每个元组t与S中的各个元组s组成的新元组t,s必在关系R中。定义形式为:RS=X(R)X(X(R)S)R)=t|tX(R)且sS,t,sR关系的除操作需要说明的是:现在学习的是第23页,共178页(1)RS的新关系属性是由属于R但不属于S的所有属性构成的。(2)RS的任一元组都是R中某元组的一部分。但必须符合下列要求:即任取属于RS的一个元组t
11、,则t与S的任一元组相接后,结果都为R中的一个元组。(3)R(X,Y)S(Y,Z)R(X,Y)Y(S)现在学习的是第24页,共178页(4)RS的计算过程如下:T=X(R);W=(TS)R;V=X(W);RS=TV。【例3.3】给定关系R和S,求RS(如图3.5)。现在学习的是第25页,共178页图3.5除法操作举例现在学习的是第26页,共178页【例3.4】基于前边给出的关系数据库E、P、EP:E(E,EN,EA,EE,ED)Key=EP(P,PN,PL)Key=PEP(E,P,L)Key=E,P用关系代数完成下列问题的查询:现在学习的是第27页,共178页用关系代数完成下列问题的查询:检索
12、维修班的全体职工。ED=WX(E)检索年龄大于48岁的女职工。EE=女348(S)查询职工的姓名和所在的部门。EN,ED(P)现在学习的是第28页,共178页检索参与了P5项目的职工的职工号与工时,进而给出对应职工的姓名。1,3(2=P5(EP)EN(P=P5(EP)E)检索未参与名为“礼堂”项目的职工号、姓名。EN(PN=礼堂(P)EP)E)EN(E)EN(PN=礼堂(P)EP)E)现在学习的是第29页,共178页检索参与项目号为P2或P4的职工号、姓名。T=E(P=P2P=P4(EP)R=EN(TE)检索同时参与项目号为P2和P4的职工号。2(2=P25=P41=4(EPEP)或构造临时关
13、系T,再求E,P(EP)T现在学习的是第30页,共178页检索参与全部项目职工姓名。EN(E,P(EP)P(P)E)检索参与项目包含职工E3参与项目的职工号,或参与项目不包含职工E3所参与项目的职工号及姓名。E,P(EP)P(E=E3(EP)E(E)(E,P(EP)P(E=E3(EP)EN(E(E)(E,P(EP)P(E=E3(EP)E)现在学习的是第31页,共178页3.1.3扩充的关系代数运算根据前面讨论可知,涉及两个及两个以上关系表的查询必然用到连接运算,包括等值连接、非等值连接、自然连接。除此之外,为了保留更多信息,还有外连接、半连接、外部并、复合连接,这四类连接就是扩充的关系代数运算
14、。现在学习的是第32页,共178页1外连接(Outerjoin)两个关系R和S在作自然连接时,选择两个关系在所有公共属性上值相等的元组组成新关系的元组。此时,两个关系公共属性上值不相等的元组无法进入连接后的新关系,造成R和S中部分元组值被舍弃。这种舍弃是正常的,但有时希望该舍弃的元组继续保留在新关系中。现在学习的是第33页,共178页【例3.5】关系数据库S和SC两个关系有如下元组(如图3.6):S(S,SN,SA,SE,SD)SC(S,C,G)执行运算SSC后,结果如图3.7。现在学习的是第34页,共178页图3.6基本关系R和S现在学习的是第35页,共178页图3.7SSC运算结果现在学习
15、的是第36页,共178页从例3.5可见,结果关系中没有95003和95004两个学生的数据,原因在于他们没有选课,即SC中无相应元组,这是正确的。但是,有时我们想以S为主体列出每个学生的基本情况及其选课情况,若该生未选课,则只输出其基本信息,其选课信息为空值,即产生如图3.8所示的结果(此时用到外连接)。现在学习的是第37页,共178页图3.8外连接说明举例现在学习的是第38页,共178页【定义3.1】如果R和S在作自然连接时,把该舍弃的元组也保留在新关系中,在新增加的属性上填上空值(NULL),那么这种操作称为外连接,用符号:RS表示。根据保留元组的不同,外连接又分为左外连接和右外连接。(1
16、)左外连接。如果R和S在作自然连接时,只把R中原该舍弃的元组保留在新关系中,那么这种操作称为左外连接,用符号RS表示。现在学习的是第39页,共178页(2)右外连接。如果R和S在作自然连接时,只把S中原该舍弃的元组保留在新关系中,那么这种操作称为右外连接,用符号:RS表示。【例3.6】在图3.9中给出两个基本关系R和S为(a)和(b),可将其自然连接、外连接、左外连接、右外连接分别为(c),(d),(e),(f)。从上述结果可见,外连接的交换律不成立,即RSRS.现在学习的是第40页,共178页图3.9外连接操作举例现在学习的是第41页,共178页2外部并(Outerunion)关系代数的传统
17、集合运算中,讨论过关系的并运算RS,由属于R或属于S的元组构成。此时要求两个关系R和S均为n目关系,且相应的属性取自同一个域。现实应用中,经常需要在具有不同关系模式(目不同或属性来自的域不同)的两个关系R和S上进行并运算,此涉时及到外部并运算。现在学习的是第42页,共178页【定义3.2】如果R和S具有不同的关系模式,RS是一种操作,其结果仍是关系,该关系的属性由R和S的所有属性组成(公共属性只取一次),该关系的元组由属于R或属于S的元组构成,此时元组在新增加的属性上填上空值,那么这种操作称为外部并操作。【例3.7】在例3.6中给出两个基本关系R和S,其外部并操作结果如图3.10。现在学习的是
18、第43页,共178页图3.10外部并操作举例现在学习的是第44页,共178页3半连接(Semijoin)【定义3.3】两个关系R和S的自然连接运算结果在关系R所有属性上的投影,记作:RS,即:RSAtt(R)(RS)=RAtt(R)Att(S)(S)现在学习的是第45页,共178页【例3.8】在例3.6给出的两个基本关系R和S,其自然连接和半连接操作结果如图3.11。图3.11半连接操作举例现在学习的是第46页,共178页4复合连接(Compoundjoin)复合连接是指在关系R和S的自然连接(RS)结果中,去除连接属性所产生的新关系。以上对关系代数的主要运算已进行了详尽论述,其查询功能是相当
19、强的。可以证明,关系代数操作集(,-,)是完备的操作集,任何其它关系代数操作都可以用这五种操作的组合来表示。任何一个DBMS,只要它能完成这五种操作,则称它是关系完备的。现在学习的是第47页,共178页3.2 关系演算关系演算 3.2.1元组关系演算元组演算中,元组演算关系表达式用t|(t)来表示。其中,t是元组变量,(t)为元组演算公式,简称公式。t|(t)表示所有使(t)为真的元组的集合。公式可以是原子公式,也可以由原子公式组合而成。现在学习的是第48页,共178页1(t)的基本形式原子公式原子公式有三类。(1)R(t)。R是关系名,t是元组变量。R(t)表示t是R的元组。t|R(t)表示
20、:任取t,只要t是R中的一个元组,t就是结果中的一个元组。t|R(t)即表示关系R。现在学习的是第49页,共178页(2)tiuj。t和u均为元组变量,是比较运算符(、),ti和uj分别表示t的第i个分量和u的第j个分量。原子公式tiuj表示:元组t的第i个分量和元组u的第j个分量之间满足运算。例如t1u3表示:元组t的第1个分量大于元组 u的 第 3个 分 量。对 元 组 表 达 式t|R(t)t3t5,读者自行说出它的含义。现在学习的是第50页,共178页(3)tic或cti。此处,c为常量。tic表示:元组t的第i个分量和常量c之间满足运算。如t130表示元组t的第1个分量不等于30。对
21、元组表达式t|R(t)t355,读者自行说出它的含义。现在学习的是第51页,共178页2变量的约束特性程序设计中大量使用变量,根据变量作用域的不同,变量可分为局部变量和全局变量。类似的,元组谓词演算中也涉及同类问题。另外,离散数学的命题与关系代数部分也介绍了全称()和存在()两类量词。基于以上内容,下面介绍元组变量的自由和约束概念。现在学习的是第52页,共178页(1)自由元组变量。一个公式中,元组变量的前面没有全称量词()或存在量词()等符号,那么该元组变量称为自由元组变量。自由元组变量类似于程序外部定义的外部变量或全局变量。(2)约束元组变量。一个公式中,元组变量的前面或者有全称量词(),
22、或者有存在量词()等符号,那么该元组变量称为约束元组变量。约束元组变量类似于程序内部定义的局部变量。现在学习的是第53页,共178页3公式(t)的递归定义公式(t)的递归定义有6条。(1)每个原子公式是公式。原子公式中的元组变量是自由元组变量。(2)如果1和2为公式,则1,12,12,12为公式。其含义分别表示:1为假,则1为真;1和2同时为真,则12为真;1或2为真,则12为真;1为真,则2为真。现在学习的是第54页,共178页(3)如果1为公式,则t(1)为公式。表示:存在一个元组t使1为真。元组变量t在1中是自由的,在t(1)中是约束的。1中其它元组变量是自由还是约束的,在t(1)中没有
23、改变。(4)如果1为公式,则t(1)为公式。表示:对于所有元组t均使1为真。元组变量的自由约束特性同(3)。现在学习的是第55页,共178页(5)在公式中各种运算符的优先级从高到低依次是:算术比较运算符最高;量词次之,且高于;逻辑运算符最低,且内部按、顺序计算;括号最优先,嵌套时先内后外;(6)有限次地使用上述五条规则得到的公式是元组关系演算公式,其它公式不是元组关系演算公式。现在学习的是第56页,共178页【例3.9】图3.12(a)、(b)是给定的两个关系R和S,(c)、(d)、(e)、(g)分别是下列四个元组演算表达式的值(图(f)是投影前的中间结果,在t1,t2,t3上投影后即图(g)
24、。R1=t|R(t)S(t)R2=t|(u)(S(t)R(u)t3u2)R3=t|(u)(R(t)S(u)t3u1)R4=t|(u)(v)(R(u)S(v)u1v2t1=u2t2=v3t3=u1)现在学习的是第57页,共178页图3.12元组关系演算举例现在学习的是第58页,共178页进一步分析可以发现,上述结果与特定的关系代数运算结果相同,例如R1相当于RS;R2相当于Att(R)(RR.BS.CS);R3相当于Att(R)(RR.CS.AS);R4相当于R.B,S.C,R.A(RR.AS.BS);所以关系代数与关系演算也存在等价性。现在学习的是第59页,共178页4关系演算内部的等价规则关
25、系演算内部的等价规则有:(1)12等价于(12)12等价于(12)。(2)(t)(1(t)等价于(t)(1(t)(t)(1(t)等价于(t)(1(t)。(3)12等价于12。上述等价规则可用于关系演算表达式的分析证明。现在学习的是第60页,共178页5元组关系演算与关系代数的等价性从例3.9可知:关系代数运算可用元组关系演算表示;反之,元组关系演算可用关系代数运算表示。同时所有关系代数运算都能用五种基本操作(,-,)来表示。因此只要把五种基本操作表示为元组演算表达式,其它复杂问题将迎刃而解。现在学习的是第61页,共178页(1)并操作():RS=t|R(t)S(t)(2)差操作(-):RS=t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 运算 系统 优秀 PPT
限制150内