We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
For R to be in BCNF, in all functional dependencies (X->Y), determinant must be a candidate key, i.e. X must be a candidate key (or, simply a key. Caution: It can not be a superkey, it must be a candidate key).
Now, in the question, there are three FDs (functional dependencies). Let's list them down:
1. ab -> cd
2. ac -> bd
3. ad -> b
In (1), ab is primary key (given) so it is a candidate key. So, (1) satisfies BCNF. In (2), ac can uniquely determine all of the rest of attributes, i.e. bd. So, it must be a candidate key as well. Therefore, (2) satisfies BCNF. In (3), ad is not a candidate key, because it does not uniquely determine rest of the attributes (it determines only b).
So, in (3) ad is not a candidate key, therefore BCNF is not satisfied.
Note, that R is in 3NF. 3NF holds if for every FD:X->A in the relation -
(i) X is a superkey of R, or
(ii) A is a prime attribute of R
So, in (1) ab is the superkey, in (2) ac is the superkey, and in (3) b is a prime attribute (i.e. b is a subset of a candidate key). So, R is in 3NF.
Database Normalization #5
You are viewing a single comment's thread. Return to all comments →
For R to be in BCNF, in all functional dependencies (X->Y), determinant must be a candidate key, i.e. X must be a candidate key (or, simply a key. Caution: It can not be a superkey, it must be a candidate key).
Now, in the question, there are three FDs (functional dependencies). Let's list them down: 1. ab -> cd 2. ac -> bd 3. ad -> b
In (1), ab is primary key (given) so it is a candidate key. So, (1) satisfies BCNF. In (2), ac can uniquely determine all of the rest of attributes, i.e. bd. So, it must be a candidate key as well. Therefore, (2) satisfies BCNF. In (3), ad is not a candidate key, because it does not uniquely determine rest of the attributes (it determines only b).
So, in (3) ad is not a candidate key, therefore BCNF is not satisfied.
Note, that R is in 3NF. 3NF holds if for every FD:X->A in the relation - (i) X is a superkey of R, or (ii) A is a prime attribute of R So, in (1) ab is the superkey, in (2) ac is the superkey, and in (3) b is a prime attribute (i.e. b is a subset of a candidate key). So, R is in 3NF.
The original question appears here - http://db.grussell.org/section009.html