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. 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.
The main normal forms are summarized below.
Normal form | Defined by | In | Brief definition | |
---|---|---|---|---|
1NF | First normal form | Two versions: E.F. Codd (1970), C.J. Date (2003) | 1970 and 2003 | Table faithfully represents a relation and has no repeating groups |
2NF | Second normal form | E.F. Codd | 1971 | No non-prime attribute in the table is functionally dependent on a proper subset of any candidate key |
3NF | Third normal form | Two versions: E.F. Codd (1971), C. Zaniolo (1982) | 1971 and 1982 | Every non-prime attribute is non-transitively dependent on every candidate key in the table. The attributes that do not contribute to the description of the primary key are removed from the table. In other words, no transitive dependency is allowed. |
EKNF | Elementary Key Normal Form | C. Zaniolo | 1982 | Every non-trivial functional dependency in the table is either the dependency of an elementary key attribute or a dependency on a superkey |
BCNF | Boyce–Codd normal form | Raymond F. Boyce and E.F. Codd | 1974 | Every non-trivial functional dependency in the table is a dependency on a superkey |
4NF | Fourth normal form | Ronald Fagin | 1977 | Every non-trivial multivalued dependency in the table is a dependency on a superkey |
5NF | Fifth normal form | Ronald Fagin | 1979 | Every non-trivial join dependency in the table is implied by the superkeys of the table |
DKNF | Domain/key normal form | Ronald Fagin | 1981 | Every constraint on the table is a logical consequence of the table's domain constraints and key constraints |
6NF | Sixth normal form | C.J. Date, Hugh Darwen, and Nikos Lorentzos | 2002 | Table features no non-trivial join dependencies at all (with reference to generalized join operator) |
Read more about this topic: Database Normalization
Famous quotes containing the words normal and/or forms:
“As blacks, we need not be afraid that encouraging moral development, a conscience and guilt will prevent social action. Black children without the ability to feel a normal amount of guilt will victimize their parents, relatives and community first. They are unlikely to be involved in social action to improve the black community. Their self-centered personalities will cause them to look out for themselves without concern for others, black or white.”
—James P. Comer (20th century)
“... it seems to have been my luck to stumble into various forms of progress, to which I have been of the smallest possible use; yet for whose sake I have suffered the discomfort attending all action in moral improvements, without the happiness of knowing that this was clearly quite worth while.”
—Elizabeth Stuart Phelps (18441911)