Eroxl's Notes
Normal Form

A normal form is a property of a relation schema that characterizes it in terms of the redundancy it permits. Normal forms are defined with respect to functional dependencies (and in higher forms, multivalued and join dependencies) that hold on the schema.

Normal forms are ordered by strictness. Each successive normal form imposes additional constraints that eliminate further classes of redundancy:

That is, every BCNF relation is in 3NF, every 3NF relation is in 2NF, and every 2NF relation is in 1NF.

Summary

Normal Form Condition
1NF All attributes are atomic
2NF 1NF + no partial dependencies on the primary key
3NF 2NF + no transitive dependencies on the primary key
BCNF Every non-trivial FD has a super key as its determinant

The goal of applying successively stricter normal forms is to minimize update anomalies (insertion, deletion, and modification anomalies) that arise from redundant data storage without losing information. The process of restructuring a schema to satisfy a normal form is called database normalization.