基本情報技術者試験 過去問解説

正規化とは?基本情報技術者試験 平成29年度 春期 午前 問25を解説

基本情報技術者試験 平成29年度 春期 午前 問25は、正規化に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

属性 a の値が決まれば属性 b の値が一意に定まることを,a → b で表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号 → 社員名である。この表記法に基づいて,図の関係が成立している属性 a〜j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。
関数従属関係図。a → {b, c, d, e}、b → {f, g, h}、e → {i, j}

この問題の出題ポイント

  • 正規化の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • データベース分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: 正規化。

選択肢

  1. テーブル1(a), テーブル2(b, c, d, e), テーブル3(f, g, h, i, j)
  2. テーブル1(a, b, c, d, e), テーブル2(b, f, g, h), テーブル3(e, i, j)正解
  3. テーブル1(a, b, f, g, h), テーブル2(c, d), テーブル3(e, i, j)
  4. テーブル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、弱点分析、復習リマインダーは段階的に提供予定です。