Re: Relational Databases and Their Guts

From: Paul Vernon <paul.vernon_at_ukk.ibmm.comm>
Date: Mon, 23 Jun 2003 13:04:56 +0100
Message-ID: <bd6vnc$2b5m$2_at_gazette.almaden.ibm.com>


"Todd Bandrowsky" <anakin_at_unitedsoftworks.com> wrote in message news:af3d9224.0306221519.2f121f11_at_posting.google.com...
> To follow up further with my example. Let us call the act of taking
> any RCOL(RnPK) and making them into attributes of any new view Rx,
> Rotation.
>
> 1) IS Rotation definable in terms of the basic relational operators of
> SELECT, PROJECT, etc.
>
> 2) Since Rotation MUST introduce empty data, unless the number of
> elements in RCOL is the same for each RCOL for all RnPK, then:
>
> a) Should there not be something like NULL, but does not mean
> undefined, but merely, empty?

Yes. Empty sets. E.g an empty relation.

> b) If it is provable that there exists cases where a resulting view is
> not updatable, then, is not the case, that no database, regardless of
> implementation, can actually satisfy the updateable view requirement?

View updating is another issue. I (happen to) disown the concept. Views are relational expressions, they are not variables and hence they are not updatable. End of story.

View updatability is a (somewhat) wrong headed way to provide logical data independence.

[maybe we need a new thread on view updatability :-) ]

> c) If in fact, the requirements for a relational database are
> theoretically impossible to meet, because for any implementation you
> can always create a non-updatable view, and, because, you have to
> introduce NULL to do rotation, then, isn't fair to say that no
> database can actually be a relational database?

Nice try, but wrong on two counts. View updatability is not a fundamental requirement of a relational database. At best it has only ever been a 'nice to have'. Second, you don't need nulls to represent something that is empty, you just need something that is empty, such as an empty set, or empty list, or empty array, or empty relation...

BTW, if you do pick up Chris Date's 1NF article, then see the section titled "RVA's Make Outer Join Unnecessary" for some insight here. As he says, "to represent an empty set by an empty set seems like an obviously good idea!". :-)

Regards
Paul Vernon
Business Intelligence, IBM Global Services Received on Mon Jun 23 2003 - 14:04:56 CEST

Original text of this message