title: BCNF, 3NF, and candidate keys
body: <p>I am having issues understanding how to determine if relations are in BCNF, 3NF, and in general identifying the candidate keys of a relation. </p>
  
  <p>Consider relation <code>R = (A, B, C, D)</code> with the functional dependencies:</p>
  
  <pre><code>AB -&gt; C
  C -&gt; D
  D -&gt; A
  </code></pre>
  
  <p>The questions included:</p>
  
  <blockquote>
    <p>a. list the candidate keys of R<br>
    b. determine if R is in BCNF or 3NF.</p>
  </blockquote>
  
  <p>The solution resolves</p>
  
  <blockquote>
    <p>a. 3 candidate keys for R are AB, BC, and BD.<br>
    b. R is in 3NF, but not in BCNF.</p>
  </blockquote>
  
  <p>I've read through <a href="https://stackoverflow.com/questions/19749913/what-is-the-difference-between-3nf-and-bcnf">What is the difference between 3NF and BCNF?</a> and can understand the difference between 3NF and BCNF when referring to non-arbituary words within a database schema. I am ultimately lost when trying to determine the relationships with a reduced relation, as given in the problem. </p>
  
  <p>Could someone explain how the candidate keys were determined above, and why R is in 3NF but not BCNF?</p>