Re: Lucid statement of the MV vs RM position?

From: dawn <dawnwolthuis_at_gmail.com>
Date: 24 Apr 2006 09:24:02 -0700
Message-ID: <1145895842.391625.118360_at_u72g2000cwu.googlegroups.com>


Jan Hidders wrote:
> dawn wrote:
> > Jan Hidders wrote:
> > > dawn wrote:.
> > > >
> > > > So, let me know if the IP is no longer applicable and where there are
> > > > any implementations of this new approach.
> > >
> > > Come on, Dawn, this has already been discussed to death in this
> > > newsgroup. The IP only say that all the information should be
> > > represented in relation, what is in the columns of those relations it
> > > does not speak about, so there could be very well lists there as far as
> > > the IP is concerned.
> >
> > And lists as attribute values is implemented by whom, where?
>
> Er, Dawn, quick follow-up questions are not going to hide the fact that
> you yet again managed to misunderstand the exact meaning of one of the
> most fundamental principles of the relational model.

OK, I really do want to understand and appreciate any patience you can muster. Date quoting Codd says

"The Information Principle (which I heard Ted refer to on occasion as the fundamental principle underlying the relational model)...

    'The entire information content of a relational database is represented in one and only one way: namely, as attribute values within tuples within relations.'"

Historically there have additionally been statements about these values being scalar values or atomic values, but I will set that aside and figure the RM has evolved beyond that, even if current usage (SQL-92 is where database independent SQL seems to be sitting) lags behind.

By this description, these attribute values could be of any type, including a user-defined type that is a list. Implementations and even dreamed-about implementations, to my knowledge, have the DBMS and related languages recognize only relations and scalar wrt defined type values (of varying primitive types), permitting site-specific definitions of user-defined types.

Are you suggesting that there have been implementations where list attributes have been defined (as UDTs) in such a way that the query language understands and properly handles values that are lists (ordered)? When defining this type, is it easy enough to implement it so that ALL and EVERY (or whatever) will function properly from SQL against these lists (not just against RVAs)?

I have not tried writing any UDF's so my guesses might be wrong -- I anticipated that the type definitions used something along the lines of a toString() for display, along with possibly other functions to extract values such as List[2] but that grouping and ungrouping within SQL would only be for RVA's and no other collection types.

I very much appreciate you helping me get this right.

> > If you
> > are saying that every site can implement it, including making any
> > relevant changes to the query language, has anyone done that?
>
> Yes. User-defined types (UDTs) were already added in SQL:1999. See for
> example on
>
> http://www.wiscorp.com/SQLStandards.html
>
> under the, for you perhaps, intriguing title: "Great News, The
> Relational Model is Dead"

[There's a clue! I do understand that once the RM is dead, then we can get the job done ;-) And if we redefine it so that much of what it stood for is removed, that would work too, although likely harder to get the industry to move beyond the early definitions.]

> UDTs (or something similar) are possible in Sybase, DB2, Oracle, SQL
> server, PostgreSQL and probably more I cannot think of right now. Come
> to think of it, a list-of-something datatype can of course also be
> defined easily in Alphora's Dataphor.

I read a lot of the Tutorial D information a while back, but I saw only the grouping and ungrouping constructs for RVAs and not lists or other collection types. Has anyone used Dataphor to define lists in such a way that they are handled as one might expect in the query language?

It is conceivable to me, Jan, that in the inner sanctum the RM is already dead (or altered so much that 1NF, 3VL, and the IP understood as relations and primitive scalars are all gone), in which case I'm only adding my voice to what is already known by theorists. That would be great as it would much better align what I have seen as best practices with the theory.

My goals would still include getting the word out about this fatality. I doubt many undergraduate courses teach that 1NF, as we knew it, is dead, for example. I sure don't see that knowledge having made it into the practitioners "common knowledge" as yet. I see little movement along these lines in industry other than various struggles with persisting XML. If you do know of an implementation of lists that aligns with current relational theory (which was once described as "no lists" or "no repeating groups"), I'm very interested.

As always, thanks for your help. --dawn Received on Mon Apr 24 2006 - 18:24:02 CEST

Original text of this message