I have a schema R = {A,B,C,D,E} and the set F of FDs:

F = {A --> BCDE, CD --> E, EC --> B}.

Candidate key = A Non - Prime Attributes = BCDE Prime Attributes = A

According to me, there is no partial dependency because no non-prime attribute is dependent on part of CK.

E and B are transitively dependent on A so the schema Ris not in 3NF.

Decomposing R into 3NF, I have three relations and three set of FDs :

R1(A,B,C,D)                         F1={A --> B,A --> C,A --> D}
R2(C,D,E)                           F2={CD --> E}
R3(E,C,B)                           F3={EC --> B}

My question is, Is my decomposition of R into 3NF is lossless and preserving all dependencies or not? And if not how can I decompose it into 3NF losslessly while preserving all dependencies.

  • $\begingroup$ Basically you should break it in only two relations. Once you break the table to resolve CD --> E, the other transitive dependency is automatically resolved because E is no longer part of the table which has B in it. $\endgroup$ Nov 2, 2018 at 0:54
  • $\begingroup$ The claims about partial & transitive FDs are wrong. The reasoning using them is wrong. Quote definitions. Also the FDs that hold in R are not just the ones in F. The FDs that would hold in Ri would not be just the ones in Fi. The ones that hold in Ri are the ones that hold in R whose attributes are all in Ri plus the ones implied by those. Find out what a FD cover is & quote a definition of CK. If you try to justify your claims by giving small clearly correct reasoning steps all the way to definitions quoted from a (good) textbook then you might notice how your claims & reasoning are wrong. $\endgroup$
    – philipxy
    Dec 22, 2020 at 2:17

1 Answer 1


So My decomposition is lossless and preserving all dependencies but there is no need for relation R3(E, C, B) because we already have A which can derive B in R1.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.