Re: Question on Structuring Product Attributes

From: James K. Lowden <jklowden_at_speakeasy.net>
Date: Tue, 12 Feb 2013 02:11:14 -0500
Message-Id: <20130212021114.a695e1fd.jklowden_at_speakeasy.net>


On Mon, 11 Feb 2013 16:48:54 -0800 (PST) Derek Asirvadem <derek.asirvadem_at_gmail.com> wrote:

> > > > AFAIK the word "relational" doesn't appear in the SQL
> > > > standard unless to explicitly deny fealty to it.
> > >
> > > So what ? It is a standard.
> >
> > Yes, it's a standard defined explicitly in terms of itself, not in
> > terms of RM. Your claim that, "SQL is [the] data sublanguage
> > defined in the RM" is thus denied.
>
> ??? The RM defined a Data Sublanguage, nothing else did; the first
> SQL was the rendition of the Data Sublanguage defined in the RM; the
> SQL Standard is the progressed definition of a portion of the Data
> Sublanguage defined in the RM; any SQL implementation is the
> progressed rendition of the Data Sublanguage defined in the RM.

Words fail me, clearly. To me, the fact that the SQL standard defines the language without reference to the relational model ipso facto means it's not "defined in the RM". Your argument, to the contrary, seems to be:

  1. The relational model defined a data sublanguage
  2. SQL was an implementation ("rendition") of that sublanguage
  3. Ergo, SQL is defined by the RM

Exactly how does #3 follow from #2?

Put another way: How poor does an implementation have to be -- and how much must it disavow RM -- before it can no longer be claimed to be defined by it?

At the risk of angering the copyright gods, let me quote from "The RELATIONAL MODEL for DATABASE MANAGEMENT: VERSION 2", 1990, by EF Codd, pages 12-13.

        "SOL was invented in late 1972. Although it was claimed that the language was based on several of my early papers on the relational model, it is quite weak in its fidelity to the model. Past and current versions of this relational language are in many ways inconsistent with both of the abstract machines RM/V1 and RM/V2. Numerous features are not supported at all, and others are supported incorrectly. Each of these inconsistencies can be shown to reduce the usefulness and practicality of SOL.

        "The most noteworthy error in several current implementations is that SQL permits the use and generation of improper or corrupted relations, that is, "relations" that contain duplicate tuples or rows. In Chapter 23 this problem is examined in sufficient detail to demonstrate the seriously adverse consequences of this very simple infidelity to the model. As each feature of RM/V2 is introduced in this book, the attempt is made to comment on SQL's support, non-support, or violation of the feature.

        "Several relational languages other than SQL have been developed. An example that I consider superior to SQL is Query Language (abbreviated QUEL). This language was invented by Held and Stonebraker at the University of California, Berkeley, and was based on the language ALPHA [Codd 1972]. More attention is devoted to SQL, however, because it has been adopted as an ANSI standard, and is supported in numerous DBMS products."

Chapter 23 is entitled "Serious Flaws in SQL".

If you want to say SQL is defined by the relational model because IBM claimed as much back in the day, OK. I for one don't find that argument persuasive.

--jkl Received on Tue Feb 12 2013 - 08:11:14 CET

Original text of this message