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
> 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
But thanks for all the links. Great to have these resources.