Re: does a table always need a PK?
Date: 30 Aug 2003 15:43:15 -0700
Message-ID: <57da7b56.0308301443.21c98c43_at_posting.google.com>
"Heikki Tuuri" <Heikki.Tuuri_at_innodb.com> wrote in message news:<q593b.818$n62.433_at_read3.inet.fi>...
> I have said that the concept of an 'RDBMS' is vague. Lee Fesperman and Bob
> Badour say it is not vague. It is their job to provide the exact definition.
> In the threads with Mikito Harakiri and Jan Hidders you find some reasons
> why I am asking these questions.
This all boils down to the fact that what it is you mean by the term 'RDBMS' is not what Lee & Bob (et al) mean by 'RDBMS'. In common with a lot of folk, you are using the term 'RDBMS' to refer to a class of server software which employs some variant of SQL and is used to manage data shared by application users. Bob, Lee and others use the term 'RDBMS' to refer to an idealized product built in accordance to the principles of the 'relational model'. A DBMSs which deviates from the 'relational model' is not an RDBMS, by their reasoning.
Now, although the relational model is not 'unambiguously' defined we can reason about each of its various flavors. Whether or not a specific view is updateable, for example, is a question that can be decided within any of the various relational models. They are all defined in terms of a set of mathematical axioms and are amenable to mathematical analysis.
That said, it is enormously difficult in practice to figure out when a view is updateable. It is, in fact, enormously hard even to figure out optimal physical access paths for queries. 'R'DBMS products (happy, Bob?) don't even try. Instead they try to find a plan which is the least worst plan, so long as you make a long list of assumptions. But this difficulty has nothing to do with the relational model(s), or the rigour with which they are defined.
Codd's twelve rules are really useful to systems folk because they are criteria by which working systems can be judged. Has anyone developed a system where 'all logically updateable views can be updated'? No. But in many systems many updateable views can be updated.
And if you want to be argumentative, is there *any* system that complies with *any* of the rules? Backups, grep-able logs, and even the presence of functions like SIN() violate the information rules. Or do they? It isn't clear. And lurking in the corner of the transactional model are all kinds of ways in which ambiguity creeps into data access. And the non-subversion rule is subverted all the time.
So: your concept of an 'RDBMS' (and the concept used by Codd when formulating the Twelve Rules) is vague. But Lee & Bob's is not. It would be helpful if we all acknowledged that language itself can be ambiguous instead of assuming both the completeness and superiority of our own knowledge and slagging anyone who uses words differently.
KR
P "que the inquisition" b Received on Sun Aug 31 2003 - 00:43:15 CEST