chapter02chinese.ppt

上传人:sccc 文档编号:5336664 上传时间:2023-06-27 格式:PPT 页数:55 大小:782.51KB
返回 下载 相关 举报
chapter02chinese.ppt_第1页
第1页 / 共55页
chapter02chinese.ppt_第2页
第2页 / 共55页
chapter02chinese.ppt_第3页
第3页 / 共55页
chapter02chinese.ppt_第4页
第4页 / 共55页
chapter02chinese.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《chapter02chinese.ppt》由会员分享,可在线阅读,更多相关《chapter02chinese.ppt(55页珍藏版)》请在三一办公上搜索。

1、2.4 关系代数的扩展运算,2.4.1 广义投影2.4.2 聚集函数2.4.3 外连接,广义投影,广义投影对投影运算的扩展 在属性列表中,允许使用表达式构造新属性两种投影的对比一般投影运算 A1,A2,An(E)A1,A2,An是E(关系或关系代数表达式)的属性。例如:姓名,期末成绩,平时成绩(Student)广义投影运算 F1,F2,Fn(E)其中F1,F2,Fn可以是E的属性,也可以是用表达式构造的新属性(可以用 as 进行命名,否则无属性名)。例如:姓名,期末成绩*0.7+平时成绩*0.3(Student),广义投影,应用示例关系E:职工的基本情况表。问:每个职工应缴纳的所得税(工资的5

2、%)TAX(姓名,所得税)(姓名,工资*0.05(E),E,TAX(姓名,所得税),姓名,工资*0.05,TAX,外连接,外连接(Outer Join)外连接是对自然连接运算的扩展。为什么要扩展自然连接?因为自然连接可能会造成信息丢失,外连接,自然连接的信息丢失问题的示例关系T:教师基本情况表;关系C:授课表。问:所有教师的信息,包括姓名、工号、年龄、所授课程T C?,T,C,外连接,自然连接的信息丢失问题的示例关系T:教师基本情况表;关系C:授课表。问:所有教师的信息,包括姓名、工号、年龄、所授课程 T C?,T,C,T C,问题:有关老陈的姓名和年龄信息没有显示出来,老陈所在的元组失配了,

3、外连接,外连接(Outer Join)因为自然连接运算的结果不包括哪些失配的元组,造成信息丢失。所以为避免这种情况,对失配的元组,与一个空元组(所有属性值为Null)连接后,添加到结果关系中去。这就是外连接运算。外连接的三种类型左外连接=自然连接+左侧表的失配元组(与空元组连接)右外连接=自然连接+右侧表的失配元组(与空元组连接)全外连接=自然连接+两侧表的失配元组(与空元组连接),外连接,如何计算外连接 计算自然连接 添加失配的元组(缺少属性填空值),R,S,外连接,应用示例关系T:教师基本情况表;关系C:授课表。问:所有教师的信息,包括姓名、工号、年龄、所授课程T C,T,C,T C,聚集

4、运算,聚集函数(aggregate functions)输入:一个值的“集合”,例如:1,3,1,4,4因为相同值可出现多次,这样的“集合”称为多重集(multiset)输出:单一值,如:sum:求集合中各个值的总和;count:求集合中值的个数;avg:求集合中各个值的平均;max:求集合中的最大值;min:求集合中的最小值;如果希望在计算中忽略集合中重复的值,则应在函数名后面加上-distinct,如count-distinct就表示计算集合中的不同值的个数。,聚集运算,聚集运算(Aggregation Operation)G1,G2,.,Gn G F1(A1),F2(A2),Fm(Am)

5、(E)先分组:G1,G2,.,Gn是分组属性,对E中的元组1)在G1,G2,.,Gn上值相等的元组,被划分到同一组2)在G1,G2,.,Gn上值不等的元组,被划分到不同组再统计:对每一个分好的组,在属性A1,A2,.,An上计算聚集函数F1,F2,.,Fn的值。聚集运算的输出一个新关系,属性有n+m个:前n个属性来自左下标的分组属性,后m个来自右下标的聚集函数的新属性(无属性名,或用as 命名)输入关系被划分后,一个分组统计为结果中的一个元组。所以原来有多少个分组,输出关系就有多少个元组,聚集运算,运算示范根据分组属性划分组为每个分好的组,在新关系内添加一个元组t:前n个属性值等于该分组在n个

