title: When we should use NOT ENFORCED with foreign key constraint in DB2?
body: <p>The IBM DB2 documentation says:</p>
  
  <blockquote>
    <p>To improve the performance of queries, you can add informational
    constraints to your tables.</p>
  </blockquote>
  
  <p>And there is this <code>NOT ENFORCED</code> option we can provide:</p>
  
  <pre><code>ALTER TABLE &lt;name&gt; &lt;constraint attributes&gt; NOT ENFORCED
  </code></pre>
  
  <p>The explanation is fairly simple:</p>
  
  <blockquote>
    <p>NOT ENFORCED should only be specified if the table data is
    independently known to conform to the constraint. Query results might
    be unpredictable if the data does not actually conform to the
    constraint.</p>
  </blockquote>
  
  <p>From what I understood - if I have let's say a <code>foreign key</code>, in a table, declared as <code>NOT ENFORCED</code> that's absolutely the same as not having it at all.</p>
  
  <p><strong>But then what are the real use cases for it and when this option should be used?</strong>
  (what is the difference between having NOT ENFORCED constraint vs not having it at all) </p>