1

我遇到了这个问题:

假设关系 R(A,B) 具有以下元组:

A   B
1   2
3   4
5   6

关系 S(B,C,D) 具有以下元组:

B   C   D
2   4   6
4   6   8
4   7   9

使用条件 RA < SC AND RB < SD 计算 R 和 S 的 theta-join 结果中包含以下哪个元组?假设每个元组都有模式(A、RB、SB、C、D)。

从以下答案中选择:

(3,4,2,4,6)
(1,2,4,4,6)
(1,2,2,6,8)
(3,4,4,7,8)

所以当我尝试它时,我看到了

(1, 2) matches (2, 4, 6)
(3, 4) matches (4, 6, 8)
(3, 4) matches (4, 7, 9)

所以我找到了以下元组(它们都尊重条件):

(1, 2, 2, 4, 6)
(3, 4, 4, 6, 8)
(3, 4, 4, 7, 9)

问题是这些都没有在多项选择中找到......

难道我做错了什么?

谢谢您的帮助!

4

1 回答 1

3

要计算 theta-join,基本上是对两个关系(这里是 R 和 S)进行笛卡尔积,并得出所有可能的组合。在这些元组中的每一个上,您应用条件 theta 并获得为真的条件。

在这里,笛卡尔给出 3x3 = 9 个元组。其中,8 个元组满足条件(RA < SC AND RB < SD)。这使得元组 (3,4,2,4,6) 成为 theta 连接集的元素。

您所做的是(RB = SB AND RA < SC AND RB < SD)的θ连接。希望这可以帮助您获得差异。

于 2013-01-26T12:05:08.080 回答