PROJECTION

Definition: Let r be a relation and let A, B, ..., C be attributes of r. Then the projection of r on (or over) those attributes, r{A,B,...,C}, is a relation with (a) heading {A,B,...,C} and (b) body the set of all tuples x such that there exists some tuple t in r with A value equal to the A value in x, B value equal to the B value in x, ..., and C value equal to the C value in x.

For example:

image with no caption

To repeat, the result is a relation; thus, “duplicates are eliminated,” to use the common phrase, and that DISTINCT in the SQL formulation is really needed, therefore.[76] The result heading has attributes (or columns) COLOR and CITY—in that left to right order, in SQL.

Let r be a relation. Then:

  • The projection r{H}, where {H} is all of the attributes—in other words, the heading—of r, just returns r. Such a projection is known as an identity projection.

  • The projection r{}—in other words, the projection of r on no attributes at all—returns TABLE_DEE if r is nonempty, TABLE_DUM otherwise. Such a projection is sometimes called a nullary projection; however, the term nullary is best avoided because of the potential confusion with SQL-style nulls. (Just to remind you, TABLE_DEE is the unique relation with no attributes and just one tuple—the 0-tuple, of course—and TABLE_DUM is the unique relation with no attributes and no tuples at all. The fact that projecting r on no attributes always yields ...

Get SQL and Relational Theory, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.