关系代数操作应用、关系元组运算应用
书写关系代数表达式的基本思路:
检索是否涉及多个表,如不涉及,则可直接采用并、差、交、选择与投影,只要注意条件书写正确与否即可
如涉及多个表,则检查:
- 能否使用自然连接,将多个表连接起来
- 如不能,能否使用等值或不等值连接
- 还不行,使用广义笛卡尔积
相关条件的书写连接完后,可以继续使用选择、投影等运算
例子:
①查询课程号001和002都学的学生的学号
②查询不学习课程号为002的学生姓名和年龄
关系元组运算应用:
例子:
①检索所有同学所有课程全都及格的系
②既学过001课程又学过002课程的学生
综合操作:
已知:
- 学生关系:Student(S#,Sname,Sage,Ssex,Sclass)
- 课程关系:Course(C#,Cname,Chours,Credit,Tname)
- 选课关系:SC(S#,C#,Score)
①求学过李明老师所有课程的学生姓名
关系代数表达式:
元组运算:
大致文字描述:对于李明老师的所有课程,在选课表中都能找到至少一行学生t和该课程对应的元组
②求没有学过李明老师课程的学生姓名
关系代数表达式:
元组运算:
③求学过李明老师任意一门课程的学生姓名
关系代数表达式:
元组运算: