修了試験 2012-12-16実施分 基本情報技術者試験 問31
“従業員”表を第3正規形にしたものはどれか。 ここで,下線部は主キーを表す。 従業員(従業員番号,従業員氏名,{技能コード,技能名,技能経験年数}) ({ }は繰返しを表す)
正答3
解説
正解は3です。 繰返し項目を含む表を、第3正規形まで正規化する問題です。 関数従属を整理すると次のようになります。 従業員氏名は従業員番号だけで決まります。 技能名は技能コードだけで決まります。 技能経験年数は、従業員番号と技能コードの組合せで決まります。 第2正規形では、主キーの一部だけに従属する項目(部分関数従属)を別の表に分けます。 【選択肢別解説】 1:× 技能経験年数を技能コードだけを主キーとする表に置いています。 技能経験年数は従業員ごとに異なるので技能コードだけでは決まらず、どの従業員がどの技能を持つかの対応も失われます。 2:× 従業員番号と技能コードを主キーとする表に、従業員氏名が残っています。 従業員氏名は主キーの一部である従業員番号だけで決まるので部分関数従属が残り、第2正規形を満たしません。 3:○ 技能経験年数は「従業員番号+技能コード」の表に、従業員氏名は「従業員番号」の表に、技能名は「技能コード」の表に分けています。 部分関数従属も推移的関数従属もなく、第3正規形です。 4:× 技能経験年数を従業員番号だけを主キーとする表に置いています。 技能経験年数は技能ごとに異なるので、従業員番号だけでは決まりません。 【ポイント】 第1正規形は繰返しの排除、第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除です。 各項目が「何によって一意に決まるか」を書き出すと、正しい分割が見えてきます。まとめて解く
修了試験 2012-12-16実施分を通しで解く(80問)→