2

I was following this tutorial for BCNF decomposition. The functional dependencies given are:

A->BCD
BC->AD
D->B

These are concerned with the relation R(A,B,C,D). The conditions for BCNF include:

The relation must be in 3NF and when X->Y, X must be a superkey

The given relation doesn't have a transitive FD but D->B is a partial FD--or is it that the three FDs represent 3 separate relations?

If they represent 3 separate relations, why is it that D is not a key and if they are all in the same relation then D->B is a partial functional dependency.

philipxy
  • 14,867
  • 6
  • 39
  • 83
Java Enthusiast
  • 1,161
  • 2
  • 15
  • 30
  • A partial FD has to do with *non-prime* attributes. A non-prime attribute is an attribute that isn't part of any candidate key. In R(A,B,C,D), every attribute is part of one or more candidate keys. So there are no partial FDs. – Mike Sherrill 'Cat Recall' Jun 25 '15 at 01:29
  • 2NF is no partial FD of a non-CK attribute on a CK. Also BCNF is no non-trivial FD on a non-superkey. So your alleged BCNF definition is wrong because it doesn't mention non-trivial FDs and it is redundant because it unnecessarily mentions 3NF. Forget web sites, dozens of academic textbooks are free online (although some are also poor). – philipxy Mar 12 '18 at 03:48
  • This is writing is garbled & the reasoning/argument is unclear. Also it is not clear what the 1 question is. Also we can't tell you what the person meant when they wrote your assignment. What exactly were you given? We know standard notation but how are you stuck finding what you were told the notation was? – philipxy Nov 30 '22 at 02:36
  • Your "I have these FDs" doesn't make sense. "These are all the FDs that hold"?--Not possible. "These are all the non-trivial FDs that hold"?--Not possible. "These are some FDs that hold"?--Question can't be answered. Find out what a *cover* is & what the exact conditions are to apply a particular definition/rule/algorithm. To determine CKs & NFs we must be given FDs that form a cover. Sometimes a minimal/irreducible cover. And the set of all attributes must be given. [See this answer.](https://stackoverflow.com/a/53386492/3404097) – philipxy Nov 30 '22 at 02:37

1 Answers1

2

If we write the given set of FDs with singleton right-hand side, we have -

A->B
A->C
A->D
BC->A
BC->D
D->B

We can see at once 2 transitive dependencies. We have A->D and D->B so we don't need A->B and also we have BC->A and A->D so we don't need BC->D. So now we have -

A->C
A->D
BC->A
D->B

or

A->CD
BC->A
D->B

The keys here are A, BC and CD. Since each attribute of the relation R comes at least once in each of the keys, all the attributes in your relation R are prime attributes.

Note that if a relation has all prime attributes then it is already in 3NF.

Hence the given relation R is in 3NF. I hope you get why you are completely wrong here - "The given relation though doesn't have a transitive FD but D->B is a partial FD ". I just proved that the relation is in 3NF which is a higher normal form then 2NF and hence in turns proves that the relation is in 2NF and hence no partial dependency.

To be in BCNF, for each functional dependency X->Y, X should be a key. We see that the last functional dependency D->B violates this since D is not a key. Therefore to convert into BCNF we can break our relationship R into R1 and R2 as -

R1(A,C,D)

R2(B,D)

Karup
  • 2,024
  • 3
  • 22
  • 48