学生选课关系模式为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])。

单选题

学生选课关系模式为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])。

【正确答案】 B
【答案解析】
【正确答案】 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中的元组。