Database normalization is the process of organizing the columns and tables of a relational database to minimize data redundancy.
involves decomposing a table into less redundant tables without losing information and defining foreign keys in the old table
and referencing the primary keys of the new ones.
The objective is to isolate data so that additions, deletions, and modifications of an attribute can be made in just one table and then propagated
through the rest of the database using the defined foreign keys.
Edgar F. Codd introduced the concept of normalization
and what we now know as the First normal form (1NF) in 1970.
Codd went on to define the (2NF) Second normal form and (3NF) Third normal form in 1971,
and Codd and Raymond F. Boyce defined the Boyce-Codd Normal Form (BCNF) in 1974.
A relational database table
is often described as "normalized" if it meets Third Normal Form.
Most Third Normal Form tables are free of insertion, update, and deletion anomalies.
The relational model separates the logical design from the physical design:
DBMS performance is a matter of
- physical design using indexes,
- view materialization,
- big buffers.
It is not a matter of changing the logical design.