Re: does a table always need a PK?

From: Paul G. Brown <paul_geoffrey_brown_at_yahoo.com>
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

Original text of this message