-used to combine tuples from two relations in a combinatorial fashion.

-Denoted by R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm)

-Result is a relation Q with degree n + m attributes:

Q(A1, A2, . . ., An, B1, B2, . . ., Bm), in that order.

-The resulting relation state has one tuple for each combination of tuples—one from R and one from S.

-Hence, if R has nR tuples (denoted as |R| = nR ), and S has nS tuples, then R x S will have nR * nS tuples.

-The two operands do NOT have to be "type compatible" R(A1, A2, . . ., An)JOINS(B1, B2, . . ., Bm)

-Result is a relation Q with degree n + m attributes:

-The resulting relation state has one tuple for each combination of tuples—r from R and s from S, but only if they satisfy the join condition r[Ai]=s[Bj]

-Hence, if R has nR tuples, and S has nS tuples, then the join result will generally have less than nR * nS tuples.

-Only related tuples (based on the join condition) will appear in the -

-Theta-join(can be any general boolean expression on the attributes of R and S; for example:

)