BCNF decomposition step without functional dependencies
When you decompose R(T) to find the BCNF, if the dependency X -> Y violates the BCNF, the decomposition that the classical algorithm requires is not R1(X) and R2(T-X), but R1(X+) and R2(T-(X+ - X)).

So the first decomposition, considering AB → C, should be:

R1(A, B, C, E) (since AB+ = ABCE)
R2(A, B, D) (= {ABCDE - (ABCE - AB))


In R1 the remaining dependencies are AB → C, C → E, C → B, while in R2 there are no (non-trivial) dependencies.

R1 is not in BCNF, since the two dependencies C → E, C → B violates that form (the only candidate keys are AB and AC). So it can be decomposed in R3(B, C, E), with dependencies C → E, C → B, and R4(A, C) (again without non-trivial dependencies).

So the final decomposition is:

R2 &lt; (A B D) ,
{ } &gt;

R3 &lt; (B C E) ,
{ C → E
C → B } &gt;

R4 &lt; (A C) ,
{ } &gt;


Note that the dependencies:

{ C D → A
A B → C }


are not preserved in this normalization.

Finally, note that if, during this process, you get a relation schema without (non-trivial) dependencies, this schema is already normalized, since the only candidate key is formed by all the attributes and there is no dependency that violates the BCNF.