考虑关系employee(name,sex,supervisorName),其名称为key,supervisorName给出所考虑员工的主管名称。以下Tuple Relational Calculus查询产生了什么?
我的尝试:
内部查询返回(注意 - 没有否定)“有男性主管的员工姓名”,但
内部查询返回(带有否定)=“除了具有男性主管的员工姓名”之外的可用关系,则表示=“具有女性主管的员工姓名”。
因此,选项(4)为真。
它在某处解释为:
查询选择e使得e是员工,对于所有x,x不是员工,x的主管名称不是e.name或x是男性。
所以,这相当于说,选择所有没有直接女性下属的员工。 (假设没有变性人)。选项(3)是真的。
你能用正式的方式解释一下吗?
答案 0 :(得分:2)
分离查询的各个部分:
内心部分(从第一个OR到结尾)
您选择的是所有员工(不是他们自己)或男性的主管。
从“ALL X”到结尾
您选择的是所有员工,不包括从前一个子查询中提取的员工,因此您选择的是所有员工,他们是某人(但不是他们自己)的主管,其下属是男性。
从开始到结束,您选择的是所有没有女性下属的员工。
从整套“员工”中排除这些记录,实际上排除所有员工都有一些女性下属。
C是正确的答案。