- ∏sno(σcno=c001(T))
- ∏sno,sn((∏sno(σdept=CS(C⋈T)))⋈S)
取得选修过体育课的同学学号
R=∏sno(σcn=PE(C⋈T))查询选修过体育课的同学的姓名和院系
∏sn,dept(R⋈S)查询没有选修过体育课的同学的姓名和院系
∏sn,dept(S)−∏sn,dept(R⋈S)代入得
∏sn,dept(S)−∏sn,dept((∏sno(σcn=PE(C⋈T)))⋈S)取得所有学生的学号和姓名
∏sno,sn(S)取得每个课程对应的课程号,学号,姓名,院系
R=∏cno,sno,dept,sn(T⋈S)取得选修过非本院系课程的学生的学号和名字
∏sno,sn(σS.dept≠C.dept(R⋈T.cno=S.cnoC))
得到之选修过学生自己所在院系开色号的课程的学号和姓名
∏sno,sn(S)−∏sno,sn(σS.dept≠C.dept(R⋈T.cno=C.cnoC))
=∏sno,sn(S)−∏sno,sn(σS.dept≠C.dept((∏cnp,sno,dept,sn(T⋈S))⋈T.cno=S.cnoC))
取得c009的所有前导课程号
R=∏pno(σcno=c009(P))得到选修了所有前导课程的同学学号
∏sno,cno(T)÷R (其中令pno等于cno)最后得到这些同学的学号和姓名
∏sno,sn(S⋈(∏sno,cno(T)÷R))=∏sno,sn(S⋈(∏sno,cno(T)÷(∏pno(σcno=c009(P)))))
所有成绩都及格的同学的学号
R=∏sno(T)−∏sno(σg<60(R))计算机系所有课程的课程号
∏cno(σdept=CS(C))选修过计算机系所有课的同学的学号
W=∏sno,cno(T)÷∏cno(σdept=CS(C))所有成绩都及格(成绩≥60),且选修过‘计算机’系开设的所有课程的学生的学号
R−W=(∏sno(T)−∏sno(σg<60(R)))−(∏sno,cno(T)÷∏cno(σdept=CS(C)))
投影所有课程号的所有分数
R1=∏cno,g(T)查询各课非最高分的课程号对应的分数:令S = T
R2=∏cno,g(σT.g<S.g∧T.cno=S.cno(T×S))
最后得到各课称号与他对应的最高分分数
MAX=R1−R2=∏cno,g(T)−∏cno,g(σT.g<S.g∧T.cno=S.cno(T×S))
同理得到各课称号与他对应的最低分分数
MIN=∏cno,g(T)−∏cno,g(σT.g>S.g∧T.cno=S.cno(T×S))
最后合并一下
MAX⋈MAX.cno=MIN.cnoMIN=∏cno,g(T)−∏cno,g(σT.g<S.g∧T.cno=S.cno(T×S))⋈MAX.cno=MIN.cno∏cno,g(T)−∏cno,g(σT.g>S.g∧T.cno=S.cno(T×S))
【数据库】作业二
最新推荐文章于 2022-06-04 11:47:13 发布