
2B关系代数附加运算扩展运算解读课件.ppt
22页单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,单击此处编辑母版标题样式,,,,,,,,,,*,数据库系统概念----关系模型,2.3,附加运算,,为了书写方便,扩展了若干操作,称为附加运算,,附加运算没有实质地扩展关系代数的能力,,附加运算的种类,,交,(,r,∩s,),,自然连接,(r s),,,除,(,r÷s,),,,赋值运算,(,←,),2024/9/12,1,,数据库系统概念----关系模型,2.3,附加运算:,∩,Intersection,,交,,r,∩ s,,,用,-,表示,∩,,,r,∩s,=,r-(r-s,),,,示例,,1,、求既是学生又是老师的人员,(,pid,name,),,2,、学了,c1,和,c2,的学生学号,,,s,,,,Pid,,Sno,Sname,p1,,s1,甲,p2,,s2,乙,t,,,Pid,Tno,Tname,p1,t1,甲,p3,t2,丙,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S2,C1,70,S3,C2,60,2024/9/12,2,,数据库系统概念----关系模型,2.3,附加运算:自然连接,,定义,,,r s=,Π,R,∪S,(,σ,r.A1=s.A1,∧…∧,,r.An,=,s.An,(r,×s,),),,示例,,S,,Sno,Sname,S1,甲,S2,乙,S3,丙,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S2,C1,70,s sc =,Sno,Sname,Cno,Sc,ore,,S1,甲,C1,80,,S1,甲,C2,90,,S2,乙,C1,70,自然连接确定选择条件的原则:,,以属性名是否相同为依据,,不以语义是否相同为依据,,要注意参与自然连接的表中是否有不希望做选择条件的同名属性,2024/9/12,3,,数据库系统概念----关系模型,2.3,附加运算:自然连接,,可交换,可结合,,s sc,≡,sc s,,(s,sc) c,≡,s (sc c),,,,R,∩,S=,Φ,,时,自然连接的结果,,,s c = ?,,,θ,连接,,,等值连接,S,,Sno,Sname,S1,甲,S2,乙,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S2,C1,70,C,,Cno,Cname,C1,DS,C2,DB,2024/9/12,4,,数据库系统概念----关系模型,2.3,附加运算:,÷,的定义,,示例:求学了全部课程的,sno,,sc,,÷ c,,除的定义,,,t∈r÷s,,,当切仅当,,①,t∈Π,R-S,(r,),,②,对任意,t,s,∈s,,,存在,t,r,∈r,,满足:,,,t,r,[R,-S]=t,且,t,r,[S,]=,t,s,,,示例:,,,sc,,Sno,Cno,S1,C1,S1,C2,S2,C1,S3,C2,c,Cno,C1,C2,sc,÷c,,=,Sno,,S1,2024/9/12,5,,数据库系统概念----关系模型,2.3,附加运算:,÷,定义二,,ImageSet,,象集,(,像集,),:,,,对,R(A,B),“a1”,是属性组,A,上的值,(,组,),,,“a1”,在,R,上的象集,记作,B,a1,,B,a1,={,t[B]|t∈r,,,t[A,]=a1},,,,,,除的定义,(,二,),,r÷s,:是象集包含,s,的分量组集合,,通俗地讲:,,r÷s,就是,谁的象集包含,s,sc,,Sno,Cno,S1,C1,S1,C2,S2,C1,S3,C2,c,Cno,C1,C2,CNO,S1,=,Cno,,C1,,C2,CNO,S3,=,Cno,,C2,CNO,S2,=,Cno,,C1,2024/9/12,6,,数据库系统概念----关系模型,2.3,附加运算:,÷,示例,求学了所有课的学生学号:,,思考,1,:使用,÷,,,有几种写法?,,思考,2,:不使用,÷,,如何书写?,,S,,,,SC,,,,C,,Sno,Sname,Dept,,Sno,Cno,Score,,Cno,Cname,S1,甲,计,,S1,C1,80,,C1,DS,S2,乙,软,,S1,C2,90,,C2,DB,S3,丙,软,,S2,C1,70,,,,S4,丁,计,,S3,C2,60,,,,2024/9/12,7,,数据库系统概念----关系模型,2.3,附加运算:赋值,,←,,为了简化关系代数表达书的书写,引入赋值运算,,示例,不使用,÷,,,求学了所有课程的学生学号,,temp1,,,,sno,(s,), ,cno,(c,),,temp2,,,,sno,(temp1,,,,sno,cno,(sc,)),,,sno,(s,),,temp2,,S,,,,SC,,,,C,,Sno,Sname,Dept,,Sno,Cno,Score,,Cno,Cname,S1,甲,计,,S1,C1,80,,C1,DS,S2,乙,软,,S1,C2,90,,C2,DB,S3,丙,软,,S2,C1,70,,,,S4,丁,计,,S3,C2,60,,,,2024/9/12,8,,数据库系统概念----关系模型,2.3,附加运算:练习,,1,、求计算机系学生的“,DB”,成绩,(,sno,sname,score,),,2,、使用,÷,,求学了,s5,所学全部课程的学生,,3,、不使用,÷,,求学了,s5,所学全部课程的学生,S,,,,SC,,,,C,,Sno,Sname,Dept,,Sno,Cno,Score,,Cno,Cname,S1,甲,计,,S1,C1,80,,C1,DS,S2,乙,软,,S1,C2,90,,C2,DB,S3,丙,软,,S2,C1,70,,,,S4,丁,计,,S3,C2,60,,,,2024/9/12,9,,数据库系统概念----关系模型,2.5,空值,,Null,,空值的语义,,不知道 或 不存在,,空值的表现,,参与算术运算:结果为,Null,,参与比较运算:结果为,Null,,参与逻辑运算:,,,1,、,Null or true=,ture,,,2,、,Null and false=,false,,,3,、其它情况结果为,null,,空值是一种状态,不是一个明确的值,S,,,,Sno,Sname,Dept,Sage,S1,甲,计,20,S2,乙,软,21,S3,丙,软,,S4,丁,,20,2024/9/12,10,,数据库系统概念----关系模型,2.5,关系代数对空值的处理,,不是总有道理,更多的时候是定义,,σ,θ,(E,),,保留使,θ,确定地为真的元组,,求,20,岁的学生,,求不是,20,岁的学生,,Π,A1,A2…,(E),,元组表现相同,(,认为表示的语义相同,),,则保留一个元组,,求各系年龄分布,(,dept,sage,),,∪,∩,-:与,Π,的处理原则一致,,S,,,,Sno,Sname,Dept,Sage,S1,甲,计,20,S2,乙,软,21,S3,丙,软,,S4,丁,软,,2024/9/12,11,,数据库系统概念----关系模型,2.4,扩展的关系代数,,关系代数扩展的几个运算:,,广义投影,,聚集、分组聚集,,外连接,,扩,展的关系代数运算:,,对关系代数的查询能力进行了一些经常需要的扩展,,一般地讲,,扩,展的运算属于关系代数,,严格地说,,扩,展的运算不属于关系代数运算,2024/9/12,12,,数据库系统概念----关系模型,2.4,扩展的关系代数,:,广义投影,,广义投影,,Π,F1, F2…,(E),,Π,F1 as A1,F2 as A2…,(E),,F,i,是算术表达式,,,示例:,,求明年学生的年龄,,S,,,,Sno,Sname,Dept,Sage,S1,甲,计,20,S2,乙,软,21,S3,丙,软,,S4,丁,计,19,2024/9/12,13,,数据库系统概念----关系模型,2.4,扩展的关系代数:聚集,,聚集运算:,G,F1(A1),F2(A2)…,(E),,F,i,是聚集函数,,聚集函数:,,sum(),count(),max(),min(),avg,(),,聚集函数作用于集合,/,多重集,返回值,,聚集运算作用于关系,返回关系,,多重集与集合,,聚集函数默认作用于多重集,,强制作用于集合,使用“,-distinct,”,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,95,S2,C1,80,2024/9/12,14,,数据库系统概念----关系模型,2.4,扩展的关系代数:分组聚集,,分组聚集,,写法:,A1,A2…,G,F1(B1)…,(E),,,A,1,,A,2,…,是分组属性,,分组属性上取值相同的元组,划分为一组,,分组聚集操作,G,是关系代数运算,,,聚集运算支持重命名,,A1,A2…,G,F1(B1) as name1,…,(E),,,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S1,C3,85,S2,C1,70,S2,C3,80,S3,C2,60,2024/9/12,15,,数据库系统概念----关系模型,2.4,扩展的关系代数:,G,练习,,1,、求学习了,5,门以上课程的学生学号及课程门数;,,2,、求有,5,门以上优秀课程,(,≥90),的学生学号;,,,3,、求每个学生的单科最高成绩及相应课程编号;,,4,、求最高的学生平均成绩;,,5,、求高于平均成绩的修课记录;,,6,、求高于本门课平均成绩的修课记录;,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S1,C3,85,S2,C1,70,S2,C3,80,S3,C2,60,2024/9/12,16,,数据库系统概念----关系模型,2.5 Null,:聚集对空值的处理,,不是总有道理,更多的时候是定义,,聚集函数中的,null,,1,、多重集中忽略,null,,2,、聚集函数作用于空集合:,,count(,Φ,)=0,;,,其它聚集函数作用于空集合,结果为,null,,示例,,sno,G,……,(sc),:,,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,,S1,C3,80,S1,C4,95,S2,C1,,S2,C3,,Sno,Count(*),Count(score,),Count-,distinct(score,),Max(score,),Avg(score,),S1,4,3,2,95,85,S2,2,0,0,,,2024/9/12,17,,数据库系统概念----关系模型,2.5,关系代数对空值的处理:总结,不是总有道理,更多的时候是定义,,σ,θ,(E,),,保留使,θ,确定地为真的元组,,Π,A1,A2…,(E),,元组表现相同,则保留一个元组,,认为含有空值的元组,空值表示的语义相同,,∪,∩,-:与,Π,的处理原则一致,,聚集函数中的,null,,1,、多重集中忽略,null,,2,、聚集函数作用于空集合:,,count(,Φ,)=0,;,,其它聚集函数作用于空集合,结果为,null,2024/9/12,18,,数据库系统概念----关系模型,2.4,扩展的关系代数:外连接,,Left out-join,,左外连接,,r s,,自然连接,∪,左侧失配元组,(,右侧属性补空值,),,思考:学生学习,c1,课程的情况:如何书写?,,(,sno,sname,cno,score,),,没有选课的学生也希望展现;,,Right,,out-join,,右外连接,,r s,,同左外连接反向,,,,,S,,,SC,,,,C,,Sno,Sname,,Sno,Cno,Score,,Cno,Cname,S1,甲,,S1,C1,80,,C1,DS,S2,乙,,S1,C2,90,,C2,DB,S3,丙,,S2,C1,70,,,,2024/9/12,19,,数据库系统概念----关系模型,2.4,扩展的关系代数:全外连接,,Full,out-join,,全外连接:,,,自然连接,,,∪,左侧失配元组,(,右侧属性补空值,),,,∪,右侧失配元组,(,左侧属性补空值,),,,,求:,C1,和,C2,的学习成绩;,,,SC,,,Sno,Cno,Score,S1,C1,80,S1,C2,90,S2,C1,70,S2,C3,80,S3,C2,60,C1,和,C2,的成绩:,,,Sno,C1,C2,S1,80,90,S2,70,,S3,,60,2024/9/12,20,,数据库系统概念----关系模型,2.4,扩展的关系代数:课外练习,,1,、求每门课程的修课人数及其平均成绩;,,2,、求每门课程的课程名及其平均成绩;,,3,.求修课人数最多的课程号,(,cno,),及相应修课人数;,,4,、求平均成绩高于,s2,平均成绩的学生学号;,,5,、求计算机系所有学生的,C1,课程成绩,,要求结果为三元组,(sno,sname,c1_score),,要求计算机系没有学,c1,的学生成绩为空值,,2024/9/12,21,,数据库系统概念----关系模型,2.6,数据库的修改,,关系代数是“,pure,”查询语言,,经典的关系代数不具备数据库修改能力,,本节扩展的用关系代数表示的数据库修改方法,同真正的数据库修改方法基本思路不一致,对数据库修改研究没有指导价值,,本节不作学习要求,,,2024/9/12,22,,数据库系统概念----关系模型,。
