When we design a database for an enterprise, the main objective is to create an accurate
representation of the data, relationships between the data, and constraints on the data
that is pertinent to the enterprise. To help achieve this objective, we can use one or
more database design techniques. In Chapters 11 and 12 we described a technique called
Entity–Relationship (ER) modeling. In this chapter and the next we describe another
database design technique called normalization.
Normalization is a database design technique, which begins by examining the relationships
(called functional dependencies) between attributes. Attributes describe some property
of the data or of the relationships between the data that is important to the enterprise.
Normalization uses a series of tests (described as normal forms) to help identify the
optimal grouping for these attributes to ultimately identify a set of suitable relations that
supports the data requirements of the enterprise.
While the main purpose of this chapter is to introduce the concept of functional dependencies
and describe normalization up to Third Normal Form (3NF), in Chapter 14 we take
a more formal look at functional dependencies and also consider later normal forms that
go beyond 3NF.