平成29年春期試験問題 午前問25
問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}
広告
解説
a~jの10個の属性の関連を関係データベースの表形式で表すと以下のようになります。この関係ではaが決まると他の全ての属性も定めるため、aが主キーになります。関係データベースでは、情報を損失せず、かつ関数従属性を保持したまま表を分解するためには正規化の手順に従う必要があるので、それに倣って表を分解していきます。
上記の表は、全ての属性が単一値から成り、主キーの一部に関数従属する属性がないため既に第2正規形です。つまり表の分割は、第3正規化の手順に基づいてを行うことになります。第3正規化では、主キー又は主キーの一部に推移的に関数従属する属性を別表に移します。設問の関係では、以下の2つの推移的関数従属があります。
上記の表は、全ての属性が単一値から成り、主キーの一部に関数従属する属性がないため既に第2正規形です。つまり表の分割は、第3正規化の手順に基づいてを行うことになります。第3正規化では、主キー又は主キーの一部に推移的に関数従属する属性を別表に移します。設問の関係では、以下の2つの推移的関数従属があります。
- a→b→{f,g,h}
- a→e→{i,j}
広告