Edgar F. Codd proposed the Relational Model in 1970 and later introduced a set of principles known as Codd’s Rules. These rules define the standards a database system should follow to be considered a true Relational Database Management System (RDBMS).
Codd’s Rules act as theoretical guidelines for relational databases and focus on:
data consistency
integrity
independence
relational behavior
Although they are popularly called Codd’s 12 Rules, Codd actually numbered them from Rule 0 to Rule 12, making a total of 13 rules.
Modern relational database systems such as:
MySQL
PostgreSQL
Oracle Database
Microsoft SQL Server
are heavily inspired by these principles.
Rule 0: Foundation Rule
A database system can be considered relational only if it manages the entire database using relational capabilities.
This means:
data must be stored as relations (tables)
operations must follow relational concepts
users interact through relational methods
If a system mixes non-relational behavior as its core mechanism, it cannot be called a true RDBMS according to Codd.
Rule 1: Information Rule
All information in the database must be represented only as values in tables.
This means:
data is stored in rows and columns
there are no hidden pointers or hidden storage mechanisms visible to users
every piece of information appears as table values
Example:
STUDENT Table
Roll_No | Name | Branch
------------------------
101 | Aman | CSE
102 | Riya | ECE
All data exists only in relational form.
Rule 2: Guaranteed Access Rule
Every individual data value must be accessible using:
table name
primary key value
column name
This guarantees that every data item can be uniquely identified and retrieved.
Example:
Table: STUDENT
Primary Key: Roll_No = 101
Column: Name
This combination should uniquely return:
Aman
Rule 3: Systematic Treatment of NULL Values
The DBMS must support NULL values properly and consistently.
NULL represents:
missing data
unknown data
not applicable values
Example:
EMPLOYEE Table
Emp_ID | Name | Phone
----------------------
1 | Aman | NULL
NULL does not mean:
zero
blank space
false
The DBMS should handle NULL uniformly in:
comparisons
joins
queries
calculations
Rule 4: Active Online Catalog
Metadata must itself be stored as relational tables.
Metadata includes:
table definitions
column information
constraints
indexes
user permissions
Users should be able to query metadata using the same relational language.
Example SQL:
SHOW TABLES;
or
DESCRIBE STUDENT;
The system catalog behaves like regular relational data.
Rule 5: Comprehensive Data Sub-Language Rule
The system must support at least one complete relational language capable of handling:
DDL (Data Definition Language)
DML (Data Manipulation Language)
view definitions
integrity constraints
authorization
transaction management
In modern systems, this language is usually SQL.
Example:
CREATE TABLE STUDENT (
Roll_No INT PRIMARY KEY,
Name VARCHAR(50)
);
Rule 6: View Updating Rule
All views that are theoretically updatable should be updatable by the DBMS.
A view is a virtual table created from base tables.
Example:
CREATE VIEW CSE_STUDENTS AS
SELECT Roll_No, Name
FROM STUDENT
WHERE Branch='CSE';
If updating the view is logically possible, the DBMS should allow it.
Rule 7: High-Level Insert, Update, and Delete
The DBMS must support set-level operations instead of only record-by-record operations.
This means:
multiple rows can be modified together
bulk operations should be possible
Example:
UPDATE EMPLOYEE
SET Salary = Salary + 5000
WHERE Dept='IT';
The operation updates many rows at once.
Rule 8: Physical Data Independence
Changes in physical storage should not affect application programs.
Examples of physical changes:
changing indexing methods
changing file organization
moving storage locations
Applications should continue working without modification.
This allows DBAs to optimize storage internally without changing user programs.
Rule 9: Logical Data Independence
Changes in logical structure should not affect existing applications.
Examples:
adding new columns
creating new tables
splitting tables internally
Applications using older structures should continue functioning whenever possible.
Logical independence is harder to achieve than physical independence.
Rule 10: Integrity Independence
Integrity constraints must be stored inside the DBMS catalog rather than hardcoded inside applications.
Examples:
PRIMARY KEY constraints
FOREIGN KEY constraints
UNIQUE constraints
CHECK conditions
Example:
CREATE TABLE STUDENT (
Roll_No INT PRIMARY KEY,
CGPA FLOAT CHECK (CGPA <= 10)
);
The DBMS itself enforces integrity rules.
Rule 11: Distribution Independence
Users should not need to know whether the database is:
centralized
distributed
spread across multiple servers
The system should behave the same way regardless of data distribution.
This rule supports distributed database systems.
Rule 12: Non-Subversion Rule
If low-level access methods exist, they must not bypass relational integrity rules.
This prevents:
unauthorized modifications
corruption of constraints
invalid direct manipulation
All operations must still respect:
keys
constraints
integrity rules
Even internal access methods should not violate relational principles.
Why Codd’s Rules Are Important
Codd’s Rules are important because they:
define characteristics of a true relational system
promote data independence
improve consistency and integrity
provide a theoretical foundation for RDBMS design
They helped shape modern database systems and influenced SQL-based relational technology.
Practical Importance
Although no commercial DBMS fully satisfies every rule perfectly, most modern RDBMS systems follow these principles closely.
Examples:
MySQL
PostgreSQL
Oracle Database
Microsoft SQL Server
These systems implement:
relational tables
SQL
constraints
transactions
views
indexing
data independence concepts
Academic Importance
Codd’s Rules are extremely important in:
university DBMS courses
database theory
competitive exams
interview preparation
They are frequently asked in:
B.Tech exams
MCA exams
GATE
UGC NET
placement interviews
Summary
Codd’s Rules define the theoretical principles of a true Relational Database Management System. Introduced by Edgar F. Codd, these rules focus on relational storage, integrity, data independence, consistency, and standardized access. They provide the foundation for modern RDBMS systems and remain highly important from both academic and practical database-design perspectives.