问题
单项选择题
设有两个关系R(A,B)和S(B,C),与下列SELECT语句
SELECT A,B
FROM R
WHERE B NOT IN(SELECT B
FROM S
WHERE C=‘C56’);
等价的关系代数表达式是()。
A.A
B.B
C.C
D.D
答案
参考答案:C
解析:
先对照语句细想其对应的代数表达式应该是什么样的,应该是先让A和B作连接运算,再选出C=’C56’的元组在A、B上进行投影得到一个集合,然后因为要与“B NOT IN”对应,所以再用总体R减去此集合就可以了。与这个语义相同的只有C。
再一个个分析答案,A选项中虽然有条件C≠’C56’,但是C≠’C56’B寸的B值有可能会包含C=’C56’时的B值,所以不能选;同理B选项也不能选;D选项将C≠’C56’的元组去掉也是错误的。