关系代数习题参考
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设教学库中有三个关系:
学生关系S(S#,SNAME,AGE,SEX)
学习关系SC(S#,C#,GRADE)
课程关系C(C#,CNAME,TEACHER)
下面用关系代数表达式表达各个查询语句
1.检索学习课程号为C2的学生学号与成绩。πS#,GRADE(σC#=‘C2’(SC))
2.检索学习课程号为C2的学生学号与姓名。πS#,SNAME(σC#=‘C2’(S∞SC))
3.检索选修课程名为MATHS的学生学号与姓名。πS#,SNAME(σCNAME=‘MATHS’( S∞SC∞C))
4.检索选修课程号为C2或C4的学生学号。πS#(σC#=‘C2’∨C#=‘C4’(SC))
5.检索不学C2课的学生姓名与年龄。πSNAME,AGE(S)-πSNAME,AGE( σC#=‘C2’( S∞SC))
6.检索学习全部课程的学生姓名。
学生选课情况:πS#,C#(SC)全部课程:πC#(C)
学了全部课程的学生的学号用除操作,结果是学号S#集:πS#,C#(SC)÷πC#(C)
从S#求学生姓名,可用自然联接和投影组合操作:
πSNAME(S∞(πS#,C#(SC)÷πC#(C)))
二、设有一个数据库:
学生关系模式:S(学号S#,姓名SNAME,年龄AGE,性别SEX)
学生课程模式:SC(学号S#,课程号C#,成绩GRADE)
课程关系模式:C(课程号C#,课程名CNAME,教师TEACHER)
试用关系代数表达式表示下列查询语句:
1.检索年龄大于20岁的男学生的学号、姓名。πS#,SNAMEσAGE>20∧SEX=”男”(S)
2.检索田老师所授课程的课程号、课程名πC#,CNAMEσTEACHER=”田老师”(C)
3.检索全部学生都选修的课程的课程号、课程名。
所有的学生:πS#(S);所有学生选修课程的情况:πS#,C#(SC)
这里需要确定:哪一门课程包含了所有的学生
πS#,C#(SC) ÷πS#(S),该结果集是C#
求C#,CNAME可用投影和自然连接:
πC#,CNAME(C∞(πS#,C#(SC)÷πS#(S)))
可简化为:πC#,CNAME,S#(SC∞C) ÷πS#(S)