There are 12 codd's ruler which was given by Dr Edgar F. Codd, after his extensive research on the Relational Model of database systems. According to him, a database must obey a true relational database. These rules can be applied on any database system that manages stored data using only its relational capabilities. This is a foundation rule, which acts as a base for all the other rules. they are:
- Information rule: The data store in the database should be in the table format
- Guaranteed access rule: Every single data store should be a combination of table name or primary key or attribute name
- Systematic treatment of Null values: The NULL values in a database must be a systematic. Because a NULL can be treated as - data is missing or data is not known, or data is not applicable.
- Relational online catalog: This describe the entire database which must be stored in an online catalog, known as data dictionary, which can only be accessed by authorized users.
- Comprehensive data sublanguage: A database which we can only be accessed using a language having linear syntax that supports major operation into data like the definition, data manipulation, and transaction management.
- View updating rule: Viewers of the database, which can theoretically be updated, must also be updatable by the system.
- High-level insert, update and delete: A database must support high-level insertion, updation, and deletion. This must not be limited only to a single row, it must also support union, intersection and other operations to make the sets of data records.
- Physical data independence: This defines that the data stored in a database must be independent of the applications that access the database. Any change in the physical structure of a database must not show any changes on how the data is being accessed.
- Logical data independence: This defines that logical data in a database must be independent of its userís view (application). Any change in logical data must not affect the applications using it. Which is one of the most difficult rule to apply.
- Integrity independence: This defines that the database must be independent of the application that uses it. All its integrity constraints can be independently modified without the need of any change in the application. This makes a database independent of the front-end and its interface.
- Distribution independence: This defines that the end-user must not be able to see that how the data is distributed over various locations. Users should always get the impression that the data is located at one site only. This rule has been considered as the foundation of distributed database systems.
- Nonsubversion rule: This defines if a system has an interface that provides access to low-level records, then the interface must not be able to convert the system and bypass security and integrity constraints.