Content deleted Content added
Removed unclear and unsourced text. |
Added a bit more context to the section about the atomic values controversy |
||
Line 132:
== Controversy about atomic values ==
1NF disallows relations as attribute values but does not otherwise constrain what kinds of values are permitted. This had led to some discussion about to what extent complex or compound values (like arrays or XML-values) should be considered permitted under 1NF.
Codd states that relations are the only type of compound data allowed by the relational model, since any additional types of compound data would just add complexity without adding power.<ref>Codd, E. F. (1990) The Relational Model for Database Management: Version 2 (Addison-Wesley) page 6</ref>. Nevertheless, the model specifically allows "certain special functions" like <code>substring</code> to decompose values otherwise considered atomic.<ref>Codd, E. F. (1990) The Relational Model for Database Management: Version 2 (Addison-Wesley) page 340</ref>
[[Hugh Darwen]] and [[Christopher J. Date]] have suggested that Codd's concept of an "atomic value" is ambiguous, and that this ambiguity has led to widespread confusion about how 1NF should be understood.<ref>Darwen, Hugh. "Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up?", in C. J. Date and Hugh Darwen, ''Relational Database Writings 1989-1991'' (Addison-Wesley, 1992).</ref><ref>{{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='[F]or many years,' writes Date, 'I was as confused as anyone else. What's worse, I did my best (worst?) to spread that confusion through my writings, seminars, and other presentations.'}}</ref> In particular, the notion of a "value that cannot be decomposed" is problematic, as it would seem to imply that few, if any, data types are atomic:
*A [[String (computer science)|character string]] would seem not to be atomic, as an RDBMS typically provides operators to decompose it into substrings.
|