自然连接是否超出集合差异?

时间:2012-07-15 12:12:14

标签: relational-algebra natural-join

换句话说,是这样的: r1⋈(r2 - r3)= r1⋈r2 - r1⋈r3

其中r1 r2和r3是关系

如果不是什么例子?

2 个答案:

答案 0 :(得分:3)

取一个元组t,包含JOIN的所有属性。 设t1为其“R1”部分。 设t2为其“R2”部分(由于R2-R3是一个有效的表达式,它也是t)的“R3”部分。

当且仅当:

时,R1 JOIN(R2 MINUS R3)中出现一个元组t

t1出现在R1中, AND t2出现在R2中, AND t2未出现在R3中。

元素t出现在(R1 JOIN R2)MINUS(R1 JOIN R3)中,当且仅当:

t1出现在R1中, AND t2出现在R2中,并且(情况并非如此)(t1出现在R1中, AND t2出现在R3中)。

因为t1必须出现在R1中,所以这会减少到:

t1出现在R1中, AND t2出现在R2中,而NOT(真正 AND t2出现在R3中)。
t1出现在R1中, AND t2出现在R2中,而NOT(t2出现在R3中)。

与第一种情况比较并观察条件是否相同。

另一种证明属性的方法是观察比(R2 MINUS R3)等效于(R2 INTERSECT CMP(R3)),CMP(R3)表示R3的补数(相对于其类型的通用关系) ),然后应用JOIN OVER INTERSECTION的分配。

答案 1 :(得分:1)

我对所提出的问题没有答案,但即使这是真的,我也不相信等价是对称的。考虑

r1 = (a1, a2)
r2 = (a1, a2, a3)
r3 = (a2, a3)

然后r1 ⋈ r2 - r1 ⋈ r3是可能的,因为每个操作数都是联合兼容的,而r2 - r3则不是。