BCNF Vs 3Nf: - N.B., No Subset of A Key Is A Key
BCNF Vs 3Nf: - N.B., No Subset of A Key Is A Key
BCNF Vs 3Nf: - N.B., No Subset of A Key Is A Key
A Joe 1 C 2
No non-trivial FDs
Closure
• Want to find all attributes A such that X -> A is true, given a set of functional
dependencies F
define closure of X as X*
Closure(X):
c=X
Repeat
old = c
if there is an FD Z->V such that
Z c and
V c then
c=cUV
until old = c
return c
Closure(X):
c=X
Repeat
BCNFify
For every functional
old = c
dependency X->Y in a set F
if there is an FD Z->V such that
Z c and
of functional dependencies
V c then over relation R, either:
c=cUV – Y is a subset of X or,
until old = c – X is a superkey of R
return c