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

基本情報技術者 2014年 春期 午前(科目A) 問26


問題文

項目aの値が決まれば項目bの値が一意に定まることを、a → bで表す。例えば、社員番号が決まれば社員名が一意に定まるという表現は、社員番号→社員名である。この表記法に基づいて、図の関係が成立している項目a~jを、関係データベース上の三つのテーブルで定義する組合せとして、適切なものはどれか。
基本情報技術者 2014年 春期 午前(科目A) 問26の問題画像

選択肢

ア:テーブル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)

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

依存性保存と無損失分解【午前解説】

正解の理由

図の矢印は関数従属性(FD)を表します。図から読み取れる従属は次のとおりです。
  • a→b, a→c, a→d, a→e
  • b→f, b→g, b→h
  • e→i, e→j
    (c と d から出る矢印はありません)
イ(テーブル1: (a,b,c,d,e)、テーブル2: (b,f,g,h)、テーブル3: (e,i,j))は、決定項ごとに属性をまとめた分解です。
  1. テーブル1は a を主キーとし、a に直接従属する b,c,d,e をもつ。
  2. テーブル2は b を主キーとし、b に従属する f,g,h をもつ。
  3. テーブル3は e を主キーとし、e に従属する i,j をもつ。
推移的な従属(a→b→f など)が別のテーブルに分かれているので、どのテーブルでも非キー属性は主キーだけに直接従属しており、第3正規形になっています。すべてのFDがどれかのテーブルの中で完結している(依存性が保存されている)うえ、テーブル1の b・e でテーブル2・3と結合すれば元の情報を復元できる(無損失)ため、イ が適切です。

解法ステップ

  1. 図から全てのFDを列挙する(上の一覧)。c と d は他の項目を決定しない点に注意する。
  2. 決定項(矢印の出発点)ごとにグループを作る:a→{b,c,d,e}、b→{f,g,h}、e→{i,j}。
  3. 各グループを「決定項を主キーとするテーブル」にする。決定項 b・e はテーブル1にも残し、結合の手がかりにする。
  4. 選択肢と照合し、3つのグループどおりに分かれているものを選ぶ → イ。

選択肢別の誤答解説

  • ア: テーブル1 (a)、テーブル2 (b,c,d,e)、テーブル3 (f,g,h,i,j)。
    • a と、a で決まる b,c,d,e が別テーブルに分かれ、共通の項目がないので結合できません。f〜j も、決定項 b・e がないテーブルに入っており、どの値がどの b・e に対応するかが分からなくなります。
  • ウ: テーブル1 (a,b,f,g,h)、テーブル2 (c,d)、テーブル3 (e,i,j)。
    • a→c, a→d, a→e なのに、c,d,e が a と別のテーブルに置かれ、a との対応が失われます。また、テーブル1では f,g,h が主キー a に推移的に従属(a→b→f)しており、第3正規形になっていません。
  • エ: テーブル1 (a,c,d)、テーブル2 (b,f,g,h)、テーブル3 (e,i,j)。
    • テーブル2・3はイと同じですが、テーブル1に b と e がないため、a→b、a→e の関係が表せず、テーブル1とテーブル2・3を結合できません。

よくある誤解

  1. 「矢印が出ていない項目(c, d)も別テーブルにする」
    • c と d は a に従属するだけで、他を決定しません。a を主キーとするテーブルに置けばよく、独立したテーブルにすると a との対応が失われます(ウ)。
  2. 「決定項を元のテーブルから取り除いてよい」
    • b と e はテーブル2・3の主キーですが、テーブル1にも残さないと a との結び付きがなくなります(エ)。
  3. 「推移的従属をそのまま1つの表に入れてもよい」
    • a→b→f のような推移的従属を同じ表に残すと第3正規形にならず、更新時異状の原因になります。

補足コラム

  • 第3正規形への分解の基本は「決定項ごとに、その決定項を主キーとする表を作る」ことです。本問の3つの決定項 a・b・e がそのまま3つのテーブルの主キーになります。
  • 無損失分解の簡便な確認:分解したテーブル同士が、どちらかのテーブルの主キーとなる共通項目で結合できれば、元の関係を復元できます。イでは b(テーブル2の主キー)と e(テーブル3の主キー)がテーブル1に含まれています。

FAQ

Q1: テーブル1に b と e が残っているのは冗長ではないのですか?
A1: 冗長ではありません。b と e はテーブル2・3を参照するための外部キーで、これがないと a とテーブル2・3の情報を結び付けられません。 Q2: この分解で依存性は保存されていますか?
A2: はい。a→b,c,d,e はテーブル1、b→f,g,h はテーブル2、e→i,j はテーブル3の中でそれぞれ完結しているので、すべてのFDを各テーブルで検査できます。

関連キーワード: 関数従属性、第3正規形、推移的関数従属、無損失分解、依存性保存、主キー、外部キー
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

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

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