Re: Resiliency To New Data Requirements
Date: 11 Aug 2006 12:33:09 -0700
Message-ID: <1155324789.458301.286130_at_i3g2000cwc.googlegroups.com>
dawn wrote:
> OK, or perhaps "the use of 1NF" was flawed, while there is nothing
> wrong with coining and defining it. I'm not sure that "nonsimple
> domains" (in the definition) was ever nailed down as precise
> mathematics. But if the mathematicians tell me the mathematics was not
> flawed, then I'm good with that. It is the application of that
> mathematics to data (the modeling of data) where my interests lie. The
> mistake was requiring software development teams to model data in what
> was termed 1NF.
Perhaps. Relational still doesn't accept more than 1 value for an attribute of a tuple; in other words, if you query a single attribute in a single tuple, the RDBMS will only give you 1 value back. That value can be complex, but the RDBMS doesn't have anything beyond that one value. Functions can be used to transform it, of course.
If that value is a relation (in an RVA), you gain the power of relational algebra/calculus without having to introduce special syntax or semantics. But of course, any user-defined domain can have functions over it as well.
As far as I know, the only doubt about 1NF is the range of domains [strange phrase] from which values can be drawn. Early relational practictioners didn't consider or implement complex domains (at least for the most part). We now understand that an attribute can be of ANY domain. Presumably even a database.
> > Of course in math, a relation can contain an element from
> > any domain, and once RM became established this was picked up on
> > relatively quickly.
>
> I gather that you mean "in theory" it was picked up relatively quickly.
> I'm not heavily tapped into what everyone out there is doing, but my
> pals are not defining new domains right and left.
True, but off-the-shelf applications and suppliers of various frameworks might. Left and right isn't necessary for the notion to have value.
> Are these consistency rules only related to relationships between
> relations? Are they unrelated to the consistency of data values for an
> attribute, the sets from which valid values may come? Are contraints
> related to domains outside of the scope of the relational model? If
> so, what is the name of the scope they are in?
They're constraints, of a sort - but enforcement requires only that the value placed into a tuple attribute be of the same type as that attribute. This requires that values can be selected - that there be expressions to designate values of that type.
> The good news is that even if theorists are split or narrowly define
> the RM so that it no longer contains any of the issues it helped cause
> in the industry,
What issues?
> I think practioners would generally understand the
> relational data model to be the model that (at least in the 80's)
> forbade nested values, repeating groups, multivalues, non-1NF, or
> whatever you want to call it. So I think when I speak about "the
> relational model" with practitioners, they pretty much understand that
> it disallows lists as attribute values, for example.
I think "disallows" is too strong, especially with our new understanding. People have used Oracle to store arrays, and even (ugh) lists encoded in strings. But certainly there's the indication that if you've got a complex type (define that how you like), you should instead be using another relation. You don't have to, and may have reasons not to, but it's a "design smell."
> I suspect we could both agree to the terminology that it is the advent
> of the relational model that brought about what was termed 1NF and
> disallowed non-simple domains (such as lists) even if we define the RM
> differently today.
I'm not so sure - did earlier data models allow "container" types at its nodes? I thought the main difference in those models was the mode of navigation, and the lack of a predicate correspondence.
> > whereas the other important
> > advantages of the model over its competitors proved to be overwhelming,
> > and it dominated in good old darwinian fashion.
>
> I never thought of darwinianism in terms of the marketing buzz
> surrounding survival of one technology and not another, but ... ;-)
While survival in the market indicates something, I can't say it always indicates advantages of the sort that are meaningful to rational thought.
> Just as with relational theory covering relations and something else
> covering domain operators in a single "data model" (or what I would
> term one), we can partition the space so that one theory meets some
> requirements for solutions and another meets another. It could even be
> partitioned so that some types of problems or domains use this data
> model and others use another, right? (I fully accept that I'm not
> "getting it" on this point and you may certainly point that out).
The trouble is when the solutions are part of the same enterprise, and later need to interact. I suspect that whatever their models, relations offer a better model for interaction between "inferior" models.
- erk