BCNF, 3NF, and candidate keys
<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>