Database Normalization
  • is the process of structuring a database, usually a relational database, in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity

Database Normal Forms

The normal forms (from least normalized to most normalized) are:

Requirement

UNF
(1970)

1NF
(1970)

2NF
(1971)

3NF
(1971)

EKNF
(1982)

BCNF
(1974)

4NF
(1977)

ETNF
(2012)

5NF
(1979)

DKNF
(1981)

6NF
(2003)

Primary key (no duplicate tuples)

MAYBE

Atomic columns (cells cannot have tables as values)

Every non-trivial functional dependency either does not begin with a proper subset of a candidate key or ends with a prime attribute (no partial functional dependencies of non-prime attributes on candidate keys)

Every non-trivial functional dependency either begins with a superkey or ends with a prime attribute (no transitive functional dependencies of non-prime attributes on candidate keys)

Every non-trivial functional dependency either begins with a superkey or ends with an elementary prime attribute

N/A

Every non-trivial functional dependency begins with a superkey

N/A

Every non-trivial multivalued dependency begins with a superkey

N/A

Every join dependency has a superkey component

N/A

Every join dependency has only superkey components

N/A

Every constraint is a consequence of domain constraints and key constraints

Every join dependency is trivial

Resources