基本情報技術者試験 過去問解説
正規化とは?基本情報技術者試験 平成29年度 春期 午前 問25を解説
基本情報技術者試験 平成29年度 春期 午前 問25は、正規化に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
属性 a の値が決まれば属性 b の値が一意に定まることを,a → b で表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号 → 社員名である。この表記法に基づいて,図の関係が成立している属性 a〜j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。

この問題の出題ポイント
- 正規化の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- データベース分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
- 関連タグ: 正規化。
選択肢
- アテーブル1(a), テーブル2(b, c, d, e), テーブル3(f, g, h, i, j)
- イテーブル1(a, b, c, d, e), テーブル2(b, f, g, h), テーブル3(e, i, j)正解
- ウテーブル1(a, b, f, g, h), テーブル2(c, d), テーブル3(e, i, j)
- エテーブル1(a, c, d), テーブル2(b, f, g, h), テーブル3(e, i, j)
正解
イ: テーブル1(a, b, c, d, e), テーブル2(b, f, g, h), テーブル3(e, i, j)
解説
関数従属の正規化問題。a→{b,c,d,e}, b→{f,g,h}, e→{i,j}。3 つのテーブルで非冗長に表現するには、テーブル1=(a, b, c, d, e) — a 起点の従属を保持、テーブル2=(b, f, g, h) — b 起点、テーブル3=(e, i, j) — e 起点。イが正解。
なぜ他の選択肢が違うのか
ア
テーブル1=(a) では a→b,c,d,e の従属を表現できない。
イ(正解)
テーブル1=(a,b,c,d,e), テーブル2=(b,f,g,h), テーブル3=(e,i,j) で全関数従属を保持。正解。
ウ
テーブル分割が従属関係に従っておらず情報損失や冗長が生じる。
エ
テーブル1=(a,c,d) では b,e への従属が分断され情報損失。
解き方の整理
正規化の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連用語
関連問題
前後の問題
平成29年度 春期 午前 の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。