平成21年度 春期 基本情報技術者試験 午前 問32
テクノロジ/データベース“従業員”表を第3正規形にしたものはどれか。ここで,下線部は主キーを表す。 従業員(従業員番号,従業員氏名,〔技能コード,技能名,技能経験年数〕) (〔 〕は繰返しを表す)

出典:平成21年度 春期 基本情報技術者試験 午前 問32
- ア表ア
- イ表イ
- ウ表ウ
- エ表エ
正解:ウ
解説
第3正規形にするには,まず繰返し項目(技能コード,技能名,技能経験年数)を別表に分離し(第1正規形),さらに部分関数従属(従業員氏名は従業員番号だけで決まる)や推移的関数従属を排除します。結果として,「従業員(従業員番号,従業員氏名)」「従業員別技能(従業員番号,技能コード,技能経験年数)」「技能(技能コード,技能名)」の三つの表に分解するのが正しい形です。
選択肢ごとの解説
- ア誤り。1つ目の表は正しいですが,2つ目の表の主キーが技能コードだけになっており,技能経験年数が従業員に依存することを表現できていません。
- イ誤り。1つ目の表に技能コードを含む複合キーが使われており,従業員氏名が従業員番号だけに関数従属する部分関数従属が排除されていません。
- ウ正しい。(従業員番号,技能コード,技能経験年数),(従業員番号,従業員氏名),(技能コード,技能名)の三つに分解されており,部分関数従属も推移的関数従属も排除された第3正規形です。
- エ誤り。1つ目の表に技能経験年数が含まれておらず,2つ目の表では技能経験年数が従業員番号だけに単純従属する形になっており,技能ごとに異なる経験年数を正しく表現できません。