Re: database design method
Date: 11 Nov 2002 21:23:57 +0100
D Guntermann wrote:
>Date indeed admits and even explains his recantation in "An Introduction to
>Databases, 7th Edition" in Chapter 5 under the subsection entitled
>"Relation-Valued Attributes". I am somewhat surprised by your surprise.
>His 7th edition has been out for some time now.
Yes, I have to admit a feel a bit stupid here since the book has been lying on my desk for the last 3 monts. But I used to teach from the 6th edition and since then we only use a few chapters and use Ullman for when things get serious.
>I hate to dampen any glee concerning Date's apparent abandonment of 1NF and
>the classical relational model, but he does also write the following in
>reference to what Ms. Pietarinen's commented on in Date's "Introduction...."
>"Some writer's would reject this definition and define an 'NF^2 relation' to
>be any relation with at least one attribute that is relation-valued. We
>have our own reasons for arguing that such a relation in fact is in first
>My thoughts on the foregoing are that Date interpreted Roth, et. al's
>definition of a NF^2 relation to be a relation that held non-relational
>structures (i.e. quasi-relations holding repeating groups).
Quasi relations holding repeating groups? Of course they do because that is what nested relations do! But Roth et al give a decent formal definition of their relations so I fail to see how Date could have misunderstood that.
>So please don't kiss 1NF good-bye yet. ;-)
>Moreover, Mr. Date, in chapter 11, does go on to say that it seems
>prefereable to avoid relation-valued attributes, at least for base relation
>variables in most cases, because they are asymmetric and provide a degree
>of needless complexity.
I fully agree with Date here. In fact, I would even go further then that. IMO we should stick with the original flat interpretation of the relational model, (so not even relation-valued attributes) but with the addition that we allow domains of abstract identifiers (or object identifiers if you want to call them that). With that you can represent anything you want (nested sets, lists, trees, graphs, et cetera) and still exploit the full power of the relational algebra (although we would need some new operators to create new identifers). People often forget that the requirement that the domains should not contain abstract identifiers is something where the relational model deviates from first-order logic.
- Jan Hidders