Search code examples
database-normalization

Decide whether a relationship is in BCNF


I check the definition on Wikipedia for BCNF

A relational schema R is in Boyce–Codd normal form if and only if for every one of its dependencies X → Y,
at least one of the following conditions hold:[4] 
X → Y is a trivial functional dependency (Y ⊆ X)
X is a superkey for schema R

Now if R={P,Q,S} and F={PQ->S, PS->Q, QS->P}

I think it is not in BCNF, am I right? If I am wrong, could you give me some idea why? Otherwise, if we are asked that which FD violates the BCNF, since any determinant in FD could be the superkey, what should we give?


Solution

  • Informally, a relation is in BCNF if every arrow for every FD is an arrow out of a candidate key. In this case, the candidate keys are PQ, PS, and QS, so every arrow is an arrow out of a candidate key. I think it's in BCNF.