设学生选课关系模式为SC(Sno,Cno,Grade),其中Sno为学号,Cno为课程号,Grade为成绩,SQL查询语句如下:
SELECT Sno
FROM SC SCX
WHERE NOT EXISTS
(SELECT *
FROM SC SCY
WHERE SCY.Sno=’1042’ AND NOT EXISTS
(SELECT *
FROM SC SCZ
WHERE SCZ.Sno=SCX.Sno AND SCZ.Cno=SCY.Cno));
与该查询等价的元组演算表达式为t| (54) (Sc(u)∧SC(v)∧ (55) ∧t[1] =u[1])。
参考答案:A
解析:
[分析]: 根据SQL语句,我们可以判定该SQL语句的功能是“查询至少选修了学生1042选修的全部课程的学生学号”。本查询可以看成是查询学号为X的学生,对所有的课程Y,只要1042学生选修了课程Y,则X也选修了Y。实现的方法是通过双重否定:“不存在这样的课程Y,学生1042选修了Y,而学生X没有选”。
在给出的元组表达式中,只要找出t、u、v和w所代表元组的含义,就很容易对应SQL语句了。显然,t和u代表SCX中的元组,v代表SCY中的元组,w代表SCZ中的元组。