平成24年度 春期 午前Ⅱ 問8
データベース設計
推移関数従属に関する問題
第 2 正規形であるが第 3 正規形でない表はどれか。ここで,講義名に対して担当教員は一意に決まり,所属コードに対して勤務地は一意に決まるものとする。また,{ }は繰返し項目を表し,実線の下線は主キーを表す。
選択肢は原典では表(見出し行と 1 行のデータ)。各肢は列名を「,」で区切り,データの行を「行:」の後ろに書いた。(原典の実線の下線は …、破線の下線は〔破線の下線〕で表した)
- ア学生番号,講義名,担当教員,成績 の表。行:2122,経済学,山田教授,優
- イ社員番号,氏名,入社年月日,電話番号 の表。行:71235,山田 太郎,2001-04-01,03-1234-5678
- ウ社員番号,社員名,所属コード,勤務地 の表。行:15547,小林 明,75T,東京
- エ社員番号,身長,体重,趣味 の表。行:71234,170,62,{テニス,ゴルフ}
答えと解説を見る
✓ これが正解ウ社員番号,社員名,所属コード,勤務地 の表。行:15547,小林 明,75T,東京
解説
社員番号→所属コード→勤務地という推移関数従属が残る表です。
第2正規形は、主キーの一部だけに従属する非キー属性が無い状態、第3正規形はさらに、非キー属性が別の非キー属性を経由して主キーに従属することも無い状態です。社員番号、社員名、所属コード、勤務地の表では、主キーは社員番号だけなので部分関数従属は起こり得ず、第2正規形です。しかし、所属コードに対して勤務地が一意に決まるので、社員番号→所属コード→勤務地という推移関数従属が残っています。このため第3正規形ではありません。勤務地を、所属コードを主キーとする別の表に分ければ第3正規形になります。主キーが単一の属性なら部分関数従属は無いので、あとは非キー属性どうしの従属を探す、と順に確かめると判定できます。
ほかの選択肢はなぜ違うのか
- ア学生番号,講義名,担当教員,成績 の表。…:主キーは学生番号と講義名の組ですが、担当教員は講義名だけで一意に決まります。主キーの一部への部分関数従属があるので、第2正規形の条件を満たしていません。
- イ社員番号,氏名,入社年月日,電話番号 の…:主キーの社員番号に、氏名、入社年月日、電話番号がそれぞれ直接従属しており、非キー属性どうしの従属も条件に書かれていません。第3正規形まで満たしている表と考えられます。
- エ社員番号,身長,体重,趣味 の表。行:7…:趣味の列が繰返し項目になっていて、一つの欄に複数の値が入っています。第1正規形の条件を満たしておらず、第2正規形にも達していません。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)