More Equivalences
A projection commutes with a selection that only uses attributes retained by the projection.
Selection between attributes of the two arguments of a cross-product converts cross-product to a join.
A selection on just attributes of R commutes with R S. (i.e., ? (R S) ? ? (R) S )
Similarly, if a projection follows a join R |X| S, we can `push’ it by retaining only attributes of R (and S) that are needed for the join or are kept by the projection.