关系代数Stanford Lagunitas在线课程测验

时间:2018-12-03 21:38:24

标签: sql join algebra relational

问题:计算R和S的自然连接。结果中以下哪个元组?假定每个元组都有模式(A,B,C,D)。

关系R

| A | C |
|---|---|

| 3 | 3 |
| 6 | 4 |
| 2 | 3 |
| 3 | 5 |
| 7 | 1 |

关系S

| B | C | D |
|---|---|---|
| 5 | 1 | 6 |
| 1 | 5 | 8 |
| 4 | 3 | 9 |

我不确定“假设每个元组都有一个A,B,C,D模式”的含义。这是否意味着R关系仅列出A和C却具有ABCD方案?我应该假设还有B和D,但B和D列为空白?

在该假设下运行,我得到的答案是错误的。解释说R中没有(7,5)显然在A列下。有人可以向我解释我做错了什么,或者我缺少什么吗?谢谢!

2 个答案:

答案 0 :(得分:1)

问题不是说R有这种方案。它说R&S的自然加入就是这种方案。

(关于什么是关系,可用的关系运算符,它们如何工作以及它们的符号有很多变化。它们告诉您期望这两个关系的连接模式具有列A,B ,C&D。您应该已经从课程中的定义中知道了这一点,但是由于它们给出了定义,因此没有人会误解这一部分。)

您似乎在说,您在自然联接中选择的行是2。这是正确的。解释说错误的选择不可能是正确的,因为元组(7,5)不在R中。它们并不意味着(7,5)是“在A列下”的值列表。但是,该反馈是针对选择3的,而不是针对选择2的。因此,答案检查似乎有一个错误。让他们知道。

答案 1 :(得分:1)

答案反馈具有误导性和错误性,如果您选择(7,1,5,8)

您的答案是正确的。

为彻底起见:在自然联接中,将元组连接到通用属性,在这种情况下,C是通用属性。

您的返回元组是:

  R        S
 A,C     B,C,D     A,B,C,D
(7,1) & (5,1,6) = (7,5,1,6)
(3,5) & (1,5,8) = (3,1,5,8)
(2,3) & (4,3,9) = (2,4,3,9)
(3,3) & (4,3,9) = (3,4,3,9) --Your answer, correct

我什至发现了Stanford doc defining a natural join,以防万一他们生活在与我们其他人不同的宇宙中,但事实并非如此。这只是测验中的错误。