データベース設計 (全65問中44問目)
No.44
属性xの値によって属性yの値が一意に定まることを,x→yで表す。図に示される関係を,第3正規形の表として正しく定義しているものはどれか。ここで,xの四角内に複数の属性が入っているものは,それら複数の属性すべての値によって,属性yの値が一意に定まることを示す。
出典:平成20年春期 問63
- 表1{a}
表2{b,c,d,e}
表3{f,g,h} - 表1{a,b,c,d,e}
表2{a,c}
表3{b,e,f,g,h} - 表1{a,b,c,d,e}
表2{b,c,f,g,h}
表3{b,c,h} - 表1{a,b,c,d,e}
表2{b,f,g}
表3{b,c,h}
- [出題歴]
- 基本情報技術者 H20春期 問56
分類
テクノロジ系 » データベース » データベース設計
正解
エ
解説
表が第3正規形であるためには、第2正規形であり、かつ非キー属性が主キーに対して推移的に関数従属していないことが条件となります。
例えば
(社員番号,氏名,所属部門コード,所属部門名)
という表があった場合、社員番号→所属部門コード,所属部門コード→所属部門名というように主キーに対して推移的に非キー属性の値が決まります。第3正規形では、このような主キーに対しての推移的な関数従属を排除するためにその属性を別表に移します。
(社員番号,氏名,所属部門コード)
(所属部門コード,所属部門名)
問題の図では、
表1{a,b,c,d,e}
表2{b,f,g}
表3{b,c,h}
第3正規形では上記のように表を分離することになります。(下線は主キー)
例えば
(社員番号,氏名,所属部門コード,所属部門名)
という表があった場合、社員番号→所属部門コード,所属部門コード→所属部門名というように主キーに対して推移的に非キー属性の値が決まります。第3正規形では、このような主キーに対しての推移的な関数従属を排除するためにその属性を別表に移します。
(社員番号,氏名,所属部門コード)
(所属部門コード,所属部門名)
問題の図では、
- a→b,c,d,e
- b→f,g
- b+c→h
表1{a,b,c,d,e}
表2{b,f,g}
表3{b,c,h}
第3正規形では上記のように表を分離することになります。(下線は主キー)
- 主キーであるaだけからなる独立した表となっていて他の属性とのリレーションがないため誤りです。
- 表1と表2の内容が重複しているので誤りです。(a→cの部分)
- 表2と表3の内容が重複しているので誤りです。(b+c→hの部分)
- 正しい。