Example 1 Given: C -> BD B -> AC R(A, B, C, D) in BCNF? C -> BD: is C a superkey? Yes, since C+ = ABCD B -> AC: is B a superkey? Yes, since B+ = ABCD Yes, R is in BCNF! Example 2 Given: C -> BD B -> A R(A, B, C, D) in BCNF? C -> BD: is C a superkey? Yes, since C+ = ABCD B -> A: is B a superkey? No, since B+ = AB R is NOT in BCNF So, we decompose R into R1 (B, A) primary key: B R2 (C, D, B): primary key: C Example 3: Find a canonical cover for the following set of functional dependencies. C -> AD AC -> B B -> AC 1. Is A in the LHS of AC -> B extraneous? I.e., can we infer 'C -> B' from the above functional dependencies? Yes, since C+ = ABCD So, C -> ABD B -> AC 2. Is A in the RHS of 'C -> ABD' extraneous? I.e., can we infer 'C -> A' from {C -> BD, B -> AC}? Yes. So, C -> BD B -> AC 3. Is B in the RHS of 'C -> BD' extraneous? I.e., can 'C -> B' be inferred from {C -> D, B -> AC}? No, since C+=CD. 4. Similarly, D in the RHS of 'C -> BD' is not extraneous. 5. Similarly, A in the RHS of 'B -> AC' is not extraneous. 6. Similarly, C in the RHS of 'B -> AC' is not extraneous 7. We stop.