6、分组属性上的值,后m个属性值等于在该分组上统计m个聚集函数的结果,R,部门,姓名 Gsum(销售额),max(销售额)(R),聚集运算,运算示范根据分组属性划分组为每个分好的组,在新关系内添加一个元组t:前n个属性值等于该分组在n个分组属性上的值,后m个属性值等于在该分组上统计m个聚集函数的结果,R,部门,姓名 Gsum(销售额),max(销售额)(R),聚集运算,运算示范根据分组属性划分组为每个分好的组,在新关系内添加一个元组t:前n个属性值等于该分组在n个分组属性上的值,后m个属性值等于在该分组上统计m个聚集函数的结果,R,部门,姓名 Gsum(销售额),max(销售额)(R),聚集运算,

7、要点如果分组属性为空,怎么进行聚集运算?,R,Gsum(销售额),max(销售额)(R),聚集运算,思考对以上关系,问:每个部门的最大销售额?,R,部门Gmax(销售额)(R),一个常犯的错误,求成绩最高的学生姓名?,score,姓名(Gmax(成绩)(R),这样的聚集运算的结果关系包含什么属性?,一个常犯的错误,求成绩最高的学生姓名?,score,?,姓名(姓名Gmax(成绩)(R),一个常犯的错误,求成绩最高的学生姓名?,score,姓名(成绩=Gmax(成绩)(R)(Score),一个常犯的错误,求成绩最高的学生姓名?解法:用聚集运算求最高成绩,然后再连接回原来的关系,score,姓名(

8、score.成绩=最高成绩(Score Gmax(成绩)as 最高成绩(R),2.5 空值,空值,元组的某些属性可以取空值Null空值用于表示两种情况:值未知;或值不存在,emp,空值,空值参与各种运算空值出现在算术运算中,其结果一定还是null空值出现在比较运算中,结果一定是unknown(未知)空值出现在布尔运算中,被替换为unknown后再计算OR:(unknown or true)=true(unknown or false)=unknown(unknown or unknown)=unknownAND:(true and unknown)=unknown(false and unkn

9、own)=false(unknown and unknown)=unknownNOT:(not unknown)=unknown,空值,空值参与各种运算空值出现在算术运算中,其结果一定还是null空值出现在比较运算中,结果一定是unknown(未知)空值出现在布尔运算中,被替换为unknown后再计算OR:(unknown or true)=?,(unknown or false)=?(unknown or unknown)=?AND:(true and unknown)=?(false and unknown)=?(unknown and unknown)=?NOT:(not unknown

10、)=?,空值,空值参与各种运算空值出现在算术运算中,其结果一定还是null空值出现在比较运算中,结果一定是unknown(未知)空值出现在布尔运算中,被替换为unknown后再计算OR:(unknown or true)=true,(unknown or false)=unknown(unknown or unknown)=unknownAND:(true and unknown)=unknown,(false and unknown)=false,(unknown and unknown)=unknownNOT:(not unknown)=unknown,空值,对于一个表达式,如果最后一步计

11、算得到的结果是unknown,那么就替换为falseExample 1:(3 Null)or(5+Null 4)Example 2:not(Null Null)and(5 4),空值,关系 emp:name,salary*0.05(emp),emp,空值,关系 emp:salary 3000(emp),emp,空值,关系 emp:salary 3000 or sex=male(emp),emp,空值,聚集函数忽略空值关系 emp:G avg(salary)(emp),emp,2.6 数据库的修改,2.6.1 删除2.6.2 插入2.6.3 更新,删除,用关系代数表示删除格式:从R中删除一些满足

12、特定条件的元组(用查询E表示),表示为R R E是对存储关系的赋值运算(赋予新值,即存储关系被修改),删除,例:R:学生选修课程关系。删除1号学生选修的课程R R 学号=1(R),R,R,插入,用关系代数表示插入格式1:插入一个 元组r(指定各个属性值),表示为R R r 格式2:插入多个元组(来自查询E的结果),表示为R R E,插入,例:S:学生关系;C课程关系;R:选修关系。新加入一个学生到关系S,学号为4,姓名小周,性别女S S(4,“小周”,“女”),R,S,C,插入,例:S:学生关系;C课程关系;R:选修关系。新加入一个学生到关系S,学号为4,姓名小周,性别女S S(4,“小周”,

13、“女”),R,S,C,插入,添加所有男学生选修英语课的信息到关系RR R 学号,课程号(性别=“男”(S)课程名=“英语”(C),R,S,C,插入,添加所有男学生选修英语课的信息到关系RR R 学号,课程号(性别=“男”(S)课程名=“英语”(C),R,S,C,更新,用关系代数表示全部更新利用广义投影改变全部元组在某些属性上的值,表示为r F1,F2,Fn(r)F1,F2,Fn和原来r的属性A1,A2,An相对应当第i个属性Ai不需要修改时,Fi就是Ai;当Ai需要修改时,Fi就是一个表达式(可能涉及Ai),该表达式给出了Ai的新值,更新,例:Emp:职工关系。给每位职工上调10%的工资Emp

14、 职工号,姓名,工资*1.1(Emp),Emp,Emp,更新,用关系代数表示部分更新只对部分满足特定条件p的元组进行更新,表示为r F1,F2,Fn(p(r)(r p(r)F1,F2,Fn(p(r):对满足条件p的元组进行更新r p(r):对不满足条件p的元组,不进行更新(不变),更新,例:Emp:职工关系。给职工小张上调10%的工资Emp 职工号,姓名,工资*1.1(姓名=“小张”(Emp)(r 姓名=“小张”(r),Emp,Emp,作业:用关系代数表示查询,关系代数如何表达查询或修改操作?使用某个关系代数表达式(由关系与关系运算组成)。用关系代数表达式表示查询时,须指明使用哪些运算,以及运

15、算的次序,以得到最终的查询结果。所以关系代数是过程化的,S,姓名(年龄=23(S),年龄为23的学生姓名?,查询问题,查询表示(关系代数),查询实例,关系S:学生 CET4:四级成绩CET6:六级成绩,CET6,CET4,S,课堂练习,查询问题1.通过四级的学生姓名?2.列出每个学生的出生年份?3.四、六级都已通过的学生姓名?4.1班哪些学生没有参加,或没有通过六级?列出姓名,CET6,CET4,S,奇数题解答,解答1.通过四级的学生姓名?姓名(成绩=60(CET4),CET6,CET4,S,奇数题解答,3.四、六级都已通过的学生姓名?姓名(四级成绩=60(CET4)姓名(六级成绩=60(CE

16、T6),CET6,CET4,S,课堂练习,查询问题5.哪些同学四级拿优?列出他们的姓名和班级6.可以获“进步奖”(六级成绩比四级成绩多20分以上)的学生名单?7.列出全部学生的姓名和四、六级成绩8.列出和小孙同班的学生的姓名?,CET6,CET4,S,奇数题解答,5.哪些同学四级拿优?列出他们的姓名和班级?姓名,班级(S 四级成绩=90(CET4)姓名,班级(四级成绩=90(S CET4),CET6,CET4,S,奇数题解答,7.列出全部学生的姓名和四、六级成绩姓名,四级成绩,六级成绩(S CET4 CET6),CET6,CET4,S,课堂练习,查询问题9.四级的平均和最高成绩?10.1班通过四级的人数?11.各个班级通过四级的人数?12.列出各个班级参加四级的人数和参加六级的人数?,CET6,CET4,S,奇数题解答,9.四级的平均和最高成绩G sum(四级成绩),max(四级成绩)(CET4),CET6,CET4,S,奇数题解答,11.各个班级通过四级的人数?Temp1(四级成绩=60(S CET4)Result=班级G count(学号)(Temp1),CET6,CET4,S,第二章作业,前面的偶数题,End of Chapter 3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号