title: Why does SQL standard allow duplicate rows?
body: <p>One of the <a href="http://en.wikipedia.org/wiki/Codd%27s_12_rules" rel="noreferrer">core rules</a> for the relational model is the required uniqueness for tuples (rows):</p>
  
  <blockquote>
    <p>Every individual scalar value in the database <strong>must</strong> be logically addressable by specifying the name of the containing table, the name of the containing column and the <strong>primary key</strong> value of the containing row.</p>
  </blockquote>
  
  <p>In a SQL world, that would mean that there could never exist two rows in a table for which all the column values were equal. If there was no meaningful way to guarantee uniqueness, a surrogate key could be presented to the table. </p>
  
  <p>When the first SQL standard was released, it defined no such restriction and it has been like this ever since. This seems like a root for all kind of evil.</p>
  
  <p>Is there any meaningful reason why it was decided to be that way? In a practical world, where could an absence of such restriction prove to be useful? Does it outweigh the cons?</p>