ITパスポート 令和8年度 問69:databaseに関する問題
関係データベースにおけるデータの正規化に関する次の記述中の a,b に入れる字句の適切な組合せはどれか。正規化の主な目的として,データの重複を排除し,[a] ことが挙げられる。正規化には複数の段階があり,これを進めていくと,[b]。[表] a/b: ア 圧縮率を向上させる/一つの表が複数の表に分割される, イ 圧縮率を向上させる/複数の表が一つの表に統合される, ウ 一貫性を保つ/一つの表が複数の表に分割される, エ 一貫性を保つ/複数の表が一つの表に統合される
- aa=圧縮率を向上させる, b=一つの表が複数の表に分割される
- ba=圧縮率を向上させる, b=複数の表が一つの表に統合される
- ca=一貫性を保つ, b=一つの表が複数の表に分割される正答
- da=一貫性を保つ, b=複数の表が一つの表に統合される
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c です。
正規化とは、データベースで同じ情報があちこちに重複して書かれてしまうのを整理して、矛盾(食い違い)が起きないようにする作業です。だから空欄aは「一貫性を保つ」。
そして整理を進めると、ごちゃ混ぜだった大きな1つの表が、目的ごとの小さな複数の表に分けられていきます。だから空欄bは「一つの表が複数の表に分割される」。両方そろう c が正解。
👉 覚え方:正規化=重複をなくして“矛盾ゼロ”、表は分かれていく。
ほかの選択肢:a・b の「圧縮率」は正規化の目的ではない/d は「統合される」が逆(正規化は分けていく方向)。
なぜこれが正解か
正解は c。正規化の主目的はデータの重複を排除し、更新時の矛盾を防いでデータの一貫性(整合性)を保つこと(a=一貫性を保つ)。また正規化を進めると、1つの表が関連ごとに複数の表へ分割されていく(b=一つの表が複数の表に分割される)。よって「a=一貫性を保つ/b=分割される」のcが正しい。
各選択肢の解説
- a・b:aを「圧縮率を向上させる」とするが、正規化の目的は容量圧縮ではなく整合性確保。誤り。
- d:bを「複数の表が一つの表に統合される」とするが、正規化は分割の方向。逆なので誤り。
- c:a=一貫性を保つ、b=複数の表に分割される(正解)。
覚え方・ひっかけ注意
正規化=「重複を消して矛盾を防ぐ(一貫性)」+「表は分割される」。引っかけは(1)目的を“圧縮率”とすり替える、(2)分割を“統合”と逆にする、の2パターン。「分けて整える」が方向と覚える。
理論的背景
データベースの正規化(Normalization)はエドガー・コッドが1970年代に提唱した関係データベース設計理論の中核であり、正解cの「一貫性を保つ/一つの表が複数の表に分割される」が正確な定義。正規化の主目的は更新異常(挿入異常・削除異常・修正異常)の排除によるデータ一貫性(Consistency)の確保であり、データ重複の排除によりこれを実現する。
正規化の段階別定義:第1正規形(1NF):各セルに原子値(繰り返し属性の排除)。第2正規形(2NF):1NF+部分関数従属の排除(複合主キーの一部にのみ依存する属性を別テーブルへ分離)。第3正規形(3NF):2NF+推移関数従属の排除(非キー属性が別の非キー属性に依存する場合に分離)。ボイスコッド正規形(BCNF):3NF+候補キーによる決定関係の正規化。第4正規形・第5正規形も理論上存在するが実務での適用は稀。
正規化のトレードオフ:テーブル分割により更新整合性は高まるが、クエリ時にJOIN操作が増加してパフォーマンスが低下することがある。大規模データウェアハウス(DWH)では意図的に非正規化(デノーマライゼーション)を行いクエリ速度を優先するスタースキーマ・スノーフレークスキーマが使われる。
実務での使われ方
実際のデータベース設計ではER図(エンティティ関係図)を作成し、エンティティとその関係を定義した後に正規化を適用してテーブル定義に落とし込む。MySQL Workbench・pgAdmin・dbdiagram.ioなどのツールでER図からDDL(Data Definition Language)を自動生成できる。マイクロサービスアーキテクチャでは各サービスが独立したデータベースを持ち(Database per Service パターン)、サービス間の整合性は最終整合性(Eventual Consistency)で管理するため、強い正規化より柔軟なデータモデルが採用されるケースが増えている。
正規化とインデックス設計は密接に関連しており、外部キー列・JOIN頻度の高い列・WHERE条件に使われる列に適切なインデックスを設定することが性能最適化の基本。
試験での位置づけ
正規化はITパスポートのデータベース分野の最頻出テーマの一つ。「正規化の目的(一貫性確保・更新異常排除)」と「正規化の結果(テーブルが分割される)」の2点が確実に問われる。「圧縮率向上」(選択肢aとb)は正規化とは無関係な誤り概念であり、「テーブルが統合される」(選択肢bとd)は正規化ではなく非正規化の説明。近年のITパスポート試験では正規化の具体的な適用(どの属性を分離するか)を問う問題も出題されている。基本情報技術者試験では第1〜第3正規形の具体的な識別・SQL(CREATE TABLE・外部キー制約・JOIN操作)での正規化テーブルの扱い・トランザクション分離レベルとの関係まで出題される。
選択肢の発展補足
圧縮率という概念がなぜ誤り選択肢として提示されるかを考察すると、「データの重複排除」という説明が「ストレージ容量節約=圧縮」という連想を呼びやすいからである。しかしデータ圧縮(gzip・LZ4・zstd等)はビットレベルのエンコード処理であり、正規化の論理的なテーブル設計とは全く異なる技術レイヤー。カラム指向データベース(BigQuery・Redshift・ClickHouse等)では圧縮とクエリパフォーマンスの関係が設計上重要になるが、これは正規化とは独立した最適化手法。非正規化(デノーマライゼーション)については、OLTPシステム(日常の取引処理)では正規化が有効だがOLAPシステム(分析・集計クエリ)では結合操作を減らすために意図的に非正規化(冗長データを持たせる)することがBIシステム設計の常識となっており、「正規化が常に正しい」という思い込みを避けることが実務上重要。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和8年度 問69/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。