Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It's in 2NF, not BCNF.</p> <blockquote> <p>INSTRUMENT(InstrumentID, InstrumentType, Tune, Performer, Adr, Phone, Availability)</p> </blockquote> <p>You really need to know the functional dependencies, but taking a guess I'd say the <code>adr</code> and <code>phone</code> are attributes of the performer, not the instrument. If attributes don't describe the key (in its entirety) then it's not BCNF. </p> <p>Assume each performer has at most one phone number and address. If so, you would have the functional dependency:</p> <pre><code>Performer -&gt; phone, adr </code></pre> <p>That is, there could be multiple instruments associated with the same performer, but in each case their phone and address would be the same (hence recorded redundantly). I'll guess that the key for the Instrument relation is <code>InstrumentId</code>, so there's also a FD saying at most one performer is associated with each instrument;</p> <pre><code>InstrumentId -&gt; Performer </code></pre> <p>That being the case, attributes <code>phone</code> and <code>adr</code> don't depend directly upon <code>InstrumentId</code>, but indirectly via <code>Performer</code>. Hence within this relation the FD <code>Performer -&gt; phone, adr</code> is a <em>transitive dependency</em>. Any relation containing transitive dependencies by definition cannot be in anything higher than 2NF (second normal form). So it's not in 3NF, nor BCNF.</p> <p>2NF doesn't allow <em>partial dependencies</em>. The good news is that since the key is only one attribute you don't have to worry about partial dependencies here: you can't have part of a single attribute.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload