Codd rules:
Rule 1: The information rule a has to be presented to the user should be in the form of table.
Rule 2: Guaranteed Access Rule Whole data should be available or accessible to the user without any ambiguity. The ambiguity can be avoided only through the perfect combination of the table name, primary key, and column name.
Rule 3: Systematic treatment of null values The null values i.e. absence of the values in the table should be treated properly. The table should allow a field to remain empty. This is not applicable to primary keys. Key columns cannot have null values.
Rule 4: Active on-line catalog based on the relational model Fourth rule specifies need of dynamic on-line catalog based on the relational model. There are certain system tables that stores the database definition should be present. The data accessing tools should be used to access the database structure information.
Rule 5: The comprehensive data sub language rule: The system must support at least one relational language that Has a linear syntax Can be used both interactively and within application programs, Supports data definition operations (including view definitions), data manipulation operations (update as well as retrieval), security and integrity constraints, and transaction management operations (begin, commit, and rollback).
Rule 6: The view updating rule: All views those can be updated theoretically, must be updated by the system.
Rule 7: High-level insert, update, and delete: A database must support high-level insertion, updation, and deletion. This must not be limited to a single row, that is, it must also support union, intersection and minus operations to yield sets of data records
Rule 8: Physical data independence: 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.
Rule 9: Logical data independence: Changes to the logical level (tables, columns, rows, and so on) must not require a change to an application based on the structure.
Rule 10: Integrity independence: Integrity constraints must be specified separately from application programs and stored in the catalog. It must be possible to change such constraints as and when appropriate without unnecessarily affecting existing applications.
Rule 11: Distribution independence: The distribution of portions of the database to various locations should be invisible to users of the database. Existing applications should continue to operate successfully: when a distributed version of the DBMS is first introduced; and when existing distributed data are redistributed around the system.
Rule 12: The non subversion rule: If the system provides a low level (record-at-a-time) interface, then that interface cannot be used to subvert the system, for example, bypassing a relational security or integrity constraint