BCNF is the short form of Boyce-Codd Normal Form and was created in 1947 by E.F Codd and R.F Boyce. BCNF is used mainly in database normalization to determine certain factors that can make a table vulnerable to certain anomalies. Before a functional dependency can occur in BCNF, certain properties must hold. For example, for a functional dependency A->D, A should be a super key, and the functional dependency should be in 3NF.
On the other hand, 3NF or Third Normal Form is used for a similar purpose, but the functional dependency can only hold if it is in 2NF. With this a non key attribute isn't transitively dependent on the primary key. It must also obey certain conditions. For example, for a functional dependency X->Y, Y should be considered as a super key, whereas X should be considered as a prime attribute meaning X should be included as one of the Candidate key. Another difference is that 3NF isn't as strong as BCNF.