戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2026年 69


問題文

関係データベースにおけるデータの正規化に関する次の記述中のa, bに入れる字句の適切な組合せはどれか。
正規化の主な目的として、データの重複を排除し、[ a ]ことが挙げられる。正規化には複数の段階があり、これを進めていくと、[ b ]。
ITパスポート 2026年  問69の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

関係データベースにおけるデータの正規化【ITパスポート 解説】

正解の理由

関係データベース(relational database:行と列で表現するデータベース)における正規化(normalization:データの冗長性を減らし整合性を保つ手法)の主な目的は、データの重複を排除して「一貫性を保つ」ことです。重複したデータがあると、更新や削除のときに矛盾(更新異常)が生じやすくなります。正規化を進めると、1つの大きな表にまとめられていた情報を必要に応じて分割します。つまり「一つの表が複数の表に分割される」ことになります。
このことから、a は「一貫性を保つ」、b は「一つの表が複数の表に分割される」を選ぶ組合せ、すなわち が正しい選択です。

解法ステップ

  1. 問題文で正規化の目的を問われていることを確認する。
  2. 正規化とは何を守るかを思い出す:冗長性を減らしてデータの整合性(=一貫性)を保つ点が最重要。
  3. 正規化の結果どうなるかを考える:データを分割して関係(キーでつなぐ)にする。表が分割される方向。
  4. 選択肢と照らし合わせ、a=「一貫性を保つ」、b=「一つの表が複数の表に分割される」を選ぶ()。

選択肢別の誤答解説

  • ア:a=「圧縮率を向上させる」/b=「一つの表が複数の表に分割される」
    • 誤り:正規化の目的は圧縮(データを小さくすること)ではありません。圧縮は別の技術領域です。ただし分割する説明(b)は合っていますが、aが不適切です。
  • イ:a=「圧縮率を向上させる」/b=「複数の表が一つの表に統合される」
    • 誤り:aが不適切で、bも正規化の動きとは逆です(統合は正規化ではなく正規化の逆作業、すなわち非正規化に近い)。
  • ウ:a=「一貫性を保つ」/b=「一つの表が複数の表に分割される」
    • 正しい:正規化はデータの一貫性を保つことが主目的であり、そのために表を分割して関係を設計します。よって が正答です。
  • エ:a=「一貫性を保つ」/b=「複数の表が一つの表に統合される」
    • 誤り:aは合っていますが、bが逆です。複数の表を一つにまとめるのは非正規化やパフォーマンス改善のための統合であり、正規化の段階で行うことではありません。

よくある誤解

  1. 正規化=データ圧縮
    • 誤りです。正規化は整合性(データの矛盾を防ぐ)を目的とします。結果として重複が減り保存量が減ることはありますが、本質は圧縮ではありません。
  2. 正規化すれば常に性能(速度)が上がる
    • 逆の場合もあります。テーブル分割により結合(JOIN)が増え、読み出し性能が下がることもあります。性能上の理由であえて統合(非正規化)する場合があります。
  3. 正規化は段階を踏むと無限に分割される
    • 実務では目的とトレードオフ(性能、運用)を見て段階を決めます。理論上はより厳密な正規形がありますが、すべて適用するわけではありません。

補足コラム

正規化の代表的な「正規形(normal form:正規化の段階を示すルール)」を簡単に紹介します。
  • 第1正規形(1NF):表の各列に単一値しか持たない(繰り返しグループを排除)。
  • 第2正規形(2NF):部分関数従属(主キーの一部にのみ依存する列)を排除。
  • 第3正規形(3NF):推移的関数従属(A→B→Cのような依存)を排除。
  • BCNF(ボイス・コッド正規形):さらに厳密な条件。
簡単な例(社員と部署):
  • 非正規(冗長な表)
    • employee(emp_id, name, dept_id, dept_name)
    • 同じ部署名が複数行で繰り返される → 更新異常の原因
  • 正規化後(分割)
    • employee(emp_id, name, dept_id)
    • department(dept_id, dept_name)
    • dept_name を department にだけ持たせ、department を参照する
SQL例:
CREATE TABLE department (
  dept_id INT PRIMARY KEY,
  dept_name VARCHAR(100)
);

CREATE TABLE employee (
  emp_id INT PRIMARY KEY,
  name VARCHAR(100),
  dept_id INT,
  FOREIGN KEY (dept_id) REFERENCES department(dept_id)
);
このように分割することで、部署名を1か所だけ更新すれば済み、データの一貫性が保たれます。

FAQ

Q1. 正規化は何段階あるのですか?
A1. 理論上は複数ありますが、実務でよく使うのは第1〜第3正規形です。必要に応じてBCNFやそれ以上も考えます。
Q2. 正規化すると必ずテーブル数が増えますか?
A2. 多くの場合は増えますが、目的(性能や運用)によっては一部を統合することもあります(非正規化)。設計はトレードオフです。
Q3. 正規化とデータ圧縮は関係ありますか?
A3. 直接の関係はありません。正規化は整合性重視、圧縮は保存容量や転送量を減らすことが目的です。

関連キーワード: 正規化, 正規形, 冗長性, 更新異常, テーブル分割, 非正規化, リレーショナルモデル, スキーマ設計, 参照整合性
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について