正規化とは、関係データベース(RDB)を設計する際に、データの重複(むだ)を排除し、データの追加・更新・削除を行うときに不整合(矛盾)が発生しないようにテーブルを整理・分割する作業のことです。正規化には段階があり、テーブル内の1つのマス目に1つの値だけが入るようにする「第1正規形」、主キーの一部に従属するデータを別テーブルに分ける「第2正規形」、主キー以外の項目に従属するデータをさらに分ける「第3正規形」と進めることで、綺麗でエラーの起きにくいデータベース構造になります。
1つの「売上伝票テーブル」の中に『顧客の住所』や『商品の単価』をそのまま書き込んでいると、同じ顧客が何度も買い物をするたびに同じ住所が重複して登録され、無駄が生じます。また、顧客が引っ越して住所を変更する際、過去のすべての伝票データを書き換えなければならず、更新ミスが起きやすくなります。そこで『売上テーブル』『顧客テーブル』『商品テーブル』に分割して顧客IDで結びつけること、これが「正規化」の具体例です。