Re: O'Reilly interview with Date

From: David Cressey <david.cressey_at_earthlink.net>
Date: Wed, 10 Aug 2005 13:27:37 GMT
Message-ID: <dhnKe.3617$Je.2808_at_newsread2.news.atl.earthlink.net>


"Kenneth Downs" <knode.wants.this_at_see.sigblock> wrote in message news:t42ns2-r3t.ln1_at_pluto.downsfam.net...

> This makes the RM semi-structured :)

Agreed. ;)

>
> To the RM, a table is semi-structured because an item of type char(20) is
> handled as payload, an opaque stream of bytes. The type engine provides
> services such as comparisons, but the Relational engine doesn't care.

Disagreed. The RM includes support for "domains". Two domains could have the same format (e.g. char(20)) and still be different domains. The relational engine treats two columns based on different domains with the same format as being of different types.

From here, I'm going to slip into a specific implementation, rather than an abstract relational engine. DEC Rdb/VMS included support for domains (which were called "global fields") way back in 1984. After Rdb/VMS moved over to SQL, "global fields became known as "domains" in Rdb/VMS literature.

In this connection, I want to express a contrarian view about "natural joins".
I think making joins "natural" based on common column names is a mistake. It's overloading the column name.
Natural joins sohlud be based on common domain names. Better yet, they should be based on declared REFERENCES constraints (perhaps unenforced). Received on Wed Aug 10 2005 - 15:27:37 CEST

Original text of this message