BCNF decomposition - what am I doing wrong

359 views Asked by At

This is a question from Databases course (now self-study at coursera.org), fall 2011.

Consider the following relational schema:

R1(A,B,C), R2(B,D)

(a) Consider the schema and suppose that the only functional dependencies that hold on the relations in this schema are A → B, A → C, B → A, A → D, and all dependencies that follow from these. Is the schema in BCNF?

(b) Suppose we omit dependency A → D from part (a). Is the schema in BCNF?

The answer to (a) question is yes, it does correspond to my answer. The correct answer to the second question is yes as well. But it doesn't correspond to my answer.

When we omit A → D dependency, then D is not more depenedent on B and therefore B is not the key in B → D. So, we have BCNF violation.

What am I doing wrong?

1

There are 1 answers

6
Erwin Smout On

And where is the dependency B->D that you mention in the original problem statement ?

Besides.

The original problem statement is itself fairly flawed. It is highly unusual to talk of dependencies that "span" more than one relation schema in a database design. A->D does exactly that.

It presumably means that the FD is supposed to hold in the relation that results from making the natural join between the given relation schemas, but that is a very unorthodox assumption wrt classical normalization theory. Classical normalization theory as I know it does not deal with such FD's.