问题 单项选择题

设有两个关系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’的元组去掉也是错误的。

多项选择题
单项选择题