I am trying to understand how to normalize a relation into BCNF form.
I know what is the definition of BCNF, and I know that in order to normalize it I need to eliminate every D -> X
where D
isn't part of a key candidate.
And to create a new tables of (D,X)
and (S,X)
.
I also read this threads:
But the problem I am facing is how to use the algorithm when X is part of the super key. I will explain:
Assume we have this relation:
R = (a,b,c,d,e)
FD = { {a,b}->{c} , {a,b}->{d} , {a,b}->{e} , {d}->{b} }
Obviously, the only super key is (a,b)
. And clearly, d
isn't a key candidate.
d->b
violating the BCNF but we can't just take b
out of the table since it is part of the super key.
So my question is: in this case, how can we normalize this relation into BCNF form?