|< < 55 > >|

Transforming Relational Algebra Expressions

Transformations involving multiple kinds of operators

Select can be pushed below a join

Suppose we have tables R and S:
R(a, b, c) S(c, d, e)

A query involving a join of these tables can include selection on any or all of the columns of R and S:

  • Join predicate: The query has a join predicate, of course: R.c = S.c.

  • R columns only: E.g., a = 1

  • S columns only: E.g., d > 5

  • Columns from both R and S: E.g. b < e

These are connected by ands (since we are assuming CNF).

|< < 55 > >|