Schema: R(A,B,C,D,E,F,G,H,I,J)
and functional dependencies FD = { A->DE, IJ->H, I->A, J->FG, G->BC }
Question: Is relation in BCNF?
Answer: It's not because A
is not superkey.
I'm aware under which conditions relation is in BCNF, but what confuses me all the time is superkey
. Could anyone explain why in the answer A
is not superkey? And why not pick, for example, IJ
or I
as a superkey? k
The definition of BCNF requires that no non-trivial functional dependency of a relational
R
has a determinant (left hand side) which is a superkey. A superkey being an attribute or set of attributes that determines all the attributes of the relation. So, if at least a dependency has a determinant which is not a superkey, the relation is not in BCNF.In this example we could start from any dependency. Let’s start from
A → DE
. We can check ifA
is a superkey by calculating its closure and see if it contains all the attributes:No other attribute can be added, so
A
is not a superkey ofR
, and the relation is not in BCNF.Similarly we could see that
I
,J
, andG
are not superkeys.Actually this relation has a unique candidate key,
IJ
, fact that can be checked by calculating its closureIJ+
. This means that each superkey must containIJ
.