You are on page 1of 4

Dr. E. F.

Codd's 12 rules

for defining a fully relational database


Note that based on these rules there is no fully relational database management system available
today. In particular, rules 6, 9, 10, 11 and 12 are difficult to satisfy.

1. Foundation Rule
A relational database management system must manage its stored data using only its
relational capabilities.
2. Information Rule
All information in the database should be represented in one and only one way - as
values in a table.
3. Guaranteed Access Rule
Each and every datum (atomic value) is guaranteed to be logically accessible by
resorting to a combination of table name, primary key value and column name.
4. Systematic Treatment of Null Values
Null values (distinct from empty character string or a string of blank characters and
distinct from zero or any other number) are supported in the fully relational DBMS for
representing missing information in a systematic way, independent of data type.
5. Dynamic On-line Catalog Based on the Relational Model
The database description is represented at the logical level in the same way as ordinary
data, so authorized users can apply the same relational language to its interrogation as
they apply to regular data.
6. Comprehensive Data Sublanguage Rule
A relational system may support several languages and various modes of terminal use.
However, there must be at least one language whose statements are expressible, per
some well-defined syntax, as character strings and whose ability to support all of the
following is comprehensible:

a. data definition
b. view definition
c. data manipulation (interactive and by program)
d. integrity constraints
e. authorization
f. transaction boundaries (begin, commit, and rollback).

7. View Updating Rule


All views that are theoretically updateable are also updateable by the system.
8. High-level Insert, Update, and Delete
The capability of handling a base relation or a derived relation as a single operand
applies nor only to the retrieval of data but also to the insertion, update, and deletion of
data.
9. Physical Data Independence
Application programs and terminal activities remain logically unimpaired whenever any
changes are made in either storage representation or access methods.
10. Logical Data Independence
Application programs and terminal activities remain logically unimpaired when
information preserving changes of any kind that theoretically permit unimpairment are
made to the base tables.
11. Integrity Independence
Integrity constraints specific to a particular relational database must be definable in the
relational data sublanguage and storable in the catalog, not in the application programs.
12. Distribution Independence
The data manipulation sublanguage of a relational DBMS must enable application
programs and terminal activities to remain logically unimpaired whether and whenever
data are physically centralized or distributed.
13. Nonsubversion Rule
If a relational system has or supports a low-level (single-record-at-a-time) language,
that low-level language cannot be used to subvert or bypass the integrity rules or
constraints expressed in the higher-level (multiple-records-at-a-time) relational
language.

Normalization refers to social processes through which ideas and actions come to be
seen as "normal" and become taken-for-granted or 'natural' in everyday life. In
sociological theory normalization appears in two forms.

First, the concept of normalization is found in the work of Michel Foucault, especially
Discipline and Punish, in the context of his account of disciplinary power. As Foucault
used the term, normalization involved the construction of an idealized norm of conduct –
for example, the way a proper soldier ideally should stand, march, present arms, and so
on, as defined in minute detail – and then rewarding or punishing individuals for
conforming to or deviating from this ideal.[1][2]. In Foucault's account, normalization was
one of an ensemble of tactics for exerting the maximum social control with the minimum
expenditure of force, which Foucault calls "disciplinary power". Disciplinary power
emerged over the course of the 19th century, came to be used extensively in military
barracks, hospitals, asylums, schools, factories, offices, and so on, and hence became a
crucial aspect of social structure in modern societies.
Second, Normalization Process Theory[3] is a middle-range theory used mainly in medical
sociology and science and technology studies to provide a framework for understanding
the social processes by which new ways of thinking, working and organizing become
routinely incorporated in everyday work. Normalization Process Theory has its roots in
empirical studies of technological innovation in health care, and especially in the
evaluation of complex interventions.

The normal forms (abbrev. NF) of relational database theory provide criteria for
determining a table's degree of vulnerability to logical inconsistencies and anomalies. The higher
the normal form applicable to a table, the less vulnerable it is to inconsistencies and anomalies.
Each table has a "highest normal form" (HNF): by definition, a table always meets the
requirements of its HNF and of all normal forms lower than its HNF; also by definition, a table
fails to meet the requirements of any normal form higher than its HNF.

The normal forms are applicable to individual tables; to say that an entire database is in normal
form n is to say that all of its tables are in normal form n.

Newcomers to database design sometimes suppose that normalization proceeds in an iterative


fashion, i.e. a 1NF design is first normalized to 2NF, then to 3NF, and so on. This is not an
accurate description of how normalization typically works. A sensibly designed table is likely to
be in 3NF on the first attempt; furthermore, if it is 3NF, it is overwhelmingly likely to have an
HNF of 5NF. Achieving the "higher" normal forms (above 3NF) does not usually require an
extra expenditure of effort on the part of the designer, because 3NF tables usually need no
modification to meet the requirements of these higher normal forms.

First normal form (1NF or Minimal Form) is a normal form used in database normalization. A
relational database table that adheres to 1NF is one that meets a certain minimum set of criteria.
These criteria are basically concerned with ensuring that the table is a faithful representation of a
relation[1] and that it is free of repeating groups.

Second normal form (2NF) is a normal form used in database normalization. 2NF was
originally defined by E.F. Codd in 1971.[1] A table that is in first normal form (1NF) must meet
additional criteria if it is to qualify for second normal form. Specifically: a 1NF table is in 2NF if
and only if, given any candidate key K and any attribute A that is not a constituent of a candidate
key, A depends upon the whole of K rather than just a part of it.

Third normal form (3NF) is a normal form used in database normalization. 3NF was originally
defined by E.F. Codd in 1971.[1] Codd's definition states that a table is in 3NF if and only if both
of the following conditions hold:

Boyce-Codd normal form (or BCNF or 3.5NF) is a normal form used in database
normalization. It is a slightly stronger version of the third normal form (3NF). A table is in
Boyce-Codd normal form if and only if for every one of its nontrivial dependencies X → Y, X is
a superkey—that is, X is either a candidate key or a superset thereof.

You might also like