Codd's twelve rules are a set of thirteen rules (numbered zero to twelve) proposed by Edgar F. Codd, a pioneer of the relational model for databases, designed to define what is required from a database management system in order for it to be considered relational, i.e., a relational database management system (RDBMS). They are sometimes jokingly referred to as "Codd's Twelve Commandments".
Codd produced these rules as part of a personal campaign to prevent the vision of the original relational database from being diluted, as database vendors scrambled in the early 1980s to repackage existing products with a relational veneer. Rule 12 was particularly designed to counter such a positioning.
Even if such repackaged non-relational products eventually gave way to SQL DBMSs, no popular relational DBMSs could be considered fully relational, be it by Codd’s twelve rules or by the more formal definitions in his papers and books. Only less known DBMSs --most of them restricted to academic usage-- strive to comply. The only commercial example, as of December 2010[update], is Dataphor. Some rules are deemed controversial, especially rule 3, because of the debate on three-valued logic.
Rule 0: The foundation rule:
Rule 1: The information rule:
Rule 2: The guaranteed access rule:
Rule 3: Systematic treatment of null values:
Rule 4: Dynamic online catalog based on the relational model:
Rule 5: The comprehensive data sublanguage rule:
Rule 6: The view updating rule:
Rule 7: High-level insert, update, and delete:
Rule 8: Physical data independence: