Dr. E. F. Codd is an IBM researcher who developed the concept of RDBMS in 1970. Dr. Codd published 12 rules that defines RDBMS in 1985. Those 12 rules are now considered as a standard for creating RDBMS.
Following are the Codd rules.
- The Information Rule
- Guaranteed Access Rule
- Systematic Treatment of Null Values
- Dynamic On-Line Catalog based on Relational Model
- Comprehensive Data Sub-language Rule
- View Updating Rule
- High-level Insert, Update and Delete
- Physical Data Independence
- Logical Data Independence
- Integrity Independence
- Distribution Independence
- Non subversion Rule
The Information Rule : All data should be presented in table form.
Guaranteed Access Rule : There must be no ambiguity, all data must be accessible unambiguously. This can be achieve through a combinations of tables, primary key and attributes(column name).
Systematic Treatment of Null Values : A field is allowed to remain empty i.e. NULL which not represent any empty string or zero as a integer value. But primary key must be not NULL. Most database system supports the implementation of not-null field constraint.
Dynamic On-Line Catalog based on Relational Model : A relational database must provide access to its structure through the same system (tool) that are use to access data. This a achieve by storing structure definition within special system table.
Comprehensive Data Sub-language Rule : Database must support at-least one clearly defined language which includes following functionalities
- Data definition
- Data manipulation
- Data integrity
- Data transaction control
Most of the software follows Standard SQL.
View Updating Rule : Data can be represented in different logical combinations i.e. views. View must have the support for all data manipulation that has direct access to a table available.
High-level Insert, Update and Delete : Data can be retrieved from a relational database in set constructed of data from multiple rows and/or multiple tables. This rules stated that insert, update and delete operations should be supported for any retrievable set rather than just for a single tuple in a single table.
Physical Data Independence : User don’t have any knowledge about how data is stored in physical form we can say that user is isolated from physical storage method. Change can be made in storing method or underlying architecture but it must not affect the user while accessing data from database.
Logical Data Independence : When there is any change in logical structure (Table’s structure) of database it must not effect how data is been viewed. There should be no change during viewing of data.
Integrity Independence : All database languages must have support for constraints on users input which supports data integrity.
Distribution Independence : User should be unaware of whether the database is distributed.
Non subversion Rule : There should be no other way to modify database structure other then database language which it supports.