This document discusses database normalization and its goals of eliminating data anomalies. It defines various normal forms including 1NF, 2NF, 3NF, and BCNF. 1NF requires each attribute to hold a single value. 2NF eliminates partial dependencies by requiring non-prime attributes to depend on the whole primary key. 3NF removes transitive dependencies by requiring non-key attributes to depend only on the primary key. BCNF further restricts dependencies such that each non-trivial dependency is on a super key. The document provides examples to illustrate functional and partial dependencies and how different normal forms address them.