本記事では正規化を超簡単にシンプルに説明します。
他の記事では学術的にDB設計を書きましたが、それを抜きにしてシンプルな説明のみを使っています!
正規化とは
正規化とは、**「データの繰り返しを無くす」**ことです。
具体的に見てみると、以下のようなテーブルが存在したとき、「商品C」という商品名が繰り返していることがわかります。
この繰り返しを無くすために、2枚目の画像のように、商品テーブルを作成して、1:nの関係を構築していくのが正規化です。
正規化のやり方
正規化のやり方は一般的に「第1正規形」→「第2正規形」→「第3正規形」という順序で行っていきます。
これを超簡単に説明すると、以下のように言い換えられます。
1.横方向の繰り返しを無くす
2.縦方向の繰り返しを無くす
横方向の繰り返しを無くす(=第1正規形)
まず横方向の繰り返しを無くしていきます。
以下のようなテーブルが存在したとき、横方向に商品A・商品C・商品Dのように商品が繰り返し並んでいることがわかります。
これを下の図のように縦方向に伸びるように並び替えます。
縦方向の繰り返しを無くす(=第2正規形&第3正規形)
次に縦の繰り返しについて見ていきましょう。
注文番号0001に注目してみると、縦方向に繰り返しているのはカラム名が灰色になっている部分です。
そして、青色の部分はバラバラになっています。
よって縦方向の繰り返しを無くすには、青色の部分を「商品テーブル」として分離させる必要があります。
そうすると以下のように、注文番号で紐付けられた2つのテーブルが作成できます。
しかしまだ縦方向の繰り返しが存在していることにお気づきでしょうか?
それはカラム名が青色の部分と赤色の部分です。
これを別のテーブルとして作成して、1:nの関係を作っていきます。
最後に、まだユーザーテーブルの送料区分が繰り返しとなっているので別のテーブルを作成します。
まとめ
正規化は難しく言葉で説明すると、「第1正規形」「推移従属」などの言葉が出てきます。
しかし、正規化で行っていることは以下の2点であることを理解しておいておください。
1.横の繰り返しを無くす
2.縦の繰り返しを無くす
このシンプルなことを理解しておけば正規化はOKなのです!