Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Third normal form
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Definition of third normal form== The third normal form (3NF) is a [[Database normalization#Normal forms|normal form]] used in [[database normalization]]. 3NF was originally defined by [[E. F. Codd]] in 1971.<ref name="Codd">Codd, E. F. "Further Normalization of the Data Base Relational Model". (Presented at Courant Computer Science Symposia Series 6, "Data Base Systems", New York City, May 24–25, 1971.) IBM Research Report RJ909 (August 31, 1971). Republished in Randall J. Rustin (ed.), ''Data Base Systems: Courant Computer Science Symposia Series 6''. Prentice-Hall, 1972.</ref> Codd's definition states that a table is in 3NF [[if and only if]] both of the following conditions hold: * The [[Relation (database)|relation]] R (table) is in [[second normal form]] (2NF). * Every non-prime attribute of R is non-transitively dependent on each [[candidate key]]. A ''non-prime attribute'' of R is an attribute that does not belong to any [[candidate key]] of R.<ref name="Codd2">Codd, p. 43.</ref> Codd defines a [[transitive dependency]] of an attribute set ''X'' on an attribute set ''Z'' as a [[functional dependency]] chain ''X'' → ''Y'' → ''Z'' that must be satisfied for some attribute set ''Y'', where it is not the case that ''Y'' → ''X'', and all three sets must be disjoint.<ref>Codd, p. 45–46.</ref> A 3NF definition that is equivalent to Codd's, but expressed differently, was given by Carlo Zaniolo in 1982. This definition states that a table is in 3NF if and only if for each of its functional dependencies ''X'' → ''Y'', at least one of the following conditions holds:<ref name="Zaniolo">Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata". ''ACM Transactions on Database Systems'' 7(3), September 1982.</ref><ref>[[Abraham Silberschatz]], [[Henry F. Korth]], S. Sudarshan, ''[http://www.db-book.com/ Database System Concepts]'' (5th edition), p. 276–277.</ref>{{Request quotation|date=November 2010}} * ''X'' contains ''Y'' (that is, ''Y'' is a subset of ''X'', meaning ''X'' → ''Y'' is a trivial functional dependency), * ''X'' is a [[superkey]], * every element of ''Y'' \ ''X'', the [[Complement (set theory)#Relative complement|set difference]] between Y and X, is a ''prime attribute'' (i.e., each attribute in ''Y'' \ ''X'' is contained in some [[candidate key]]). To rephrase Zaniolo's definition more simply, the relation is in 3NF if and only if for every non-trivial functional dependency X → Y, X is a superkey or ''Y'' \ ''X'' consists of prime attributes. Zaniolo's definition gives a clear sense of the difference between 3NF and the more stringent [[Boyce–Codd normal form]] (BCNF). BCNF simply eliminates the third alternative ("Every element of ''Y'' \ ''X'', the set difference between ''Y'' and ''X'', is a prime attribute.").
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)