Normalization and Codd's 12 Rules
Codd Slogan for Normalization:
The key, the whole key, and nothing but the key, so help me Codd.
- “The key” : Tables may not contain repeating groups, which prevent a table from having a primary key. (1NF)
- “the whole key”: Every attribute must be functionally dependent on the entire primary key. (2NF)
- “and nothing but the key,” : There may not be any transitive dependencies, which involve a non-key field.(3NF)
- “ so help me, Codd.” : The theorist who gave us these rules.
Codd produced these rules as part of a personal campaign to prevent his vision of the relational database being destroyed, as database vendors scrambled in the early 1980s to repackage existing products with a relational overlay.
Rule 12 was particularly designed to counter such a positioning. Even if such re-packaged non-relational products eventually gave way to SQL DBMS, no popular relational database management systems are actually relational, be it by Codd's twelve rules or by the more formal definitions in his papers, in his books by its coworkers and successors, Christopher J. Date, David McGoveran and Fabian Pascal. Only less known DBMSs like Sybase strive to comply .
The only commercial example, as of December 2010, is Dataphor. Some rules are controversial, especially rule three, because of the debate on three-valued logic.
In logic, a three-valued logic (also trinary logic, trivalent, ternary, or trilean, sometimes abbreviated 3VL) is any of several many-valued logic systems in which there are three truth values indicating true, false and some indeterminate third value.
This is contrasted with the more commonly known bivalent logics (such as classical sentential or Boolean logic) which provide only for true and false. Conceptual form and basic ideas were initially created by Jan Lukasiewicz and C. I. Lewis.
These were then re-formulated by Grigore Moisil in an axiomatic algebraic form, and also extended to n-valued logics in 1945.