BCNF decomposition splits on a recomputed violating dependency.

highlighted = computed this step

BCNF decomposition

The decomposition step uses the violating dependency itself. One child keeps the determinant together with the determined attributes; the other keeps the determinant with the remaining attributes. Then each child is checked again. Note: the tree render follows that recursive split.

split on violation\text{split on violation}

Split tree

The root split has 2 children and the final decomposition has 2 pieces. Note: the table below the tree is the compiled leaf list.

children=2,pieces=2\text{children}=2,\quad \text{pieces}=2

FD closure, candidate keys, BCNF decomposition, and lossless-join checks are exact finite computations on tiny schemas; dependency inference beyond these traces and physical schema design tradeoffs are beyond this book - no product claims.

BCNF decompositionABCB->CBCBCNFABBCNF decompositionschemaABBC

Summary

BCNF decomposition is deterministic here: choose the first recomputed violation, split, project dependencies, and recurse. Note: the finite decomposition tree is exact for the pinned dependencies, not a claim about all physical schema design choices.

recursive BCNF split\text{recursive BCNF split}