-1

我的实际任务:以下两个关系是否等价,为什么,为什么不?/)

r5: 项目 B (R) 加入项目 B (U)
r6: 项目 B (R 加入 U)

图像 http://s29.postimg.org/hgfgfmptx/zzz.png

而 R(ABC) 和 U (AB)

我已经得出结论,r5 将生成与单个属性 B 的关系,其中包含 R 和 U 共享的 B 的公共值。

但是我被困在r6。r6 将生成哪些 B 值?因为这两个关系共享两个属性。

非常感谢!

4

1 回答 1

0

(自然)JOIN 匹配所有共同的属性(相同的属性名称)。

在 r5 中,B 在加入之前投影在 R 和 U 上。所以唯一共同的属性是 B。(属性 A 和 C 中的值被忽略。)

r5 相当于

    SELECT B
      FROM R, U
     WHERE R.B = U.B

在 r6 中,(R JOIN U) 的共同属性是 BA。所以该连接的结果只有来自 R 和 U 的元组对于 A 和 B 具有相同的

r6 相当于:

    SELECT B
      FROM R, U
     WHERE R.B = U.B AND R.A = U.A
于 2015-07-14T08:26:51.563 回答