Re: Data Display & Modeling
Date: Sat, 8 May 2004 10:12:19 -0400
Message-ID: <g7Odnb6T7r0ZdwHd4p2dnA_at_comcast.com>
> > b-1. no internal structure in attributes
> Complete disagreement on this. The purpose of this, as best I can tell,
is
> to keep the model as simple as possible (but no simpler). But
> mathematically simple and conceptually simple are not the same thing. So,
> even if you have to map the more mathematically complex, but conceptually
> easier, approach of permitting types with internal structure in your model
> to the relational model for some reason, it is worth it. A significant
> number of relational theorists seem to now permit attributes with internal
> structures, at least relation-valued attributes now.
>
I'd like to suggest that Codd had a reason for this requirement that is
neither mathematical nor conceptual simplicity.
If you read Codd carefully, I believe you'll find that he acknowledges that
there's no rule in relational math to prevent a relation from having an
attribute that has a domain that is, itself, a relation. He surely doesn't
impose this rule for mathematical simplicity. I'm less sure about
conceptual simplicity, but I speculate that Codd did not have much
divergence, in his own head, between conceptual simplicity and mathematical
elegance.
I'd suggest that the reason for the simple attributes rule is, perhaps,
"implementation simplicity". Essentially, telling whether two relations
are or are not equal involves comparing the elements, and that involves
sorting them. Putting the necessity for sorting things implicitly into the
RDM, while at the same time explicitly stating that order has no meaning in
a relation, was just goin to confuse the engineers who built the first
RDBMS systems. That's what I think Codd was thinking. So the simple