この記事では、データベース設計における「正規化」に焦点を当てます。正規化とは何か、その目的は何か、そして具体的な正規化のプロセスについて解説します。さらに、実例を交えて各ステップを詳しく説明します。
目次
正規化とは
正規化とは、データベースの設計プロセスの一環であり、データを効率的かつ整理された形で格納するための手法です。正規化の主な目的は、データの重複を削減し、データの一貫性を保つことです。
正規化の目的
正規化の主な目的は以下のとおりです。
- データの重複を避ける
- データの一貫性を確保する
- クエリパフォーマンスを最適化する
正規化のプロセス
正規化には主に1NF(第一正規形)、2NF(第二正規形)、3NF(第三正規形)といったステップがあります。
1NF(第一正規形)
1NFは、すべての列がアトミックであるという条件を満たしている状態を指します。これは、各フィールドが1つの値しか持たないようにすることです。
顧客ID | 購入商品 | 価格 |
---|---|---|
1 | テレビ,エアコン | 30000,20000 |
2 | 冷蔵庫 | 40000 |
1NFの正規化手順
上記のテーブルを1NFに正規化すると以下のようになります。
顧客ID | 購入商品 | 価格 |
---|---|---|
1 | テレビ | 30000 |
1 | エアコン | 20000 |
2 | 冷蔵庫 | 40000 |
2NF(第二正規形)
2NFは、1NFを満たし、さらに部分関数従属を排除する状態を指します。部分関数従属とは、主キーの一部だけに依存している非キー属性が存在する状態を言います。
2NFの正規化手順
部分関数従属を排除するため、以下のようにテーブルを分割します。
顧客ID | 購入商品ID |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
購入商品ID | 購入商品 | 価格 |
---|---|---|
1 | テレビ | 30000 |
2 | エアコン | 20000 |
3 | 冷蔵庫 | 40000 |
3NF(第三正規形)
3NFは、2NFを満たし、さらに推移的関数従属を排除する状態を指します。これは、非キー属性が他の非キー属性に依存している状態を排除するものです。
3NFの正規化手順
推移的関数従属を排除するため、以下のようにテーブルを分割します。
購入商品ID | 購入商品 |
---|---|
1 | テレビ |
2 | エアコン |
3 | 冷蔵庫 |
購入商品ID | 価格 |
---|---|
1 | 30000 |
2 | 20000 |
3 | 40000 |
まとめ
正
規化はデータベース設計において重要なステップです。この記事では、正規化の基本的なプロセスとその目的について説明しました。1NF、2NF、3NFと進むにつれて、データの一貫性と効率性が高まります。
created by Rinker
¥4,554
(2025/01/18 14:22:31時点 Amazon調べ-詳細)
コメント