Normalization
BCNF Violation
A non-trivial dependency violates BCNF when its left side is not a superkey.
BCNF violation
BCNF asks every non-trivial dependency to have a superkey on its left side. If the left side is not a superkey, the dependency can describe repeated facts that belong in a smaller relation. The compiler finds violations by recomputing superkey status from closure. Note: the violating dependency appears in the decomposition tree.
Violating dependency
The compiled schema has 1 BCNF violation and decomposes into 2 pieces. Note: the render shows which dependency caused the split.
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.
Summary
A BCNF violation is not guessed from prose; it is found by closure and superkey recomputation. Note: this book proves exact behavior on finite schemas, while practical dependency discovery and physical design tradeoffs remain outside the model.