• Tom.Thomson (7/25/2010)


    Note that the guaranteed-access feature represents an associative-addressing scheme that is unique to the relational model. It does not depend at all on the usual computer-oriented addressing. Moreover, like the original relational model, it does not require any associative-addressing hardware, even though the need for such hardware was once frequently claimed by opponents of the relational model.

    The primary-key concept, however, is an essential part of Feature RM-1. Feature RS-8 requires each base relation to have a declared primary key (see Chapter 2). Feature RM-1 is one more reason why the primary key of each base relation should be supported by every relational DBMS, and why its declaration by the DBA should be mandatory for every base relation.

    Guaranteed access is surely also important for derived relations as for base relations. Yet by the time Codd introduced the 13 rules he abandoned the idea of relational completeness so that primary keys are no longer required for views. Instead views can have what he called "weak keys" (tuples are "unique" but are identifiable only by nulls in place of values).

    This seems like a horrible complication in my view because it means the "relational" database engine then has to deal with two types of data structure - one of which doesn't look like a relation at all. In consequence, different types of storage maybe have to be used for derived relations and base relations unless some compromise between the two can be found. It may also be that some types of query rewrite are no longer possible or are made more difficult because base and derived relations are no longer interchangeable.

    In this respect and others the 13 rules depart from the simplicty and consistency of Codd's model as he originally described it - to its detriment in my opinion.