Relational Algebra - Cartesian Product vs Natural Join?

前端 未结 3 1865
被撕碎了的回忆
被撕碎了的回忆 2021-02-15 11:02

I am studying for exams and am failing to find a solid criteria by which I can determine if the Cartesian Product x is to be used or if Natural Join |X|

3条回答
  •  生来不讨喜
    2021-02-15 11:31

    A natural join, as I understand it, is a projected, filtered Cartesian product:

    • You take the Cartesian product, then
    • select it, so that the values in columns of the same name have the same value, and
    • project it, so that all columns have distinct names.

    Under this assumption, your answer is isomorphic to the actual answer.

    To see this, you might want to expand the natural join to the above sequence of operators, and float them around using the laws of relational algebra. You'll see that the projection disappears due to the projection to name, and the selection criterion is fused with the selection above. You'll end up with exactly the same tree as the actual answer, even though you never changed the meaning of your own answer!


    I can think of one reason why your lecturer uses these concepts interchangeably: your lecturer wants you to understand that these concepts can be used interchangeably, because "the natural join is just a shortcut" (though that's debatable).

提交回复
热议问题