The following is a complete list of Codd’s 12 Criteria, which serve as a guideline to the rules for database relationships:
- All information in a relational database is represented explicitly at the logical level in exactly one way: by values in tables.
- Each and every datum (individual value) in a relational database is guaranteed to be logically accessible by resorting to a combination of table name, primary-key value, and column name.
- Null values (distinct from the empty character string or a string of blank characters or any other number) represent missing information in the RDBMS in a systematic way, independent of data type.
- The database description is represented at the logical level in the same way as ordinary data, so that authorized users can apply the same relational language to its interrogation as they apply to regular data.
- A relational system may support several languages and various modes of terminal use (for example, fill-in-the-blanks mode). However, there must be at least one language whose statements are expressible, per some well-defined syntax, as character strings and that is comprehensive in supporting all of the following items: