List:General Discussion« Previous MessageNext Message »
From:bluejack Date:October 28 2003 8:23pm
Subject:Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)
View as plain text  
On Tue, 28 Oct 2003 11:56:54 -0800, Jon Frisby <jfrisby@stripped> wrote:

>> MySQL may or may not conform to some standard or another, and it may
>> or may not perform the tasks that you, personally, want it to, but
>> in fact it *is* a relational database, as opposed to a flat file or
>> an object database.
>
> "Some standard or another"?  You make it sound as if there is no
> definitive answer to the question of "what constitutes a relational
> database".  That is absolutely not true.  We need only look to the

I do enjoy these sorts of discussion, because they help me improve
my own understanding of both the philosophies and the technologies
in question. So thank you for your lengthy and informative reply.

> individual who created the concept of the relational database: E.F.
> Codd.  Since he invented the concept of the relational database (way
> back in 1970), his word is definitive as to what constitutes a
> "relational database" and what does not.

It is important to take a deep breath and realize that when someone
asks "Is MySQL a Relational Database" they are probably *not* asking
whether it comprehensively and successfully implements the inventor's
requirements, however definitive. The probable question is, is it
this *kind* of database (engine) or is it something else?

I think we are all in agreement that MySQL does not perfectly implement
the concept of a relational database, but that its inspiration is the
relational model and not some other model. I think the original
questioner should be clear on that now, as well.

> "No existing RDBMS is even close to full compliance. Oracle would rate
> about 60% compliance. Others are lower except Ingres and FirstSQL which
> rate about 65% compliance."

A statement like this pretty much nails the lid of the coffin
down on the value of the inventor's definitive requirements.
I believe in real world applications, rather than platonic
ideals. However fabulous the original idea is, if *nobody*
wants to implement it, then we might as well be talking about
time travel or something. Pure speculation.

> By rule #2, MySQL (and most other "RDBMSs") have already fallen down:
> Any "RDBMS" that allows you to define a table without a unique key of
> some sort fails rule #2.

I actually think this is more controversial than your next example,
because it leaves the power in the hands of the developers. Although
the RDBMS doesn't force the database designer into correct behavior,
it allows it.

> Rule #3 is somewhat more controversial.  It requires at least two
> different "kinds" of null.  Codd referred to them as A-mark, and I-mark:

This is a far more interesting point because it is a feature that
would be very useful, and which I have never seen implemented. I
would sooner see RDBMS software implement this than conform to
rule #2.

> So basically, MySQL complies with about 5 of the 13 basic requirements
> for a relational DB.

And given that the most compliant RDBMS is only hitting two or three
more points, I think we all need to loosen our ties and agree that
while the distinction between 'relational database' in common parlance
and in theory is both important and interesting, MySQL is a relational
database engine.

But thanks for all the links. Great to have these resources.

-bluejack 

Thread
Foreigner keys in MySQL?Juliana Gubert Ehrensperger28 Oct
  • RE: Foreigner keys in MySQL?Michael McTernan28 Oct
  • Re: Foreigner keys in MySQL?Peter Brawley28 Oct
  • Re: Foreigner keys in MySQL?bluejack28 Oct
    • Re: Foreigner keys in MySQL?Martijn Tonies28 Oct
      • Is MySQL Relational? (was: Foreigner keys in MySQL?)bluejack28 Oct
        • Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Martijn Tonies28 Oct
      • Re: Foreigner keys in MySQL?shrek-m@gmx.de28 Oct
RE: Foreigner keys in MySQL?John Griffin28 Oct
Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)jeffrey_n_Dyke28 Oct
  • Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Saqib Ali28 Oct
RE: Is MySQL Relational? (was: Foreigner keys in MySQL?)Saqib Ali28 Oct
Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)bluejack28 Oct
Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Heikki Tuuri28 Oct
  • RE: Is MySQL Relational? (was: Foreigner keys in MySQL?)Mike Brando28 Oct
    • Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Martijn Tonies29 Oct
Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Peter Brawley28 Oct
Re: Is MySQL Relational? (was: Foreigner keys in MySQL?)Martijn Tonies29 Oct