On Tue, 28 Oct 2003 11:56:54 -0800, Jon Frisby <[EMAIL PROTECTED]> 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


-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to