TRC 查询的输出?

Output of a TRC query?

考虑以name为键的关系employee(name, sex, supervisorName),supervisorName给出所考虑员工的主管姓名。以下元组关系演算查询产生什么?

  1. 有男性主管的员工姓名。
  2. 没有直属男性下属的员工姓名。
  3. 没有直属女性下属的员工姓名。
  4. 有女性主管的员工姓名。

我的尝试:

内部查询 returns(注意 - 没有否定)"Names of employees with a male supervisor",但是

inner query return (with its negative) = "other than Names of employees with a male supervisor" in available relation , then it means ="Names of employees with a female supervisor."

因此,选项 (4) 为真。


某处解释为:

查询是 selecting e 使得 e 是雇员并且对于所有 x,x 不是雇员或者 x 的主管的名字不是 e.name 或者 x 是男性。

所以,这相当于说,select 所有没有直属女性下属的员工。 (假设没有变性人)。选项(3)为真。

Can you explain in formal way, please?

分隔查询的各个部分:

最里面的部分(从第一个OR到最后)
您正在选择所有担任某人(而不是他们自己)主管或男性的员工。

从"ALL X"到结束
您选择的是不包括从先前子查询中提取的员工的所有员工,因此您选择的是某人(但不是他们自己)的主管且其下属为男性的所有员工。

从头到尾,您选择的是所有没有女性下属的员工。

从整组"employees"中你排除了那些记录,实际上排除了所有那些员工有一些女性下属。

C 是正确答案。