输出TRC查询?

时间:2015-11-13 09:24:43

标签: database output relational-database predicate

考虑关系employee(name,sex,supervisorName),其名称为key,supervisorName给出所考虑员工的主管名称。以下Tuple Relational Calculus查询产生了什么?

enter image description here

  1. 有男性主管的员工姓名。
  2. 没有直接男性下属的员工姓名。
  3. 没有直接女性下属的员工姓名。
  4. 有女性主管的员工姓名。
  5. 我的尝试:

    内部查询返回(注意 - 没有否定)“有男性主管的员工姓名”,但

    内部查询返回(带有否定)=“除了具有男性主管的员工姓名”之外的可用关系,则表示=“具有女性主管的员工姓名”。

    因此,选项(4)为真。

    它在某处解释为:

    查询选择e使得e是员工,对于所有x,x不是员工,x的主管名称不是e.name或x是男性。

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

      

    你能用正式的方式解释一下吗?

1 个答案:

答案 0 :(得分:2)

分离查询的各个部分:

内心部分(从第一个OR到结尾)
您选择的是所有员工(不是他们自己)或男性的主管。

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

从开始到结束,您选择的是所有没有女性下属的员工。

从整套“员工”中排除这些记录,实际上排除所有员工都有一些女性下属。

C是正确的答案。