The document discusses Boyce-Codd normal form (BCNF) and third normal form (3NF). It begins by defining BCNF, providing an example of a relation that is not in BCNF and its lossless-join decomposition into relations that are in BCNF. It then discusses testing relations for BCNF and outlines algorithms for decomposing a relation into BCNF and 3NF. The key differences between BCNF and 3NF are that 3NF allows some redundancy but ensures dependency preservation, while BCNF eliminates redundancy but may not preserve dependencies.