基本情報技術者試験の重要知識:データベース正規化とは?
正規化(Normalization)とは、データベースの表(テーブル)構造を整理し、冗長性を減らしてデータの一貫性と整合性を保つ手法です。
リレーショナルデータベース(RDB)の設計において、更新・挿入・削除などの操作時に矛盾や不整合が起きないようにするために用いられます。
正規化の目的
- データの重複(冗長性)を排除する
- データの一貫性を保つ
- 更新時の不整合(更新異常)を防ぐ
- 将来的な拡張・管理をしやすくする
主な正規化の段階(正規形)
- 第1正規形(1NF):
繰り返し項目や複数の値を1つのセルに持たせない(すべての列が単一値)
- 第2正規形(2NF):
主キーの一部にしか依存しない属性を分離(部分関数従属の排除)
- 第3正規形(3NF):
主キー以外の項目に依存する属性を分離(推移的関数従属の排除)
例:社員データの非正規表
社員ID | 氏名 | 部署名 | 部署電話番号
-------------------------------------
101 | 田中 | 営業部 | 03-1111-1111
102 | 鈴木 | 営業部 | 03-1111-1111
103 | 佐藤 | 開発部 | 03-2222-2222
このような表は部署ごとに同じ情報が繰り返されており、正規化が必要です。
正規化の後(3NF)
- 社員テーブル: 社員ID・氏名・部署ID
- 部署テーブル: 部署ID・部署名・部署電話番号
正規化のメリット
- データの重複がなくなり、整合性が保たれる
- 不要な更新・削除のミスを防げる
- テーブルが論理的に整理され、管理しやすい
注意点(デメリット)
- テーブルが細かく分かれすぎると、クエリが複雑になる
- パフォーマンスを考慮して、あえて正規化しない場合(非正規化)もある
基本情報技術者試験での出題ポイント
- 第1〜第3正規形の違いを理解しているか
- 非正規表から正規化の過程を読み取れるか
- 更新異常(挿入・削除・更新)について理解しているか
学習のコツ
- 例題ベースで、「何が問題なのか」「どう分ければいいか」を整理して考える
- 関数従属・主キーの関係を図や矢印で書き出して可視化する
まとめ
- 正規化とは「データの整理整頓」
- 第1〜第3正規形を理解して、設計の基本を身につける
- 試験では構造の問題点や改善方法が問われやすい
データベース正規化は、システム開発や運用において非常に重要な設計技術です。
基本情報技術者試験では、表の構造を見て「どこに問題があるか」「どう改善するか」を判断する力が求められます。