Fourth normal form

Fourth normal form

Fourth normal form (4NF) is a normal form used in database normalization. Introduced by Ronald Fagin in 1977, 4NF is the next level of normalization after Boyce-Codd normal form (BCNF). Whereas the second, third, and Boyce-Codd normal forms are concerned with functional dependencies, 4NF is concerned with a more general type of dependency known as a multivalued dependency. A table is in 4NF if and only if, for every one of its non-trivial multivalued dependencies "X →→ Y", "X" is a superkey—that is, "X" is either a candidate key or a superset thereof."A relation schema R* is in fourth normal form (4NF) if, whenever a nontrivial multivalued dependency X →→ Y holds for R*, then so does the functional dependency X → A for every column name A of R*. Intuitively all dependencies are the result of keys." cite journal|first=Ronald|last=Fagin|title=Multivalued Dependencies and a New Normal Form for Relational Databases|journal=ACM Transactions on Database Systems|volume=2|issue=1|month=September|year=1977|pages=267|url=|doi=10.1145/320557.320571]

Multivalued dependencies

If the column headings in a relational database table are divided into three disjoint groupings "X", "Y", and "Z", then, in the context of a particular row, we can refer to the data beneath each group of headings as "x", "y", and "z" respectively. A multivalued dependency "X" →→ "Y" signifies that if we choose any "x" actually occurring in the table (call this choice "xc"), and compile a list of all the "xcyz" combinations that occur in the table, we will find that "xc" is associated with the same "y" entries regardless of z.

A trivial multivalued dependency "X" →→ "Y" is one in which "Y" consists of all columns not belonging to "X". That is, a subset of attributes in a table has a trivial multivalued dependency on the remaining subset of attributes.

A functional dependency is a special case of multivalued dependency. In a functional dependency "X" → "Y", every "x" determines "exactly one y", never more than one.


Consider the following example:

In contrast, if the pizza varieties offered by a restaurant sometimes did legitimately vary from one delivery area to another, the original three-column table would satisfy 4NF.

Ronald Fagin demonstratedFagin, 268] that it is always possible to achieve 4NF. Rissanen's theorem is also applicable on multivalued dependencies.

4NF in practice

A 1992 paper by Margaret S. Wu notes that the teaching of database normalization typically stops short of 4NF, perhaps because of a belief that tables violating 4NF (but meeting all lower normal forms) are rarely encountered in business applications. This belief may not be accurate, however. Wu reports that in a study of forty organizational databases, over 20% contained one or more tables that violated 4NF while meeting all lower normal forms.cite journal|first=Margaret S.|last=Wu|title=The Practical Need for Fourth Normal Form|journal=ACM SIGCSE Bulletin|volume=24|issue=1|month=March|year=1992|pages=19–23|doi=10.1145/135250.134515]


ee also

*Attribute-value system
*Third normal form
*Fifth normal form

Further reading

* [ Rules Of Data Normalization]
* Date, C. J. (1999), " [,1144,0321197844,00.html An Introduction to Database Systems] " (8th ed.). Addison-Wesley Longman. ISBN 0-321-19784-4.
* Kent, W. (1983) " [ A Simple Guide to Five Normal Forms in Relational Database Theory] ", Communications of the ACM, vol. 26, pp. 120-125
* Date, C.J., & Darwen, H., & Pascal, F. " [ Database Debunkings] "
* [ Advanced Normalization] by ITS, University of Texas.
* [ Free PDF poster available] by Marc Rettig

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Fourth Normal Form —   [engl.], in einer relationalen Datenbank die vierte Normalform …   Universal-Lexikon

  • fourth normal form — noun A stage in the normalization of a relational database in which a database is in Boyce Codd normal form and all multi valued dependencies are functional dependencies. See Also: first normal form, second normal form, third normal form …   Wiktionary

  • fifth normal form — noun A stage in the normalization of a relational database in which a database is in fourth normal form and every join dependency is implied by the candidate keys. See Also: first normal form …   Wiktionary

  • Third normal form — The third normal form (3NF) is a normal form used in database normalization. 3NF was originally defined by E.F. CoddCodd, E.F. Further Normalization of the Data Base Relational Model. (Presented at Courant Computer Science Symposia Series 6, Data …   Wikipedia

  • second normal form — noun A stage in the normalization of a relational database in which it is in first normal form and every non key attribute is dependent upon the entire primary key. See Also: first normal form …   Wiktionary

  • third normal form — noun A stage in the normalization of a relational database in which a database is in second normal form and all non key attributes are mutually independent (no transient dependencies.) See Also …   Wiktionary

  • first normal form — noun A stage in the normalization of a relational database in which repeating groups and attributes have been eliminated by putting each into a separate table connected by a primary key foreign key relationship. See Also: second normal form …   Wiktionary

  • 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… …   Wikipedia

  • Jordan normal form — In linear algebra, a Jordan normal form (often called Jordan canonical form)[1] of a linear operator on a finite dimensional vector space is an upper triangular matrix of a particular form called Jordan matrix, representing the operator on some… …   Wikipedia

  • Domain/key normal form — (DKNF) is a normal form used in database normalization which requires that the database contains no constraints other than domain constraints and key constraints. A domain constraint specifies the permissible values for a given attribute, while a …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”