Codd Rules
Codd Rules
All information in the database is to be represented in one and only one way,
namely by values in column positions within rows of tables.
The DBMS must allow each field to remain null (or empty). Specifically, it must
support a representation of "missing information and inapplicable information"
that is systematic, distinct from all regular values (for example, "distinct from
zero or any other number", in the case of numeric values), and independent of
data type. It is also implied that such representations must be manipulated by the
DBMS in a systematic way.
The system must support an online, inline, relational catalog that is accessible to
authorized users by means of their regular query language. That is, users must be
able to access the database's structure (catalog) using the same query language
that they use to access the database's data.
All views that are theoretically updatable must be updatable by the system.
The system must support set-at-a-time insert, update, and delete operators. This
means that data can be retrieved from a relational database in sets constructed of
data from multiple rows and/or multiple tables. This rule states that insert, update,
and delete operations should be supported for any retrievable set rather than just
for a single row in a single table.
Changes to the physical level (how the data is stored, whether in arrays or linked
lists etc.) must not require a change to an application based on the structure.
Changes to the logical level (tables, columns, rows, and so on) must not require a
change to an application based on the structure. Logical data independence is
more difficult to achieve than physical data independence.