title: Natural Join -- Relational theory and SQL
body: <p>This question comes from my readings of C.J Date's <em>SQL and Relational Theory: How to Write Accurate SQL Code</em> and looking up about joins on the internet (which includes coming across multiple posts here on NATURAL JOINs (and about SQL Server's lack of support for it))</p>
  
  <p>So here is my problem...</p>
  
  <p>On one hand, in relational theory, natural joins are the only joins that should happen (or at least are highly preferred).</p>
  
  <p>On the other hand, in SQL it is advised against using NATURAL JOIN and instead use alternate means (e.g inner join with restriction).</p>
  
  <p>Is the reconciliation of these that:</p>
  
  <ul>
  <li>Natural joins work in true RDBMS. SQL however, fails at completely reproducing the relational model and none of the popular SQL DBMSs are true RDBMS.</li>
  </ul>
  
  <p>and / or</p>
  
  <ul>
  <li>Good/Better table design should remove/minimise the problems that natural join creates.</li>
  </ul>
  
  <p>?</p>