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

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
関係データベースにおけるデータの正規化【ITパスポート 解説】
正解の理由
関係データベース(relational database:行と列で表現するデータベース)における正規化(normalization:データの冗長性を減らし整合性を保つ手法)の主な目的は、データの重複を排除して「一貫性を保つ」ことです。重複したデータがあると、更新や削除のときに矛盾(更新異常)が生じやすくなります。正規化を進めると、1つの大きな表にまとめられていた情報を必要に応じて分割します。つまり「一つの表が複数の表に分割される」ことになります。
このことから、a は「一貫性を保つ」、b は「一つの表が複数の表に分割される」を選ぶ組合せ、すなわち ウ が正しい選択です。
解法ステップ
- 問題文で正規化の目的を問われていることを確認する。
- 正規化とは何を守るかを思い出す:冗長性を減らしてデータの整合性(=一貫性)を保つ点が最重要。
- 正規化の結果どうなるかを考える:データを分割して関係(キーでつなぐ)にする。表が分割される方向。
- 選択肢と照らし合わせ、a=「一貫性を保つ」、b=「一つの表が複数の表に分割される」を選ぶ(ウ)。
選択肢別の誤答解説
-
ア:a=「圧縮率を向上させる」/b=「一つの表が複数の表に分割される」
- 誤り:正規化の目的は圧縮(データを小さくすること)ではありません。圧縮は別の技術領域です。ただし分割する説明(b)は合っていますが、aが不適切です。
-
イ:a=「圧縮率を向上させる」/b=「複数の表が一つの表に統合される」
- 誤り:aが不適切で、bも正規化の動きとは逆です(統合は正規化ではなく正規化の逆作業、すなわち非正規化に近い)。
-
ウ:a=「一貫性を保つ」/b=「一つの表が複数の表に分割される」
- 正しい:正規化はデータの一貫性を保つことが主目的であり、そのために表を分割して関係を設計します。よって ウ が正答です。
-
エ:a=「一貫性を保つ」/b=「複数の表が一つの表に統合される」
- 誤り:aは合っていますが、bが逆です。複数の表を一つにまとめるのは非正規化やパフォーマンス改善のための統合であり、正規化の段階で行うことではありません。
よくある誤解
-
正規化=データ圧縮
- 誤りです。正規化は整合性(データの矛盾を防ぐ)を目的とします。結果として重複が減り保存量が減ることはありますが、本質は圧縮ではありません。
-
正規化すれば常に性能(速度)が上がる
- 逆の場合もあります。テーブル分割により結合(JOIN)が増え、読み出し性能が下がることもあります。性能上の理由であえて統合(非正規化)する場合があります。
-
正規化は段階を踏むと無限に分割される
- 実務では目的とトレードオフ(性能、運用)を見て段階を決めます。理論上はより厳密な正規形がありますが、すべて適用するわけではありません。
補足コラム
正規化の代表的な「正規形(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やそれ以上も考えます。
A1. 理論上は複数ありますが、実務でよく使うのは第1〜第3正規形です。必要に応じてBCNFやそれ以上も考えます。
Q2. 正規化すると必ずテーブル数が増えますか?
A2. 多くの場合は増えますが、目的(性能や運用)によっては一部を統合することもあります(非正規化)。設計はトレードオフです。
A2. 多くの場合は増えますが、目的(性能や運用)によっては一部を統合することもあります(非正規化)。設計はトレードオフです。
Q3. 正規化とデータ圧縮は関係ありますか?
A3. 直接の関係はありません。正規化は整合性重視、圧縮は保存容量や転送量を減らすことが目的です。
A3. 直接の関係はありません。正規化は整合性重視、圧縮は保存容量や転送量を減らすことが目的です。
関連キーワード: 正規化, 正規形, 冗長性, 更新異常, テーブル分割, 非正規化, リレーショナルモデル, スキーマ設計, 参照整合性

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

