关系代数习题参考
- 格式:doc
- 大小:35.00 KB
- 文档页数:2
一、设教学库中有三个关系:
学生关系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)