我遇到了这个问题:
假设关系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
计算R和S的theta-join,条件R.A< S.C AND R.B< S.D.结果中有哪些以下元组?假设每个元组都有模式(A,R.B,S.B,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)
问题是在多个选择中找不到这些......
我做错了吗?
感谢您的帮助!
答案 0 :(得分:3)
为了计算θ-join,人们基本上做了两个关系的笛卡尔积(这里是R和S),并且得到了所有可能的组合。在每个元组上,你应用条件theta并得到那些真实的元组。
这里,笛卡儿给出了3x3 = 9个元组。其中,8个元组满足条件(R.A< S.C AND R.B< S.D)。这使得元组(3,4,2,4,6)成为theta连接集的一个元素。
你所做的是(R.B = S.B AND R.A< S.C AND R.B< S.D)的θ联接。希望能帮助您获得成功。