The document provides an overview of functional dependencies and database normalization. It discusses four informal design guidelines for relational databases: 1) design relations so their meaning is clear, 2) avoid anomalies, 3) avoid null values, and 4) avoid spurious tuples. It then covers functional dependencies, inference rules, equivalence, and normal forms including 1NF, 2NF, 3NF and BCNF. The goals of normalization are also summarized as reducing redundancy, anomalies, and producing high quality schemas. Examples are provided to illustrate each concept.