设有两个关系R(A,B)和S(B,C),与下列SELECT语句 SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S

admin2013-05-11  29

问题 设有两个关系R(A,B)和S(B,C),与下列SELECT语句
   SELECT  A,B
   FROM R
   WHERE  B  NOT  IN(SELECT  B
                  FROM  S
                        WHERE  C=‘C56’);
   等价的关系代数表达式是(36)。

选项 A、
B、
C、
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’的元组去掉也是错误的。
转载请注明原文地址:https://jikaoti.com/ti/x8f7FFFM
0

最新回复(0)