スポンサーリンク

【応用情報技術者試験】正規化を5分で理解!

「正規化って何?」
応用情報技術者試験のデータベース分野で超頻出ですが、

  • なぜ分ける?
  • どこまで分解する?
  • 第1正規形?第2?第3?

で初学者がかなり混乱しやすいテーマです。

この記事では、

  • 正規化とは?
  • なぜ必要?
  • 第1〜第3正規形
  • 試験での頻出ポイント

を5分で理解できるように解説します!


まず結論

正規化とは?

「データの重複や矛盾を減らすために表を整理すること」

です!


なぜ必要?

例えば:

学生ID名前科目教員
1田中DB佐藤
1田中NW鈴木
2鈴木DB佐藤

問題

同じデータが何度も出る!

  • 田中
  • DB
  • 佐藤

などが重複。


重複すると?

更新ミスが起こる!

例えば:

「佐藤先生 → 高橋先生」

に変更するとき…


一部だけ変更すると?

科目教員
DB高橋
DB佐藤

みたいな矛盾が発生!


そこで正規化

データを整理して重複を減らす!


本棚で理解しよう

かなり分かりやすい👇


整理前

全部1冊に詰め込む。

情報が重複してぐちゃぐちゃ。


正規化後

  • 学生表
  • 科目表
  • 履修表

に分ける!


正規化の基本

「1つの表に詰め込みすぎない」

これが大事。


第1正規形

超頻出!


条件

「繰り返し項目をなくす」


NG例

学生科目
田中DB, NW

OK例

学生科目
田中DB
田中NW

ポイント

1セル1データ


第2正規形


条件

「部分関数従属をなくす」

難しそうだけど簡単!


イメージ

「主キーの一部だけで決まる項目を分離」


学生ID科目ID学生名
1DB田中

問題

学生名は:

学生IDだけで決まる


だから分離!

  • 学生表
  • 履修表

へ分ける。


第3正規形


条件

「推移的関数従属をなくす」


社員ID部署ID部署名

問題

部署名は:

部署IDで決まる

つまり:

社員ID → 部署ID → 部署名

になっている。


だから分離!

  • 社員表
  • 部署表

へ分ける。


正規化のメリット

データ重複削減


更新異常防止


データ整合性向上


デメリット

表が増える

JOINが必要になる。


JOINとは?

複数表を結合するSQL

ここも超頻出。


応用情報で超頻出

かなり狙われる👇

  • 第1正規形
  • 第2正規形
  • 第3正規形
  • 関数従属
  • 主キー
  • JOIN

よくあるひっかけ

「正規化すると検索が速くなる」

→ 必ずではない!

JOIN増加で遅くなることもある。


1分で復習!

正規化

表を整理すること


第1正規形

繰り返し排除


第2正規形

部分関数従属排除


第3正規形

推移的関数従属排除


練習問題

問題

第1正規形の説明として最も適切なものはどれか。

推移的関数従属を排除する

繰り返し項目を排除する

主キーを削除する

表を結合する


解答

正解:イ

解説

第1正規形では、1セルに複数値を持たせず、繰り返し項目を排除します。


まとめ

正規化とは

「データ整理」


超重要

  • 第1正規形
  • 第2正規形
  • 第3正規形
  • 関数従属

まずは、

「重複を減らすために表を分ける」

このイメージを持つとかなり理解しやすくなります!


知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント