换句话说,是这样的: r1⋈(r2 - r3)= r1⋈r2 - r1⋈r3
其中r1 r2和r3是关系
如果不是什么例子?
答案 0 :(得分:3)
是
取一个元组t,包含JOIN的所有属性。 设t1为其“R1”部分。 设t2为其“R2”部分(由于R2-R3是一个有效的表达式,它也是t)的“R3”部分。
当且仅当:
时,R1 JOIN(R2 MINUS R3)中出现一个元组tt1出现在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
则不是。