欢迎来到天天文库
浏览记录
ID:37731865
大小:163.00 KB
页数:5页
时间:2019-05-29
《关系代数表达式总结-数据库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、关系代数表达式总结一、并例1求选修了课程号为1或2的课程的学生学号。分析:可以先求出选修了课程号为1的课程的学生学号,再求出选修了课程号为2的课程的学生学号,最后使用并运算的方法求出选修课程号为1或2的课程的学生学号。本例也可以使用或条件来表示。πSno(σCno=’1’(SC))∪πSno(σCno=’2’(SC))或πSno(σCno=’1’∨Cno=’2’(SC))二、交例2检索至少选修课程号为2和3的课程的学生学号。分析:方法一:只涉及到一个表,但不能直接用∧(为什么?)特别注意,本例不能写为:πSno(σCno=’2’∧Cno=’3’(SC)
2、)因为选择运算为行运算,在同一行中Cno不可能既为2,又为3。第一步:转换(SC×SC)笛卡尔积将垂直的条件展开为水平的条件。SC1SC2学号Sno课程号Cno成绩Grade学号Sno课程号Cno成绩Grade9500119295001192950011929500128595001192950013889500119295002290950011929500238095001285950011929500128595001285950012859500138895001285950022909500128595002380………………选修课程号为2和
3、3的学生:σ1=4∧2=’2’∧5=’3’(SC×SC)最后取出学生的学号:π1(σ1=4∧2=’2’∧5=’3’(SC×SC))方法二:πSno(σCno=’2’(SC))∩πSno(σCno=’3’(SC))三、差例3将学生信息(‘95001’,’李勇’,‘男’,20,‘CS’)从Student表删除。分析:可以将这行数据看成由一个元组构成的表,将Student表与该表进行差运算。因此,该删除操作可表示为:Student-{‘95001’,’李勇’,‘男’,20,‘CS’}注意:但是当查询涉及到否定或全部值时,上述形式就不能表达了,就要用到差操作或
4、除操作。例4求没有选修课程号为2的课程的学生学号。分析:可以认为是在全部学号中去掉选修课程号为2的课程的学生学号,就得出没有选修课程号为2的学生学号。由于在并、交、差运算中,参加运算的关系要求是兼容的,故应当先投影,再进行差运算。πSno(Student)-πSno(σCno=’2’(SC))特别注意,本题不能写为:πSno(σCno≠’2’(SC))。因为,选择运算为行运算,并且SC表中包含的只是选修了课程的学生学号,对那些没选任何课程的学生学号,在SC中找不到。根据题意,要查询没有选修课程号为‘2’课程的学生学号,显然包括没选任何课程的学生学号。当
5、查询涉及到针对“否定”特征含义的查询要求,如“不”、“没有”等字眼,一般要用差运算表示。四、自然连接例5检索不学“2”号课程的学生姓名与年龄。分析:首先考虑“差”的问题。先求出全体学生的姓名和年龄,再求出学了”2”号课程的学生的姓名和年龄,最后执行两个集合的差操作。πSname,Sage(Student)-πSname,Sage(σCno=’2’(StudentSC))例6查询至少选修了一门其直接先行课为“5”号课程的学生姓名。分析:(1)根据题目确定要输出的列为:Sname,都在Student表中;(2)根据题意,先行课程名为“5”,则选择的条件为C
6、pno=’5’,因为Cpno在Course表中,所以也要用到Course表;(3)根据1,2两步确定用到的表名集为{Student,Course};(4)因为表名集中两个表,则要用自然连接将它们连接起来,但因为这个两表不存在共同的列,不能进行自然连接。因此要加入中间表,中间表中应含有能与其它两个表进行自然连接的公共列,这个表就是SC。将选择条件Cpno=‘5’作用于自然连接后产生的新表上,并用投影操作选取要输出的Sno,Cno。综上,该查询的关系代数表达式为:πSname(σCpno=’5’(Course)SCπSno,Sname(Stuent))或π
7、Sname(πSno(σCpno=’5’(Course)SC)Stuent))五、除1.除法定义中的含义分析:(1)前提:两个关系R(X,Y)和S(Y,Z)应该有公共属性列。(2)运算结果为P(X),元组来自于R关系,只包含X属性列(3)R关系中的哪些元组呢?对于T[X]的象集包含∏Y(S)2.除法运算的步骤(1)将被关系R的属性分成两个部分,即与除关系相同的属性部分Y,和与除关系不同的属性部分X。(2)在除关系中,求Y的投影,得到目标数据集。(3)将被除关系进行分组。(分组原则是“值”一样的为一组)(4)考虑被除关系中已分好的每一元组,如果它的象集包
8、含目标数据集(投影结果),则其值为商。例如,RSABCBCDa1b1c2b1c2d1a2b3c
此文档下载收益归作者所有