Re: header part of the value?



Marshall wrote:
...
Of course, that then leads me to think of a relation value
as a <header, body> tuple. (Let us omit column type
information for the present discussion.)


What's wrong with the D&D def'n?, ie:
(quote)

Let r be a relation, let A be the name of an attribute of r, let T
be the name of the corresponding type (i.e., the type of attribute
A), and let v be a value of type T. Then:

The heading Hr of r is a set of attributes (i.e., ordered pairs
of the form <A,T>). By definition, no two attributes in that
set contain the same attribute name A.

Let tr be a tuple that conforms to Hr; i.e., tr is a set of
ordered triples of the form <A,T,v>, one such triple for each
attribute in Hr.

The body Br of r is a set of such tuples tr. Note that (in
general) there will be some such tuples tr that conform to Hr
but do not appear in Br.

(end quote)

That definition of tuples in a body seems enough for them to define the rest of their algebra on top of.

... Then one imagines
an updatable relation variable in a database as holding
a value of this tuple type. BUT then we notice that we
have this restriction that the header must not be updated.
Why is that?
...


I guess a change in header is like switching context in a conversation but if you are talking about some absolute restriction, I'd like to know where that comes from (eg., is it just a figment of some OO-fan's obsession?).
.