relational-algebracartesian-productnatural-join

Relational Algebra: Natural Join having the same result as Cartesian product


I am trying to understand what will be the result of performing a natural join between two relations R and S, where they have no common attributes.

By following the below definition, I thought the answer might be an empty set:
Natural Join definition.
My line of thought was because the condition in the 'Select' symbol is not met, the projection of all of the attributes won't take place.
When I asked my lecturer about this, he said that the output will be the same as doing a cartezian product between R and S.
I can't seem to understand why, would appreciate any help )


Solution

  • Natural join combines a cross product and a selection into one operation. It performs a selection forcing equality on those attributes that appear in both relation schemes. Duplicates are removed as in all relation operations.

    There are two special cases:

    • If the two relations have no attributes in common, then their natural join is simply their cross product.

    • If the two relations have more than one attribute in common, then the natural join selects only the rows where all pairs of matching attributes match.

    Notation: r s
    Let r and s be relation instances on schema R and S
    respectively.
    The result is a relation on schema R ∪ S which is
    obtained by considering each pair of tuples tr from r and ts from s.
    If tr and ts have the same value on each of the attributes in R ∩ S, a
    tuple t is added to the result, where
    – t has the same value as tr on r
    – t has the same value as ts on s
    

    Example:

    R = (A, B, C, D)
    S = (E, B, D)
    Result schema = (A, B, C, D, E)
    r s is defined as:
    πr.A, r.B, r.C, r.D, s.E (σr.B = s.B r.D = s.D (r x s))