# Unable to decompose this relation to BCNF

I have a relation

``````R = { A, B, C, D, E, F, G, H, I }
``````

And functional dependencies

``````F ={
ABC -> DE
E -> C
AB -> F
C -> G
F -> H
H -> IJ
F -> B
}
``````

I am able to do simple BCNF decomposition but I can't decompose this. I have ABC as the only candidate key. Then I split it into two relations to get rid of the first FD that breaks BCNF, `E -> C`, giving me the relations

``````{ A, B, D, E, F, G, H, I, J } and { E, C }
``````

But now straight away I have lost the candidate key from the first relation. So does this mean I have now have to find a new candidate key for the first relation and then continue with the process of decomposing it until we are left with no relations that violate BCNF? Could someone show me how to work out this decomposition?

-
Are you sure `ABC` is the only candidate? Why not `ABE` or `AFC`? – ypercubeᵀᴹ Mar 19 '13 at 18:38
Yes, you're right. What is the best way of determining the candidate keys from functional dependencies? Doing it by observation is too prone to mistakes it seems. – csss Mar 19 '13 at 19:29