Search code examples
joinrelational-databaserelational-algebra

Relational Algebra Stanford Lagunitas Online Course Quiz


Problem: Compute the natural join of R and S. Which of the following tuples is in the result? Assume each tuple has schema (A,B,C,D).

Relation R

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

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

Relation S

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

I'm not quite sure what it means by "assume each tuple has a schema of A,B,C,D". Does this mean the R relation has a scheme of ABCD although it only lists A and C? I should assume there's also B and D but columns B and D are blank?

Operating under that assumption, I got the answer wrong. The explanation says there's no (7,5) in R which there clearly is under column A. Could someone explain to me what I'm doing wrong or if I'm missing something? Thank you!


Solution

  • The answer feedback is misleading and wrong, that would be the feedback if you choose (7,1,5,8)

    Your answer is right.

    For thoroughness: in a natural join you connect tuples on common attributes, in this case C is the attribute in common.

    Your return tuples are:

      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
    

    I even found a Stanford doc defining a natural join, just in case they lived in a different universe than the rest of us, but they don't. It's just a bug in the quiz.