優待や割引でお得に法人向けサービスを発注するなら ➡SBIバリュープレイスの詳細はこちら

SQLにおける正規化のプロセスとその目的について

この記事では、データベース設計における「正規化」に焦点を当てます。正規化とは何か、その目的は何か、そして具体的な正規化のプロセスについて解説します。さらに、実例を交えて各ステップを詳しく説明します。

目次

正規化とは

正規化とは、データベースの設計プロセスの一環であり、データを効率的かつ整理された形で格納するための手法です。正規化の主な目的は、データの重複を削減し、データの一貫性を保つことです。

正規化の目的

正規化の主な目的は以下のとおりです。

  • データの重複を避ける
  • データの一貫性を確保する
  • クエリパフォーマンスを最適化する

正規化のプロセス

正規化には主に1NF(第一正規形)、2NF(第二正規形)、3NF(第三正規形)といったステップがあります。

1NF(第一正規形)

1NFは、すべての列がアトミックであるという条件を満たしている状態を指します。これは、各フィールドが1つの値しか持たないようにすることです。

顧客ID購入商品価格
1テレビ,エアコン30000,20000
2冷蔵庫40000
テーブル名称1:1NFに違反しているテーブル

1NFの正規化手順

上記のテーブルを1NFに正規化すると以下のようになります。

顧客ID購入商品価格
1テレビ30000
1エアコン20000
2冷蔵庫40000
テーブル名称2:1NFに正規化されたテーブル

2NF(第二正規形)

2NFは、1NFを満たし、さらに部分関数従属を排除する状態を指します。部分関数従属とは、主キーの一部だけに依存している非キー属性が存在する状態を言います。

2NFの正規化手順

部分関数従属を排除するため、以下のようにテーブルを分割します。

顧客ID購入商品ID
11
12
23
テーブル名称3:2NFに正規化された顧客テーブル
購入商品ID購入商品価格
1テレビ30000
2エアコン20000
3冷蔵庫40000
テーブル名称4:2NFに正規化された商品テーブル

3NF(第三正規形)

3NFは、2NFを満たし、さらに推移的関数従属を排除する状態を指します。これは、非キー属性が他の非キー属性に依存している状態を排除するものです。

3NFの正規化手順

推移的関数従属を排除するため、以下のようにテーブルを分割します。

購入商品ID購入商品
1テレビ
2エアコン
3冷蔵庫
テーブル名称5:3NFに正規化された商品テーブル
購入商品ID価格
130000
220000
340000
テーブル名称6:3NFに正規化された価格テーブル

まとめ

規化はデータベース設計において重要なステップです。この記事では、正規化の基本的なプロセスとその目的について説明しました。1NF、2NF、3NFと進むにつれて、データの一貫性と効率性が高まります。

コメント

コメントする

目次