0

Given schema R = (A, B, C, D, E, G) and functional dependencies :

F = { A -> BC, BD -> E, AD -> E, CD -> AB }

BCNF decomposition:

  1. A -> BC, but A is not a superkey of R. Replace R by 2 relations: R1(A, B, C) and R2(A, D, E, G).
  2. AD -> E holds on R_2, but AD is not a superkey for R2. Replace R2 by 2 relations: R2(A,D,E) and R3(A,D,G)

Left with R1(A,B,C), R2(A,D,E), R3(A,D,G)

It is not dependency preserving as you would need to do a join to compute BD -> E.

Did I do this decomposition correctly? Also, how can I determine if it is a lossless decomposition?

philipxy
  • 14,867
  • 6
  • 39
  • 83
Carlisle Manson
  • 217
  • 1
  • 4
  • 8
  • 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 given. [See this answer.](https://stackoverflow.com/a/53386492/3404097) – philipxy Mar 25 '20 at 14:08
  • Quote the particular algorithm you are following & where you got it. We aren't taking your class. Please ask 1 question per post. When you go to address FD preservation & lossless decomposition, again--quote relevant definitions & theorems, apply them a you've seen in your textbook, show what you tried & ask where stuck. Please don't ask us to rewrite your textbook. PS Per the link above a cover FD not appearing in any component does not imply that it doesn't hold in the join since it might be implied by non-cover FDs in the components. Use given definitions, theorems & algorithms. – philipxy Mar 25 '20 at 14:17

0 Answers0