正規化(1NF/2NF/3NF)とは?正規化の目的

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

正規化とは(全体像)

正規化とは、データベースの表を、重複(冗長)がなく、矛盾(不整合)が起きないように、整理するプロセスのことだ。

なぜ必要かというと、同じ情報をあちこちに書くと、片方だけ直し忘れて、矛盾(不整合)が起きるから。だから、情報を1か所にまとめて、重複をなくす。これが正規化だ。

整理整頓でたとえると分かりやすい。散らかって同じものが何か所にもある状態を、重複なく・矛盾なく、きちんと整理するイメージだ。

正規化は、段階を追って進める。

ここで一番のポイント。通常は、3NFまで整理する。「正規化は、5NFまで進めるのがふつう」と思い込むと誤りで、実務では3NFまでが基本だ。


詳しく:正規化の目的

ここが心臓部。段階と目的を表で押さえよう。

正規化のポイント

項目やさしい意味
第1正規形(1NF)1つのマスに1つの値(繰り返しをなくす)
第2正規形(2NF)1NFをさらに整理
第3正規形(3NF)2NFをさらに整理(通常はここまで)
目的重複(冗長)をなくし、矛盾(不整合)を防ぐ

正規化の目的は、重複をなくし、矛盾を防ぐことだ。ここで一番のポイント。正規化は、処理を速くするためのものではない。「正規化すると、必ず速くなる」と思い込むと誤りで、むしろ、速くしたいときは、あえて重複させる(非正規化)こともある。正規化と非正規化は、目的が逆だ。

わかりやすく言い換えると

身近なたとえで整理しよう。

正規化は、「散らかった情報を、重複なく・矛盾なく、整理整頓すること」のイメージ。同じ情報を1か所にまとめる。

段階は、「1NF→2NF→3NFと進め、通常は3NFまで」こと。要するに、3段階で整理するのが基本。

「目的は重複排除」というのは、重複をなくし矛盾を防ぐためで、速くするためではないということ。つまり、速くしたいときは、逆にあえて重複させる(非正規化)。


試験のツボ

🔴 一番出る:正規化の目的

①重複(冗長)をなくし、矛盾(不整合)を防ぐ

②同じ情報を1か所にまとめて、整理する

🔴 次に出る:段階

①第1正規形(1NF)→第2正規形(2NF)→第3正規形(3NF)

②通常は3NFまで整理する

🟡 押さえると安定:非正規化との違い

①正規化は重複排除が目的(性能向上ではない)

②速くしたいときは、あえて冗長化する非正規化を使う


よくある間違い

「正規化は、ふつう5NFまで進める」→ ✗  通常は3NFまで整理する。5NFなどは特殊なケース。

「正規化すると、必ず処理が速くなる」→ ✗  正規化の目的は重複排除と矛盾防止。速くしたいときは、あえて冗長化する非正規化を使う。

「第1正規形(1NF)は、1つのマスに複数の値を入れる形だ」→ ✗  1NFは、1つのマスに1つの値だけにする(繰り返し項目をなくす)形。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(正規化の正体)

📝 オリジナル問題 1 正規化の正体

正規化に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  2. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  3. 重複をなくし矛盾を防ぐために、表を整理していくプロセスである
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
エーアイコアラ
エーアイコアラ 解答・解説

解答は 3 です。

正規化は、重複をなくし矛盾を防ぐために、表を整理するプロセスなのです。散らかった情報を整理整頓するイメージなります。

選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うのです。

選択肢判定理由
1給与計算のしくみではない
2請求書の事務の話
3重複をなくし矛盾を防ぐ整理で正しい
4広告活動ではない

オリジナル問題2(段階)

📝 オリジナル問題 2 正規化の段階

正規化の段階に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与の計算しだいで、段階が決まるとされているものである
  2. 1NF→2NF→3NFと進め、通常は3NFまで整理するものだ
  3. 取引先への請求書の枚数しだいで、段階が決まるとされているのだ
  4. ふつう、5NFまで進めるのが基本だとされているものなのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 2 です。

正規化は、1NF→2NF→3NFと進め、通常は3NFまで整理するのです。3段階で整理するのが基本なります。

選択肢1の給与、選択肢3の請求書、選択肢4の「5NFまでが基本」は、いずれも違うのです。

選択肢判定理由
1給与計算で決まるのではない
21NF→2NF→3NF・通常3NFまでで正しい
3請求書の枚数で決まるのではない
4通常は3NFまで

オリジナル問題3(目的)

📝 オリジナル問題 3 正規化の目的

正規化の目的に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、必要だとされているものである
  2. 取引先へ請求書を郵送するときだけ、必要だとされているのである
  3. 処理を速くすることが、いちばんの目的だとされているものである
  4. 重複をなくし矛盾を防ぐためのもので、速くするのは目的ではない
エーアイコアラ
エーアイコアラ 解答・解説

解答は 4 です。

正規化は、重複をなくし矛盾を防ぐことで、速くするのは目的ではないのです。速くしたいときは、逆に冗長化する非正規化を使うなります。

選択肢1の給与、選択肢2の請求書、選択肢3の「速くするのが目的」は、いずれも違うのです。

選択肢判定理由
1給与計算のときだけではない
2請求書のときだけではない
3速くするのが目的ではない
4重複排除・矛盾防止が目的で正しい

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る