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
First 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!
== Background == First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper "A relational model of data for large shared data banks",{{r|Codd 1970}} although initially it was simply referred to as "normalization" or "normal form". It was renamed to "first normal form" when Codd introduced additional normal forms in his paper "Further Normalization of the Data Base Relational Model" in 1971.<ref>Codd, E. F. (1971). "Further Normalization of the Data Base Relational Model". ''Data Base Systems. Courant Computer Science Symposium 6'' edited by Rustin, R.</ref> Codd distinguishes between "atomic" and "compound" data. Atomic (or "nondecomposable") data includes basic types such as numbers and [[String (computer science)|strings]] β broadly speaking, it "''cannot'' be decomposed into smaller pieces by the [[DBMS]] (excluding certain special functions)". Compound data is made up of structures such as [[Relation (database)|relations]] (or ''[[Table (database)|tables]]'', in [[SQL]]) which contain several pieces of atomic data and thus "''can'' be decomposed by the DBMS".<ref name="Codd 1990">{{Cite book |last=Codd |first=E. F. |title=The relational model for database management: version 2 |publisher=[[Addison-Wesley]] |isbn=978-0-201-14192-4 |publication-date=1 January 1990}}</ref>{{rp|page=6}} In a relation, each attribute (or [[Column (database)|''column'']]) has a set of allowed values known as its [[Attribute domain|domain]] (e.g., a "Price" attribute's domain may be the set of non-negative numbers with up to 2 fractional digits). Each tuple (or [[Row (database)|''row'']]) in the relation contains one value per attribute, and each must be an element in that attribute's domain. Codd distinguishes attributes which have "simple domains" containing only atomic data from attributes with "nonsimple domains" containing at least some forms of compound data.{{r|Codd 1970}}{{rp|pages=380}} Nonsimple domains introduce a degree of structural complexity which can be difficult to navigate, to query and to update β for instance, it will be time-consuming to operate across several [[Nested table|nested relations]] (that is, tables containing further tables), which can be found in some [[non-relational database]]s. First normal form therefore requires all attribute domains to be ''simple'' domains, such that the data in each field is atomic and no relation has relation-valued attributes. Precisely, Codd states that, in the relational model, "values in the domains on which each relation is defined are required to be atomic with respect to the DBMS."<ref name="Codd 1990" />{{rp|page=6}} Normalization to 1NF is thus a process of eliminating nonsimple domains from all relations.
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)