in Databases retagged by
661 views
3 votes
3 votes

Decompose the following table into BCNF:
$R(ABCD)$
$A \rightarrow C$
$C \rightarrow A$
$AB \rightarrow D$

The result is:

  1. (AC) (ABD)
  2. (AC) (CBD)
  3. (AB)(BAD)
  4. Both (A) & (B)
in Databases retagged by
by
661 views

4 Comments

@joshi_nitish

Consider a relation R

FD = {A -> BC, CD -> E, B ->D, E-> A }

Decompose into R1(ABCE) and R2(BD)

is it dependency preserving BCNF?

I think in this CD -> E is not preserved, but I have doubt that whether we can preserve by doing following operations:-

since, B->D, so we can write CD -> E as CB -> E, and put this dependency in R1(ABCE) and make it dependency preserved BCNF.

Are we doing same here also??

0
0

since, B->D, so we can write CD -> E as CB -> E,

@Subhanshu how are you getting CB -> E in your example ?

0
0
@Shubhanshu

no, CD->E is not preserved.
0
0

1 Answer

6 votes
6 votes
Best answer

The question is asking for decomposition into BCNF. It isn't asking if the decomposition is dependency preserving or not.

$R(ABCD) $
$A \rightarrow C$
$C \rightarrow A$ 
$AB \rightarrow D$ 

Here the candidate keys are $AB$ and $BC$.

For decomposing a relation into BCNF, we first find a functional dependency which is not trivial and violates the BCNF property.

We get $A \rightarrow C$, here $A$ is not a superkey, and hence causes a violation of BCNF.

So, decomposing it into $(A, C)$ and $(A, B, D)$. This is now in BCNF. Option (A).

Now if in the first step of "finding a functional dependency which is not trivial and violates the BCNF property", we chose $C \rightarrow A$, we get the following decomposition: 

$(C, A)$ and $(C, B, D)$. This is also in BCNF(but does not preserve dependencies). Option (B).

So, both (A) and (B) are correct.

selected by
Answer:

Related questions