-2

I have a homework problem to determine a lossless join dependency decomposition for the following:

R(A, B, C, D, E, F, G, H, I, J)

with the functional dependencies:

AB -> CG
C -> A
BD -> EF
ABC -> DEFG
G -> H
G -> I
G -> J
H -> IJ
J -> I
I -> H

I know the first step is to determine a minimal/canonical cover which I've done here:

AB -> C
C -> A
BD -> E
BD -> F
BC -> D
BC -> G
G -> J
H -> J
J -> I
I -> H

However I don't understand what to do after this.

I actually think this question: Designing lossless-join, dependency preserving, 3NF database is what I am looking for but I don't understand any of the answers there. The links to the first answer are dead so I can't find the algorithm.

What are step-by-step instructions on how to do this?

philipxy
  • 14,867
  • 6
  • 39
  • 83
Hitomi86
  • 45
  • 7
  • Why don't you know what to do next? What is your textbook name & edition & where are you stuck in it? PS "With" FDs is not what you mean. That needs to be a *closure*. – philipxy Jan 13 '19 at 00:52

1 Answers1

1

Yes, the first step is to find a minimal cover. Then, you should merge dependencies which have the same left hand side. In your case, for example, BD->E and BD->F can be merged into BD->EF. After merging all possible dependencies in your minimal cover, each dependency can be a relation (e.g. R1(B,D,E,F). Then, you get dependency preserving 3NF relations. But, it might not be lossless and you might need to convert it to a lossless scheme by adding another relation.

These are some useful resources:

Emre
  • 933
  • 15
  • 27