Normalization is an alternative database design tool to data modeling that applies a series of rules to gradually improve the design. It involves identifying attributes that determine other attributes through functional dependencies and dividing tables to eliminate non-key attributes that are not functionally dependent on the primary key. The goal is to satisfy increasingly restrictive normal forms like 1NF, 2NF, 3NF and BCNF to reduce data redundancy and avoid undesirable characteristics like insertion, update and deletion anomalies.