如何用投影和等值连词来表达交集?

时间:2018-01-21 16:32:47

标签: join relational-algebra set-intersection

Here(在幻灯片#46处)说:显示交叉点R ∩ S可以使用 投影和等值连接的组合。

怎么可能?据我所知,R ∩ S = R - (R - S),因此对于交集,两个关系必须具有相同的属性。拥有相同的属性,为什么我们需要投影?

1 个答案:

答案 0 :(得分:2)

在你链接的文件的幻灯片27中,据说union和difference的relations参数必须只有相同的arity,不一定是相同的属性,对于交集也是如此。

因此它们可以有不同的名称,在这种情况下,如果你在R和S上对相同位置的属性进行等值连接,结果相当于交集,但具有更多必要的属性,因此投影是必需的获得与正确数量的属性的关系。

例如,假设你有:

R(A, B, C) ∩ S(D, E, F) = The set of tuples appearing both in R and S

这相当于:

π(A,B,C) (R(A, B, C) ⋈(A=D ∧ B=E ∧ C=F) S(D, E, F))

请注意,投影可以通过选择每对(A,D),(B,E)和(C,F)的两个属性中的任何一个来完成。

最后请注意,关系代数上的集合运算符的其他定义要求操作数具有相同名称和类型的属性。