Codd's 12 Rules

Dr. E. F. Codd's Twelve Rules for the Relational Model

In 1985, Dr. E. F. Codd first published this list of rules. Dr. E. F. Codd has introduced 12 rules for the relational model for databases popularly known as Codd's rules. The rules are as follows:

Rule 0: Foundation Rule :
This rule states that all next rules are based on the idea which states that, for database to be considered relational, it must use its relational facilities entirely to manage the database.

Rule 1: Information Rule :
All the information in the database is to be represented in just one way, ie, by value in tables.

Rule 2: Guaranteed Access Rule :
Each item of data in RDBMS must be accessible with no ambiguity by resorting to a combination of table name, primary key values and column name.

Rule 3: Systematic Treatment of Null Values Rule :
Null values (distinct from an empty character string or a string of blank character and distinct from zero or any other number) are supported in a fully relational DBMS for representing missing information in a systematic way, independent of data type.

Rule 4: Dynamic On-line Catalog Based on the Relational Model Rule :
The database description is represented at the logical level in the same way as ordinary data, so authorized users can apply the same relational language to its interrogation as they apply to regular data.

Rule 5: Comprehensive Data Sublanguage Rule :
A relational system may support several languages and various modes of terminal use. However, there must be at least one language whose statements are expressible. per some well-defined syntax, as character strings and whose ability to support all of the following is comprehensible: data definition, view definition, data manipulation (interactive and by program), integrity constraints, authorization, transaction boundaries (begin, commit, rollback).

Rule 6: View Updating Rule :
All views of the data which are theoretically updateable must be updateable by the system.

Rule 7: High-Level Insert, Update, and Delete Rule :
The system is able to insert, update and delete operations fully. It can also execute the operations on multiple rows simultaneously.

Rule 8: Physical Data Independence Rule :
Application programs and terminal activities remain logically unimpaired whenever any changes are made in either storage representation or access methods.

Rule 9: Logical Data Independence Rule :
Application programs and terminal activities remain logically unimpaired when information preserving changes of any kind that theoretically permit unimpairment are made to the base tables.

Rule 10: Integrity Independence Rule :
Integrity constraints specific to a particular relational database must be definable in the relational data sublanguage and storable in the catalog, not in the application programs.

Rule 11: Distribution Independence Rule :
The RDBMS has distribution independence. It implies that users should not have to be aware of whether a database is distributed.

Rule 12: Nonsubversion Rule:
If a relational system has or supports a low-level (single-record-at-a-time) language. that low-level language cannot be used to bypass the integrity rules or constraints expressed in the higher-level (multiple-records-at-a-time) relational language.