Chapter 5. Base Relvars, Base Tables

BY NOW YOU SHOULD BE FAMILIAR WITH THE IDEA THAT RELATION VALUES (RELATIONS FOR SHORT) VS. RELATION VARIABLES (RELVARS FOR SHORT) IS ONE OF THE GREAT LOGICAL DIFFERENCES. Now it’s time to take a closer look at that difference; more specifically, it’s time to take a closer look at issues that are relevant to relvars in particular, as opposed to relations. Caveat: Unfortunately, you might find the SQL portions of the discussion that follows a little confusing, because SQL doesn’t clearly distinguish between the two concepts—instead, it uses the same term table to mean sometimes a table value, sometimes a table variable. For example, the keyword TABLE in CREATE TABLE clearly refers to a table variable; but when we say that, e.g., table S has five rows, the phrase “table S” clearly refers to a table value (namely, the current value of the table variable called S). Be on your guard for potential confusion in this area.

Let me also remind you of a few further points:

  • First of all, a relvar is a variable whose permitted values are relations, and it’s specifically relvars, not relations, that are the target for INSERT, DELETE, and UPDATE operations (more generally, for relational assignment operations—recall that INSERT, DELETE, and UPDATE are all just shorthand for certain relational assignments).

  • Next, if R is a relvar and r is a relation to be assigned to R, then R and r must be of the same (relation) type.

  • Last, the terms heading, body, attribute, tuple, ...

Get SQL and Relational Theory 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.