基本情報技術者平成26年春期 午前問26

問26

項目 a の値が決まれば項目 b の値が一意に定まることを,a→bで表す。例えば,社員番号が決まれば社員名が一意に定まるという表現は,社員番号→社員名である。この表記法に基づいて,図のような関係が成立している項目 a~j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。
26.png/image-size:229×79
  • テーブル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}
  • [出題歴]
  • 基本情報技術者 H14秋期 問67
  • 基本情報技術者 H29春期 問25

分類

テクノロジ系 » データベース » データベース設計

正解

解説

a~jの10個の属性の関連を関係データベースの表形式で表すと以下のようになります。
26_1.png/image-size:430×75
この関係ではaが決まると他の全ての属性も定めるため、aが主キーになります。関係データベースでは、情報を損失せず、かつ関数従属性を保持したまま表を分解するためには正規化の手順に従う必要があるので、それに倣って表を分解していきます。
上記の表は、全ての属性が単一値から成り、主キーの一部に関数従属する属性がないため既に第2正規形です。つまり表の分割は、第3正規化の手順に基づいてを行うことになります。第3正規化では、主キー又は主キーの一部に推移的に関数従属する属性を別表に移します。
26_2.png/image-size:317×338
設問の関係では、以下の2つの推移的関数従属があります。
  • a→b→{f,g,h}
  • a→e→{i,j}
このため、表間を関連付けるb,eを加えた{b,f,g,h}および{e,i,j}を別表に移します。
26_3.png/image-size:216×166
分解された3つの表は「イ」と同様の組合せなります。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop