<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=First_normal_form</id>
	<title>First normal form - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=First_normal_form"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;action=history"/>
	<updated>2026-05-06T00:20:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=3448790&amp;oldid=prev</id>
		<title>imported&gt;Alexanderino: clean up, typo(s) fixed: For example → For example,</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=3448790&amp;oldid=prev"/>
		<updated>2025-11-08T21:14:05Z</updated>

		<summary type="html">&lt;p&gt;clean up, &lt;a href=&quot;/wiki143/index.php?title=WP:AWB/T&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:AWB/T (page does not exist)&quot;&gt;typo(s) fixed&lt;/a&gt;: For example → For example,&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:14, 8 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{short description|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Concept in &lt;/del&gt;database normalization}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{short description|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Level of &lt;/ins&gt;database normalization}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{citation style|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{citation style|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;First normal form&#039;&#039;&#039; (&#039;&#039;&#039;1NF&#039;&#039;&#039;) is the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;simplest form &lt;/del&gt;of [[database normalization]] defined by English computer scientist [[Edgar F. Codd]], the inventor of the [[relational database]]. A [[Relation (database)|relation]] (or a [[Table (database)|&#039;&#039;table&#039;&#039;]], in [[SQL]]) can be said to be in first normal form if each field is &#039;&#039;atomic&#039;&#039;, containing a single value rather than a set of values or a [[nested table]]. In other words, a relation complies with first normal form if no [[attribute domain]] (the set of values allowed in a given column) has relations as elements.&amp;lt;ref&amp;gt;Codd, E. F. (1972). &quot;Further Normalization of the Data Base Relational Model&quot;. p. 27&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;First normal form&#039;&#039;&#039; (&#039;&#039;&#039;1NF&#039;&#039;&#039;) is the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;most basic level &lt;/ins&gt;of [[database normalization]] defined by English computer scientist [[Edgar F. Codd]], the inventor of the [[relational database]]. A [[Relation (database)|relation]] (or a [[Table (database)|&#039;&#039;table&#039;&#039;]], in [[SQL]]) can be said to be in first normal form if each field is &#039;&#039;atomic&#039;&#039;, containing a single value rather than a set of values or a [[nested table]]. In other words, a relation complies with first normal form if no [[attribute domain]] (the set of values allowed in a given column) has relations as elements.&amp;lt;ref&amp;gt;Codd, E. F. (1972). &quot;Further Normalization of the Data Base Relational Model&quot;. p. 27&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Most relational database management systems, including standard SQL, do not support creating or using table-valued columns, which means most relational databases will be in first normal form by necessity. Otherwise, normalization to 1NF involves eliminating nested relations by breaking them up into separate relations associated with each other using [[foreign key]]s.&amp;lt;ref name=&amp;quot;Codd 1970&amp;quot;&amp;gt;{{Cite journal |title=A relational model of data for large shared data banks |journal=Communications of the ACM |last=Codd |first=E. F. |volume=13 |issue=6 |pages=377&amp;amp;ndash;387 |author-link=Edgar F. Codd |year=1970 |doi=10.1145/362384.362685}}&amp;lt;/ref&amp;gt;{{rp|pages=381}} This process is a necessary step when moving data from a non-relational (or [[NoSQL]]) database, such as one using a [[hierarchical database|hierarchical]] or [[document-oriented database|document-oriented]] model, to a relational database.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Most relational database management systems, including standard SQL, do not support creating or using table-valued columns, which means most relational databases will be in first normal form by necessity. Otherwise, normalization to 1NF involves eliminating nested relations by breaking them up into separate relations associated with each other using [[foreign key]]s.&amp;lt;ref name=&amp;quot;Codd 1970&amp;quot;&amp;gt;{{Cite journal |title=A relational model of data for large shared data banks |journal=Communications of the ACM |last=Codd |first=E. F. |volume=13 |issue=6 |pages=377&amp;amp;ndash;387 |author-link=Edgar F. Codd |year=1970 |doi=10.1145/362384.362685}}&amp;lt;/ref&amp;gt;{{rp|pages=381}} This process is a necessary step when moving data from a non-relational (or [[NoSQL]]) database, such as one using a [[hierarchical database|hierarchical]] or [[document-oriented database|document-oriented]] model, to a relational database.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A database must satisfy 1NF to satisfy further &quot;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Database_normalization&lt;/del&gt;#&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Normal_forms&lt;/del&gt;|normal forms]]&quot;, such as [[Second normal form|2NF]] and [[Third normal form|3NF]], which enable the reduction of redundancy and anomalies. Other benefits of adopting 1NF include the introduction of increased [[data independence]] and flexibility (including features like [[Many-to-many (data model)|many-to-many]] relationships) and simplification of the [[relational algebra]] and [[query language]] necessary to describe operations on the database.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A database must satisfy 1NF to satisfy further &quot;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Database normalization&lt;/ins&gt;#&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Normal forms&lt;/ins&gt;|normal forms]]&quot;, such as [[Second normal form|2NF]] and [[Third normal form|3NF]], which enable the reduction of redundancy and anomalies. Other benefits of adopting 1NF include the introduction of increased [[data independence]] and flexibility (including features like [[Many-to-many (data model)|many-to-many]] relationships) and simplification of the [[relational algebra]] and [[query language]] necessary to describe operations on the database.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Codd considered 1NF mandatory for relational databases, while the other normal forms were merely guidelines for database design.&amp;lt;ref&amp;gt;{{Cite journal |title=Extending the database relational model to capture more meaning |journal=ACM Transactions on Database Systems |last=Codd |first=E. F. |volume=4 |issue=4 |pages=397&amp;amp;ndash;434 |author-link=Edgar F. Codd |year=1979 |doi=10.1145/320107.320109}}&amp;lt;/ref&amp;gt;{{rp|page=439}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Codd considered 1NF mandatory for relational databases, while the other normal forms were merely guidelines for database design.&amp;lt;ref&amp;gt;{{Cite journal |title=Extending the database relational model to capture more meaning |journal=ACM Transactions on Database Systems |last=Codd |first=E. F. |volume=4 |issue=4 |pages=397&amp;amp;ndash;434 |author-link=Edgar F. Codd |year=1979 |doi=10.1145/320107.320109}}&amp;lt;/ref&amp;gt;{{rp|page=439}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper &amp;quot;A relational model of data for large shared data banks&amp;quot;,{{r|Codd 1970}} although initially it was simply referred to as &amp;quot;normalization&amp;quot; or &amp;quot;normal form&amp;quot;. It was renamed to &amp;quot;first normal form&amp;quot; when Codd introduced additional normal forms in his paper &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot; in 1971.&amp;lt;ref&amp;gt;Codd, E. F. (1971). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. &amp;#039;&amp;#039;Data Base Systems. Courant Computer Science Symposium 6&amp;#039;&amp;#039; edited by Rustin, R.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper &amp;quot;A relational model of data for large shared data banks&amp;quot;,{{r|Codd 1970}} although initially it was simply referred to as &amp;quot;normalization&amp;quot; or &amp;quot;normal form&amp;quot;. It was renamed to &amp;quot;first normal form&amp;quot; when Codd introduced additional normal forms in his paper &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot; in 1971.&amp;lt;ref&amp;gt;Codd, E. F. (1971). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. &amp;#039;&amp;#039;Data Base Systems. Courant Computer Science Symposium 6&amp;#039;&amp;#039; edited by Rustin, R.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The relational model was proposed as an improvement over [[hierarchical]] databases which were prevalent at the time.{{r|Codd 1970|p=377}} A key difference lies in how relationships between records are represented. In a hierarchical database, one-to-many relationships are represented through containment: a single record may contain sets of records (known as repeating groups) as attribute values. But Codd argued that hierarchy is not flexible and expressive enough for more complex data models. For example many-to-many relationships cannot be represented through hierarchy.{{r|Codd 1970|p=378}} Thus he suggest eliminating nested records and instead represent relationship through [[foreign key&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|foreign keys&lt;/del&gt;]]. This allows richer relationships to be expressed, since a record can now participate in multiple relationships.{{r|Codd 1970|p=378}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The relational model was proposed as an improvement over [[hierarchical]] databases which were prevalent at the time.{{r|Codd 1970|p=377}} A key difference lies in how relationships between records are represented. In a hierarchical database, one-to-many relationships are represented through containment: a single record may contain sets of records (known as repeating groups) as attribute values. But Codd argued that hierarchy is not flexible and expressive enough for more complex data models. For example&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;many-to-many relationships cannot be represented through hierarchy.{{r|Codd 1970|p=378}} Thus he suggest eliminating nested records and instead represent relationship through [[foreign key]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s&lt;/ins&gt;. This allows richer relationships to be expressed, since a record can now participate in multiple relationships.{{r|Codd 1970|p=378}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A direct translation of a hierarchical database into relations would represent repeating groups as nested relations. Thus normalization is defined as eliminating nested relations and instead represent the one-to-many relationship through foreign keys. {{r|Codd 1970|p=381}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A direct translation of a hierarchical database into relations would represent repeating groups as nested relations. Thus normalization is defined as eliminating nested relations and instead represent the one-to-many relationship through foreign keys. {{r|Codd 1970|p=381}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Examples==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Examples==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Design that violates 1NF===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Design that violates 1NF===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This table of customers&#039; credit card transactions does not conform to first normal form, as each customer corresponds to a repeating group of transactions. Such a design can be represented in a [[hierarchical database]], but not in an SQL database, since SQL does not support nested tables.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This table of customers&#039; credit card transactions does not conform to first normal form, as each customer corresponds to a repeating group of transactions. Such a design can be represented in a [[hierarchical database]], but not in an SQL database, since SQL does not support nested tables.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Table alignment}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Table alignment}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l135&quot;&gt;Line 135:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 135:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Date suggests that &amp;quot;the notion of atomicity &amp;#039;&amp;#039;has no absolute meaning&amp;#039;&amp;#039;&amp;quot;:&amp;lt;ref name=&amp;quot;Date 2007&amp;quot;&amp;gt;{{cite book |last=Date| first=C. J. |author-link=Christopher J. Date |chapter=Chapter 8: What First Normal Form Really Means |date=2007 |title=Date on Database: Writings 2000–2006 |publisher=Apress |isbn=978-1-4842-2029-0}}&amp;lt;/ref&amp;gt;{{rp|page=112}}&amp;lt;ref&amp;gt;{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |url=https://books.google.com/books?id=BCjkCgAAQBAJ&amp;amp;pg=PA50 |title=SQL and Relational Theory: How to Write Accurate SQL Code |date=6 November 2015 |publisher=O&amp;#039;Reilly Media |isbn=978-1-4919-4115-7 |pages=50– |access-date=31 October 2018}}&amp;lt;/ref&amp;gt;{{Pages needed|date=May 2025}} a value may be considered atomic for some purposes, but may be considered an assemblage of more basic elements for other purposes. If this position is accepted, 1NF cannot be defined with reference to atomicity. Columns containing any conceivable data type (from strings and numeric types to arrays and tables) are then acceptable in a 1NF table,{{Citation needed|date=May 2025}} although perhaps not always desirable – for example, it may be desirable to separate a CustomerName column into two columns, FirstName and Surname.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Date suggests that &amp;quot;the notion of atomicity &amp;#039;&amp;#039;has no absolute meaning&amp;#039;&amp;#039;&amp;quot;:&amp;lt;ref name=&amp;quot;Date 2007&amp;quot;&amp;gt;{{cite book |last=Date| first=C. J. |author-link=Christopher J. Date |chapter=Chapter 8: What First Normal Form Really Means |date=2007 |title=Date on Database: Writings 2000–2006 |publisher=Apress |isbn=978-1-4842-2029-0}}&amp;lt;/ref&amp;gt;{{rp|page=112}}&amp;lt;ref&amp;gt;{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |url=https://books.google.com/books?id=BCjkCgAAQBAJ&amp;amp;pg=PA50 |title=SQL and Relational Theory: How to Write Accurate SQL Code |date=6 November 2015 |publisher=O&amp;#039;Reilly Media |isbn=978-1-4919-4115-7 |pages=50– |access-date=31 October 2018}}&amp;lt;/ref&amp;gt;{{Pages needed|date=May 2025}} a value may be considered atomic for some purposes, but may be considered an assemblage of more basic elements for other purposes. If this position is accepted, 1NF cannot be defined with reference to atomicity. Columns containing any conceivable data type (from strings and numeric types to arrays and tables) are then acceptable in a 1NF table,{{Citation needed|date=May 2025}} although perhaps not always desirable – for example, it may be desirable to separate a CustomerName column into two columns, FirstName and Surname.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Cristopher &lt;/del&gt;J. Date&#039;s definition of 1NF==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Christopher &lt;/ins&gt;J. Date&#039;s definition of 1NF==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Importance section|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Importance section|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;According to [[Christopher J. Date]]&amp;#039;s definition, a table is in first normal form if and only if it is &amp;quot;[[isomorphism|isomorphic]] to some relation&amp;quot;, which means, specifically, that it satisfies the following five conditions:{{r|Date 2007}}{{rp|pages=127&amp;amp;ndash;128}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;According to [[Christopher J. Date]]&amp;#039;s definition, a table is in first normal form if and only if it is &amp;quot;[[isomorphism|isomorphic]] to some relation&amp;quot;, which means, specifically, that it satisfies the following five conditions:{{r|Date 2007}}{{rp|pages=127&amp;amp;ndash;128}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Alexanderino</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=676251&amp;oldid=prev</id>
		<title>80.62.116.26 at 10:21, 14 June 2025</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=676251&amp;oldid=prev"/>
		<updated>2025-06-14T10:21:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:21, 14 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{short description|Concept in database normalization}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{short description|Concept in database normalization}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{multiple issues|&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{more sources|date=November 2024}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{citation style|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{citation style|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;First normal form&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;1NF&amp;#039;&amp;#039;&amp;#039;) is the simplest form of [[database normalization]] defined by English computer scientist [[Edgar F. Codd]], the inventor of the [[relational database]]. A [[Relation (database)|relation]] (or a [[Table (database)|&amp;#039;&amp;#039;table&amp;#039;&amp;#039;]], in [[SQL]]) can be said to be in first normal form if each field is &amp;#039;&amp;#039;atomic&amp;#039;&amp;#039;, containing a single value rather than a set of values or a [[nested table]]. In other words, a relation complies with first normal form if no [[attribute domain]] (the set of values allowed in a given column) has relations as elements.&amp;lt;ref&amp;gt;Codd, E. F. (1972). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. p. 27&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;First normal form&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;1NF&amp;#039;&amp;#039;&amp;#039;) is the simplest form of [[database normalization]] defined by English computer scientist [[Edgar F. Codd]], the inventor of the [[relational database]]. A [[Relation (database)|relation]] (or a [[Table (database)|&amp;#039;&amp;#039;table&amp;#039;&amp;#039;]], in [[SQL]]) can be said to be in first normal form if each field is &amp;#039;&amp;#039;atomic&amp;#039;&amp;#039;, containing a single value rather than a set of values or a [[nested table]]. In other words, a relation complies with first normal form if no [[attribute domain]] (the set of values allowed in a given column) has relations as elements.&amp;lt;ref&amp;gt;Codd, E. F. (1972). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. p. 27&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Background ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Background ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper &amp;quot;A relational model of data for large shared data banks&amp;quot;,{{r|Codd 1970}} although initially it was simply referred to as &amp;quot;normalization&amp;quot; or &amp;quot;normal form&amp;quot;. It was renamed to &amp;quot;first normal form&amp;quot; when Codd introduced additional normal forms in his paper &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot; in 1971.&amp;lt;ref&amp;gt;Codd, E. F. (1971). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. &amp;#039;&amp;#039;Data Base Systems. Courant Computer Science Symposium 6&amp;#039;&amp;#039; edited by Rustin, R.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper &amp;quot;A relational model of data for large shared data banks&amp;quot;,{{r|Codd 1970}} although initially it was simply referred to as &amp;quot;normalization&amp;quot; or &amp;quot;normal form&amp;quot;. It was renamed to &amp;quot;first normal form&amp;quot; when Codd introduced additional normal forms in his paper &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot; in 1971.&amp;lt;ref&amp;gt;Codd, E. F. (1971). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. &amp;#039;&amp;#039;Data Base Systems. Courant Computer Science Symposium 6&amp;#039;&amp;#039; edited by Rustin, R.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The relational model was proposed as an improvement over [[hierarchical]] databases which were prevalent at the time.{{r|Codd 1970|p=377}} A key difference lies in how relationships between records are represented. In a hierarchical database, one-to-many relationships are represented through containment: a single record may contain sets of records (known as repeating groups) as attribute values. But Codd argued that hierarchy is not flexible and expressive enough for more complex data models. For example many-to-many relationships cannot be represented through hierarchy.{{r|Codd 1970|p=378}} Thus he suggest eliminating nested records and instead represent relationship through [[foreign key|foreign keys]]. This allows richer relationships to be expressed, since a record can now participate in multiple relationships.{{r|Codd 1970|p=378}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A direct translation of a hierarchical database into relations would represent repeating groups as nested relations. Thus normalization is defined as eliminating nested relations and instead represent the one-to-many relationship through foreign keys. {{r|Codd 1970|p=381}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Codd distinguishes between &amp;quot;atomic&amp;quot; and &amp;quot;compound&amp;quot; data. Atomic (or &amp;quot;nondecomposable&amp;quot;) data includes basic types such as numbers and [[String (computer science)|strings]] – broadly speaking, it &amp;quot;&amp;#039;&amp;#039;cannot&amp;#039;&amp;#039; be decomposed into smaller pieces by the [[DBMS]] (excluding certain special functions)&amp;quot;. Compound data is made up of structures such as [[Relation (database)|relations]] (or &amp;#039;&amp;#039;[[Table (database)|tables]]&amp;#039;&amp;#039;, in [[SQL]]) which contain several pieces of atomic data and thus &amp;quot;&amp;#039;&amp;#039;can&amp;#039;&amp;#039; be decomposed by the DBMS&amp;quot;.&amp;lt;ref name=&amp;quot;Codd 1990&amp;quot;&amp;gt;{{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}}&amp;lt;/ref&amp;gt;{{rp|page=6}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Codd distinguishes between &amp;quot;atomic&amp;quot; and &amp;quot;compound&amp;quot; data. Atomic (or &amp;quot;nondecomposable&amp;quot;) data includes basic types such as numbers and [[String (computer science)|strings]] – broadly speaking, it &amp;quot;&amp;#039;&amp;#039;cannot&amp;#039;&amp;#039; be decomposed into smaller pieces by the [[DBMS]] (excluding certain special functions)&amp;quot;. Compound data is made up of structures such as [[Relation (database)|relations]] (or &amp;#039;&amp;#039;[[Table (database)|tables]]&amp;#039;&amp;#039;, in [[SQL]]) which contain several pieces of atomic data and thus &amp;quot;&amp;#039;&amp;#039;can&amp;#039;&amp;#039; be decomposed by the DBMS&amp;quot;.&amp;lt;ref name=&amp;quot;Codd 1990&amp;quot;&amp;gt;{{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}}&amp;lt;/ref&amp;gt;{{rp|page=6}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot;&gt;Line 115:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 116:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is worth noting that the revised design also meets the additional requirements for [[second normal form|second]] and [[third normal form]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is worth noting that the revised design also meets the additional requirements for [[second normal form|second]] and [[third normal form]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Rationale &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and drawbacks &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Rationale ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Multiple issues|section=yes|&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Confusing section|date=May 2025}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Importance section|date=May 2025}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Normalization to 1NF is the major theoretical component of transferring a database to the [[relational model]]. Use of a relational database in 1NF brings certain advantages:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Normalization to 1NF is the major theoretical component of transferring a database to the [[relational model]]. Use of a relational database in 1NF brings certain advantages:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l128&quot;&gt;Line 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 125:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since locating data items is not coupled to a parent–child hierarchy, a database in 1NF creates greater [[data independence]] and is more resilient to structural changes over time.{{Clarify|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since locating data items is not coupled to a parent–child hierarchy, a database in 1NF creates greater [[data independence]] and is more resilient to structural changes over time.{{Clarify|date=May 2025}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* From 1NF, further normalization becomes possible (for example to [[Second normal form|2NF]] or [[Third normal form|3NF]]), which can reduce data redundancy and anomalies.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* From 1NF, further normalization becomes possible (for example to [[Second normal form|2NF]] or [[Third normal form|3NF]]), which can reduce data redundancy and anomalies.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The use of 1NF also comes with certain drawbacks:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Performance worsens for certain operations. In a hierarchical model, nested records are physically stored after the parent record, which means a whole subtree can be retrieved in a single read operation. In 1NF, this will require a join operation per record type, which can be costly, especially for complex trees. For this reason, [[document-oriented database]]s eschew 1NF.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Object-oriented language]]s represent runtime state as trees or [[directed graph]]s of objects connected by [[Pointer (computer programming)|pointers]] or references. This does not map cleanly to a 1NF relational database, creating a gap sometimes called the [[object–relational impedance mismatch]], which [[object–relational mapping]] (ORM) libraries try to bridge.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* 1NF has been interpreted as not allowing complex data types for values. This is open to interpretation though, and [[Christopher J. Date]] has argued that values can be arbitrarily complex objects.{{citation-needed|date=June 2023}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Controversy about compound values ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Controversy about compound values ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>80.62.116.26</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=141951&amp;oldid=prev</id>
		<title>imported&gt;MiscellanyNovice: Rewrote &#039;Background&#039; and performed cleanup on tables, citations, etc.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=First_normal_form&amp;diff=141951&amp;oldid=prev"/>
		<updated>2025-05-13T18:49:36Z</updated>

		<summary type="html">&lt;p&gt;Rewrote &amp;#039;Background&amp;#039; and performed cleanup on tables, citations, etc.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|Concept in database normalization}}&lt;br /&gt;
{{multiple issues|&lt;br /&gt;
{{more sources|date=November 2024}}&lt;br /&gt;
{{citation style|date=May 2025}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;First normal form&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;1NF&amp;#039;&amp;#039;&amp;#039;) is the simplest form of [[database normalization]] defined by English computer scientist [[Edgar F. Codd]], the inventor of the [[relational database]]. A [[Relation (database)|relation]] (or a [[Table (database)|&amp;#039;&amp;#039;table&amp;#039;&amp;#039;]], in [[SQL]]) can be said to be in first normal form if each field is &amp;#039;&amp;#039;atomic&amp;#039;&amp;#039;, containing a single value rather than a set of values or a [[nested table]]. In other words, a relation complies with first normal form if no [[attribute domain]] (the set of values allowed in a given column) has relations as elements.&amp;lt;ref&amp;gt;Codd, E. F. (1972). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. p. 27&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most relational database management systems, including standard SQL, do not support creating or using table-valued columns, which means most relational databases will be in first normal form by necessity. Otherwise, normalization to 1NF involves eliminating nested relations by breaking them up into separate relations associated with each other using [[foreign key]]s.&amp;lt;ref name=&amp;quot;Codd 1970&amp;quot;&amp;gt;{{Cite journal |title=A relational model of data for large shared data banks |journal=Communications of the ACM |last=Codd |first=E. F. |volume=13 |issue=6 |pages=377&amp;amp;ndash;387 |author-link=Edgar F. Codd |year=1970 |doi=10.1145/362384.362685}}&amp;lt;/ref&amp;gt;{{rp|pages=381}} This process is a necessary step when moving data from a non-relational (or [[NoSQL]]) database, such as one using a [[hierarchical database|hierarchical]] or [[document-oriented database|document-oriented]] model, to a relational database.&lt;br /&gt;
&lt;br /&gt;
A database must satisfy 1NF to satisfy further &amp;quot;[[Database_normalization#Normal_forms|normal forms]]&amp;quot;, such as [[Second normal form|2NF]] and [[Third normal form|3NF]], which enable the reduction of redundancy and anomalies. Other benefits of adopting 1NF include the introduction of increased [[data independence]] and flexibility (including features like [[Many-to-many (data model)|many-to-many]] relationships) and simplification of the [[relational algebra]] and [[query language]] necessary to describe operations on the database.&lt;br /&gt;
&lt;br /&gt;
Codd considered 1NF mandatory for relational databases, while the other normal forms were merely guidelines for database design.&amp;lt;ref&amp;gt;{{Cite journal |title=Extending the database relational model to capture more meaning |journal=ACM Transactions on Database Systems |last=Codd |first=E. F. |volume=4 |issue=4 |pages=397&amp;amp;ndash;434 |author-link=Edgar F. Codd |year=1979 |doi=10.1145/320107.320109}}&amp;lt;/ref&amp;gt;{{rp|page=439}}&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
First normal form was introduced in 1970 by [[Edgar F. Codd]] in his paper &amp;quot;A relational model of data for large shared data banks&amp;quot;,{{r|Codd 1970}} although initially it was simply referred to as &amp;quot;normalization&amp;quot; or &amp;quot;normal form&amp;quot;. It was renamed to &amp;quot;first normal form&amp;quot; when Codd introduced additional normal forms in his paper &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot; in 1971.&amp;lt;ref&amp;gt;Codd, E. F. (1971). &amp;quot;Further Normalization of the Data Base Relational Model&amp;quot;. &amp;#039;&amp;#039;Data Base Systems. Courant Computer Science Symposium 6&amp;#039;&amp;#039; edited by Rustin, R.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Codd distinguishes between &amp;quot;atomic&amp;quot; and &amp;quot;compound&amp;quot; data. Atomic (or &amp;quot;nondecomposable&amp;quot;) data includes basic types such as numbers and [[String (computer science)|strings]] – broadly speaking, it &amp;quot;&amp;#039;&amp;#039;cannot&amp;#039;&amp;#039; be decomposed into smaller pieces by the [[DBMS]] (excluding certain special functions)&amp;quot;. Compound data is made up of structures such as [[Relation (database)|relations]] (or &amp;#039;&amp;#039;[[Table (database)|tables]]&amp;#039;&amp;#039;, in [[SQL]]) which contain several pieces of atomic data and thus &amp;quot;&amp;#039;&amp;#039;can&amp;#039;&amp;#039; be decomposed by the DBMS&amp;quot;.&amp;lt;ref name=&amp;quot;Codd 1990&amp;quot;&amp;gt;{{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}}&amp;lt;/ref&amp;gt;{{rp|page=6}}&lt;br /&gt;
&lt;br /&gt;
In a relation, each attribute (or [[Column (database)|&amp;#039;&amp;#039;column&amp;#039;&amp;#039;]]) has a set of allowed values known as its [[Attribute domain|domain]] (e.g., a &amp;quot;Price&amp;quot; attribute&amp;#039;s domain may be the set of non-negative numbers with up to 2 fractional digits). Each tuple (or [[Row (database)|&amp;#039;&amp;#039;row&amp;#039;&amp;#039;]]) in the relation contains one value per attribute, and each must be an element in that attribute&amp;#039;s domain. Codd distinguishes attributes which have &amp;quot;simple domains&amp;quot; containing only atomic data from attributes with &amp;quot;nonsimple domains&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
First normal form therefore requires all attribute domains to be &amp;#039;&amp;#039;simple&amp;#039;&amp;#039; 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, &amp;quot;values in the domains on which each relation is defined are required to be atomic with respect to the DBMS.&amp;quot;&amp;lt;ref name=&amp;quot;Codd 1990&amp;quot; /&amp;gt;{{rp|page=6}} Normalization to 1NF is thus a process of eliminating nonsimple domains from all relations.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Design that violates 1NF===&lt;br /&gt;
This table of customers&amp;#039; credit card transactions does not conform to first normal form, as each customer corresponds to a repeating group of transactions. Such a design can be represented in a [[hierarchical database]], but not in an SQL database, since SQL does not support nested tables. &lt;br /&gt;
&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right&amp;quot;&lt;br /&gt;
|+ Customer&lt;br /&gt;
! &amp;lt;u&amp;gt;CustomerID&amp;lt;/u&amp;gt; !! Name !! Transactions&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Abraham&lt;br /&gt;
||&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right col3right&amp;quot;&lt;br /&gt;
! &amp;lt;u&amp;gt;TransactionID&amp;lt;/u&amp;gt; !! Date !! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 12890 || 2003-10-14 || &amp;amp;minus;87&lt;br /&gt;
|-&lt;br /&gt;
| 12904 || 2003-10-15 || &amp;amp;minus;50&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Isaac&lt;br /&gt;
||&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right col3right&amp;quot;&lt;br /&gt;
! &amp;lt;u&amp;gt;TransactionID&amp;lt;/u&amp;gt; !! Date !! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 12898 || 2003-10-14 || &amp;amp;minus;21&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Jacob&lt;br /&gt;
||&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right col3right&amp;quot;&lt;br /&gt;
! &amp;lt;u&amp;gt;TransactionID&amp;lt;/u&amp;gt; !! Date !! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 12907 || 2003-10-15 || &amp;amp;minus;18&lt;br /&gt;
|-&lt;br /&gt;
| 14920 || 2003-11-20 || &amp;amp;minus;70&lt;br /&gt;
|-&lt;br /&gt;
| 15003 || 2003-11-27 || &amp;amp;minus;60&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The evaluation of any query relating to customers&amp;#039; transactions would broadly involve two stages:&lt;br /&gt;
# unpacking one or more customers&amp;#039; groups of transactions, allowing the individual transactions in a group to be examined, and&lt;br /&gt;
# deriving a query result from the results of the first stage.&lt;br /&gt;
&lt;br /&gt;
For example, in order to find out the monetary sum of all transactions that occurred in October 2003 for all customers, the [[database management system]] (DMBS) would have to first unpack the Transactions field of each customer, then sum the Amount of each transaction thus obtained where the Date of the transaction falls in October 2003.&lt;br /&gt;
&lt;br /&gt;
===Design that complies with 1NF===&lt;br /&gt;
Codd described how a database like this could be made less structurally complex and more flexible by transforming it into a relational database in first normal form. To normalize the table so it complies with first normal form, attributes with nonsimple domains must be extracted to separate, stand-alone relations. Each extracted relation gains a [[foreign key]] referencing the [[primary key]] of the relation which initially contained it. This process can be applied recursively to nonsimple domains nested in multiple levels (i.e., domains containing tables within tables within tables, and so on).{{r|Codd 1970}}{{rp|pages=380&amp;amp;ndash;381}}&lt;br /&gt;
&lt;br /&gt;
In this example, CustomerID is the primary key of the containing relation and will therefore be appended as a foreign key to the new relation:&lt;br /&gt;
&lt;br /&gt;
{{Col-float}}&lt;br /&gt;
{{Col-float-break|style=margin-right: 20px;}}&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right&amp;quot;&lt;br /&gt;
|+ Customer&lt;br /&gt;
! &amp;lt;u&amp;gt;CustomerID&amp;lt;/u&amp;gt; !! Name &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Abraham&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Isaac &lt;br /&gt;
|-&lt;br /&gt;
| 3 || Jacob &lt;br /&gt;
|}&lt;br /&gt;
{{Col-float-break}}&lt;br /&gt;
{{Table alignment}}&lt;br /&gt;
{| class=&amp;quot;wikitable col1right col2right col4right&amp;quot;&lt;br /&gt;
|+ Transaction&lt;br /&gt;
! &amp;lt;u&amp;gt;CustomerID&amp;lt;/u&amp;gt; !! &amp;lt;u&amp;gt;TransactionID&amp;lt;/u&amp;gt; !! Date !! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 12890 || 2003-10-14 || &amp;amp;minus;87&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 12904 || 2003-10-15 || &amp;amp;minus;50&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 12898 || 2003-10-14 || &amp;amp;minus;21&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 12907 || 2003-10-15 || &amp;amp;minus;18&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 14920 || 2003-11-20 || &amp;amp;minus;70&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 15003 || 2003-11-27 || &amp;amp;minus;60&lt;br /&gt;
|}&lt;br /&gt;
{{Col-float-end}}&lt;br /&gt;
&lt;br /&gt;
In this modified design, the primary key is {CustomerID} in the first relation and {CustomerID, TransactionID} in the second relation.&lt;br /&gt;
&lt;br /&gt;
Now that a single, &amp;quot;top-level&amp;quot; relation contains all transactions, it will be simpler to run queries on the database. To find the monetary sum of all October transactions, the DMBS would simply find all rows with a Date falling in October and sum the Amount fields. All values are now easily exposed to the DBMS, whereas previously some values were embedded in lower-level structures that had to be handled specially. Accordingly, the normalized design lends itself well to general-purpose query processing, whereas the unnormalized design does not.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that the revised design also meets the additional requirements for [[second normal form|second]] and [[third normal form]].&lt;br /&gt;
&lt;br /&gt;
== Rationale and drawbacks ==&lt;br /&gt;
{{Multiple issues|section=yes|&lt;br /&gt;
{{Confusing section|date=May 2025}}&lt;br /&gt;
{{Importance section|date=May 2025}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Normalization to 1NF is the major theoretical component of transferring a database to the [[relational model]]. Use of a relational database in 1NF brings certain advantages:&lt;br /&gt;
&lt;br /&gt;
* It enables data to be stored in regular [[two-dimensional array]]s; supporting nested relations would require more complex data structures.{{r|Codd 1970}}{{rp|page=381}}&lt;br /&gt;
* It allows for the use of a simpler [[query language]], like [[SQL]], since any data item can be identified using only a relation name, attribute name and key; addressing nested data items would require a more complex language with support for hierarchical data paths.&lt;br /&gt;
* Representing relationships using foreign keys is more flexible and allows for features such as [[Many-to-many (data model)|many-to-many]] relationships, while a hierarchical model can represent only [[One-to-one (data model)|one-to-one]] or [[One-to-many (data model)|one-to-many]] relationships.&lt;br /&gt;
* Since locating data items is not coupled to a parent–child hierarchy, a database in 1NF creates greater [[data independence]] and is more resilient to structural changes over time.{{Clarify|date=May 2025}}&lt;br /&gt;
* From 1NF, further normalization becomes possible (for example to [[Second normal form|2NF]] or [[Third normal form|3NF]]), which can reduce data redundancy and anomalies.&lt;br /&gt;
&lt;br /&gt;
The use of 1NF also comes with certain drawbacks:&lt;br /&gt;
* Performance worsens for certain operations. In a hierarchical model, nested records are physically stored after the parent record, which means a whole subtree can be retrieved in a single read operation. In 1NF, this will require a join operation per record type, which can be costly, especially for complex trees. For this reason, [[document-oriented database]]s eschew 1NF.&lt;br /&gt;
* [[Object-oriented language]]s represent runtime state as trees or [[directed graph]]s of objects connected by [[Pointer (computer programming)|pointers]] or references. This does not map cleanly to a 1NF relational database, creating a gap sometimes called the [[object–relational impedance mismatch]], which [[object–relational mapping]] (ORM) libraries try to bridge.&lt;br /&gt;
* 1NF has been interpreted as not allowing complex data types for values. This is open to interpretation though, and [[Christopher J. Date]] has argued that values can be arbitrarily complex objects.{{citation-needed|date=June 2023}}&lt;br /&gt;
&lt;br /&gt;
== Controversy about compound values ==&lt;br /&gt;
There is some discussion about to what extent compound or complex values other than relations (such as [[Array (data structure)|arrays]] or [[XML]] data) are permitted in 1NF.{{Citation needed|date=May 2025}} Codd states that relations are the only type of compound data allowed within the relational model (if not in attribute domains), since any additional type of compound data would add complexity without adding power; nevertheless, the model specifically allows &amp;quot;certain special functions&amp;quot; like &amp;lt;code&amp;gt;SUBSTRING&amp;lt;/code&amp;gt; to decompose values otherwise considered atomic.{{r|Codd 1990}}{{rp|page=6,340}}&lt;br /&gt;
&lt;br /&gt;
[[Hugh Darwen]] and [[Christopher J. Date]] have suggested that Codd&amp;#039;s concept of an &amp;quot;atomic value&amp;quot; is ambiguous, and that this ambiguity has led to widespread confusion about how 1NF should be understood.&amp;lt;ref&amp;gt;Darwen, Hugh. &amp;quot;Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up?&amp;quot;, in C. J. Date and Hugh Darwen, &amp;#039;&amp;#039;Relational Database Writings 1989-1991&amp;#039;&amp;#039; (Addison-Wesley, 1992).&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |chapter=Chapter 8: What First Normal Form Really Means |date=2007 |title=Date on Database: Writings 2000–2006 |publisher=Apress |isbn=978-1-4842-2029-0 |page=108 |quote=&amp;#039;[F]or many years,&amp;#039; writes Date, &amp;#039;I was as confused as anyone else. What&amp;#039;s worse, I did my best (worst?) to spread that confusion through my writings, seminars, and other presentations.&amp;#039;}}&amp;lt;/ref&amp;gt; In particular, the notion of an atomic value as a &amp;quot;value that cannot be decomposed&amp;quot; is problematic, as it would seem to imply that few, if any, data types are atomic:&lt;br /&gt;
*A [[String (computer science)|string]] would seem not to be atomic, as an RDBMS typically provides operators to decompose it into [[substring]]s.&lt;br /&gt;
*A [[Fixed-point arithmetic|fixed-point]] number would seem not to be atomic, as an RDBMS typically provides operators to decompose it into integer and fractional components.&lt;br /&gt;
* An [[ISBN]] would seem not to be atomic, as it includes various parts, including the &amp;#039;&amp;#039;registration group&amp;#039;&amp;#039;, &amp;#039;&amp;#039;registrant&amp;#039;&amp;#039; and &amp;#039;&amp;#039;publication&amp;#039;&amp;#039; elements.&lt;br /&gt;
Date suggests that &amp;quot;the notion of atomicity &amp;#039;&amp;#039;has no absolute meaning&amp;#039;&amp;#039;&amp;quot;:&amp;lt;ref name=&amp;quot;Date 2007&amp;quot;&amp;gt;{{cite book |last=Date| first=C. J. |author-link=Christopher J. Date |chapter=Chapter 8: What First Normal Form Really Means |date=2007 |title=Date on Database: Writings 2000–2006 |publisher=Apress |isbn=978-1-4842-2029-0}}&amp;lt;/ref&amp;gt;{{rp|page=112}}&amp;lt;ref&amp;gt;{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |url=https://books.google.com/books?id=BCjkCgAAQBAJ&amp;amp;pg=PA50 |title=SQL and Relational Theory: How to Write Accurate SQL Code |date=6 November 2015 |publisher=O&amp;#039;Reilly Media |isbn=978-1-4919-4115-7 |pages=50– |access-date=31 October 2018}}&amp;lt;/ref&amp;gt;{{Pages needed|date=May 2025}} a value may be considered atomic for some purposes, but may be considered an assemblage of more basic elements for other purposes. If this position is accepted, 1NF cannot be defined with reference to atomicity. Columns containing any conceivable data type (from strings and numeric types to arrays and tables) are then acceptable in a 1NF table,{{Citation needed|date=May 2025}} although perhaps not always desirable – for example, it may be desirable to separate a CustomerName column into two columns, FirstName and Surname.&lt;br /&gt;
&lt;br /&gt;
==Cristopher J. Date&amp;#039;s definition of 1NF==&lt;br /&gt;
{{Importance section|date=May 2025}}&lt;br /&gt;
According to [[Christopher J. Date]]&amp;#039;s definition, a table is in first normal form if and only if it is &amp;quot;[[isomorphism|isomorphic]] to some relation&amp;quot;, which means, specifically, that it satisfies the following five conditions:{{r|Date 2007}}{{rp|pages=127&amp;amp;ndash;128}}&lt;br /&gt;
&lt;br /&gt;
# There is no specific top-to-bottom ordering of the rows.&lt;br /&gt;
# There is no specific left-to-right ordering of the columns.&lt;br /&gt;
# There are no duplicate rows.&lt;br /&gt;
# Every field (or intersection of a row and a column) contains exactly one value from the applicable domain and nothing else.&lt;br /&gt;
# All columns are regular (i.e., rows have no hidden components such as row IDs, object IDs, or hidden timestamps).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&amp;amp;ndash;126}} Examples of tables (or [[view (database)|views]]) that would not meet this definition of first normal form are:&lt;br /&gt;
&lt;br /&gt;
*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.&lt;br /&gt;
*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).&lt;br /&gt;
*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&amp;#039;s domain. This aspect of condition 4 is controversial; it marks an important departure from Codd&amp;#039;s later vision of the [[relational model]],&amp;lt;ref&amp;gt;{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |year=2009 |title=SQL and Relational Theory |publisher=O&amp;#039;Reilly |chapter=Appendix A.2 |quote=Codd first defined the relational model in 1969 and didn&amp;#039;t introduce nulls until 1979}}&amp;lt;/ref&amp;gt; which made explicit provision for nulls.&amp;lt;ref&amp;gt;{{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&amp;#039;s 12 rules)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Attribute–value system]]&lt;br /&gt;
*[[Second normal form]] (2NF)&lt;br /&gt;
*[[Third normal form]] (3NF)&lt;br /&gt;
*[[Boyce–Codd normal form]] (BCNF or 3.5NF)&lt;br /&gt;
*[[Fourth normal form]] (4NF)&lt;br /&gt;
*[[Fifth normal form]] (5NF)&lt;br /&gt;
*[[Sixth normal form]] (6NF)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* Date, C. J., &amp;amp; Lorentzos, N., &amp;amp; Darwen, H. (2002). &amp;#039;&amp;#039;[https://archive.today/20121209052842/http://www.elsevier.com/wps/product/cws_home/680662 Temporal Data &amp;amp; the Relational Model]&amp;#039;&amp;#039; (1st ed.). Morgan Kaufmann. {{ISBN|1-55860-855-9}}.&lt;br /&gt;
* Date, C. J. (1999), &amp;#039;&amp;#039;[https://web.archive.org/web/20050404010227/http://www.aw-bc.com/catalog/academic/product/0,1144,0321197844,00.html An Introduction to Database Systems]&amp;#039;&amp;#039; (8th ed.). Addison-Wesley Longman. {{ISBN|0-321-19784-4}}.&lt;br /&gt;
* Kent, W. (1983) &amp;#039;&amp;#039;[http://www.bkent.net/Doc/simple5.htm A Simple Guide to Five Normal Forms in Relational Database Theory]&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Communications of the ACM&amp;#039;&amp;#039;, vol. 26, p.&amp;amp;nbsp;120–125.&lt;br /&gt;
{{Refend}}&lt;br /&gt;
&lt;br /&gt;
{{Database normalization}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Database normalization|1NF]]&lt;br /&gt;
&lt;br /&gt;
[[de:Normalisierung (Datenbank)#Erste Normalform (1NF)]]&lt;br /&gt;
[[pl:Postać normalna (bazy danych)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;MiscellanyNovice</name></author>
	</entry>
</feed>