Eliminating Anomalies from Functional Dependencies with BCNF