Re: does a table always need a PK?

From: Heikki Tuuri <Heikki.Tuuri_at_innodb.com>
Date: Mon, 25 Aug 2003 04:55:02 GMT
Message-ID: <GEg2b.11$G37.0_at_read3.inet.fi>


Hi!

"Christopher Browne" <cbbrowne_at_acm.org> kirjoitti viestissä news:bibhbj$7hssg$1_at_ID-125932.news.uni-berlin.de...
> After a long battle with technology,"Heikki Tuuri"
<Heikki.Tuuri_at_innodb.com>, an earthling, wrote:
> > I would like to bring up to the discussion what I remarked in the other
> > discussion thread on MySQL RDBMSness.
> >
> > If we have a quantum mechanical system where electrons are
> > indistinguishable, would it not be natural to create a table of
electrons
> > without a primary key?
>
> In a non-relational system, sure.
>
> In a relational database, as per Codd's definition,
>
> "Each and every datum (atomic value) in a relational database is
> guaranteed to be logically accessible by resorting to a table name,
> primary key value, and column name."
>
> Thus, for a system to be considered relational, there must be, by
> definition, a primary key.
>
> Of course, MySQL AB doesn't claim to sell a relational database (the
> word "relational" is not used anywhere on the main web page), so
> perhaps MySQL might be the preferable database system for managing
> those sorts of things.

In the manual they claim to sell one:

http://www.mysql.com/doc/en/What-is.html "
MySQL is a relational database management system. "

I think in all SQL databases you can create a table without a primary key.

2 years ago we discussed the 'correct' definition of 'relational' in comp.databases.theory with several people. I think the concept is vague. For example, Codd's 12 principles are not formulated as mathematical axioms. We cannot use them to prove formally with the predicate calculus that system S is 'Codd-12-relational'. This is in contrast to that we can prove from the ZFC axioms of set theory, for example, that there are as many rational numbers as natural numbers.

I think a more objective way of talking about 'relational' is naming the definition after the person and the source. We can talk about 'Codd-1970-relational', etc. If someone finds a fruitful new definition, or interpretation of 'relational', he can submit it to an academic refereed journal, just like Codd did.

> --
> (reverse (concatenate 'string "ac.notelrac.teneerf" "_at_" "454aa"))
> http://www3.sympatico.ca/cbbrowne/sap.html

Best regards,

Heikki Tuuri
Innobase Oy
http://www.innodb.com
Foreign keys, transactions, and row level locking for MySQL InnoDB Hot Backup - a non-free hot backup tool for MySQL Received on Mon Aug 25 2003 - 06:55:02 CEST

Original text of this message