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!
==Cristopher J. Date's definition of 1NF== {{Importance section|date=May 2025}} According to [[Christopher J. Date]]'s definition, a table is in first normal form if and only if it is "[[isomorphism|isomorphic]] to some relation", which means, specifically, that it satisfies the following five conditions:{{r|Date 2007}}{{rp|pages=127–128}} # There is no specific top-to-bottom ordering of the rows. # There is no specific left-to-right ordering of the columns. # There are no duplicate rows. # Every field (or intersection of a row and a column) contains exactly one value from the applicable domain and nothing else. # All columns are regular (i.e., rows have no hidden components such as row IDs, object IDs, or hidden timestamps). Violation of any of these conditions would mean that the table is not strictly relational, and therefore that it is not in first normal form. This definition of 1NF permits relation-valued attributes (tables within tables), which Date argues are useful in rare cases.{{r|Date 2007}}{{rp|pages=121–126}} Examples of tables (or [[view (database)|views]]) that would not meet this definition of first normal form are: *A table that lacks a [[unique key]] [[constraint (database)|constraint]]. Such a table would be able to accommodate duplicate rows, in violation of condition 3. *A view whose definition mandates that results be returned in a particular order, so that the row-ordering is an intrinsic and meaningful aspect of the view, in violation of condition 1. The [[tuple]]s in true relations are not ordered with respect to each other (such views cannot be created using [[SQL]] that conforms to the [[SQL:2003]] standard). *A table with at least one [[Null (SQL)|nullable]] attribute. A nullable attribute would be in violation of condition 4, which requires every column to contain exactly one value from its column's domain. This aspect of condition 4 is controversial; it marks an important departure from Codd's later vision of the [[relational model]],<ref>{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |year=2009 |title=SQL and Relational Theory |publisher=O'Reilly |chapter=Appendix A.2 |quote=Codd first defined the relational model in 1969 and didn't introduce nulls until 1979}}</ref> which made explicit provision for nulls.<ref>{{cite magazine |last=Date |first=C. J. |author-link=Christopher J. Date |date=14 October 1985 |title=Is Your DBMS Really Relational? |magazine=Computerworld |quote=Null values ... [must be] supported in a fully relational DBMS for representing missing information and inapplicable information in a systematic way, independent of data type.}} (the third of Codd's 12 rules)</ref>
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)