In 1985, Dr. E. F. Codd published a list of 12 rules to define a relational database system.2 The reason Dr. Codd published the list was his concern that many vendors were marketing products as “relational” even though those products did not meet minimum relational standards
Dr. Codd’s 12 Relational Database Rules
All information in a relational database must be logically represented as column values in rows within tables.
2: Guaranteed Access
Every value in a table is guaranteed to be accessible through a combination of table name, primary key value, and column name
3: Systematic Treatment of Nulls
Nulls must be represented and treated in a systematic way, independent of data type
4: Dynamic Online Catalog Based on the Relational Model
The metadata must be stored and managed as ordinary data, that is, in tables within the database. Such data must be available to authorized users using the standard database relational language.
5: Comprehensive Data Sublanguage
The relational database may support many languages. However, it must support one well-defined, declarative language with support for data definition, view definition, data manipulation (interactive and by program), integrity constraints, authorization, and transaction management (begin, commit, and rollback).
6: View Updating
Any view that is theoretically updatable must be updatable through the system.
7: High-Level Insert, Update, and Delete
The database must support set-level inserts, updates, and deletes.
8: Physical Data Independence
Application programs and ad hoc facilities are logically unaffected when physical access methods or storage structures are changed
9: Logical Data Independence
Application programs and ad hoc facilities are logically unaffected when changes are made to the table structures that preserve the original table values (changing order of columns or inserting columns)
10: Integrity Independence
All relational integrity constraints must be definable in the relational language and stored in the system catalog, not at the application level.
11: Distribution Independence
The end users and application programs are unaware and unaffected by the data location (distributed vs. local databases).
If the system supports low-level access to the data, there must not be a way to bypass the integrity rules of the database.
All preceding rules are based on the notion that in order for a database to be considered relational, it must use its relational facilities exclusively to manage the database