修了試験 2013-01-27実施分 基本情報技術者試験 問31
項目aの値が決まれば項目bの値が一意に定まることを,a→bで表す。 例えば,社員番号が決まれば社員名が一意に定まるという表現は,社員番号→社員名である。 この表記法に基づいて,図のような関係が成立している項目a~jを,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。

正答2
解説
正解は2です。 図は、aからb,c,d,eへ、bからf,g,hへ、eからi,jへの矢印で関数従属を表しています。 つまり、aが決まればb,c,d,eが決まり、bが決まればf,g,hが、eが決まればi,jが決まります。 推移的な従属を分離して第3正規形にすると、決定する側(a,b,e)ごとにテーブルを作ることになります。 【選択肢別解説】 1:× テーブル1がaだけなので、aとb,c,d,eの対応がどこにも記録されません。 また、テーブル3にはfからjがまとめられ、bやeとの関係も失われます。 2:○ テーブル1{a,b,c,d,e}はaを主キー、テーブル2{b,f,g,h}はbを主キー、テーブル3{e,i,j}はeを主キーとします。 すべての関数従属が表現され、b,eで3つのテーブルを結合できます。 3:× テーブル1{a,b,f,g,h}には、aからbを経てf,g,hが決まる推移的関数従属が残っています。 また、テーブル2{c,d}にはaがないので、どのaに対応する値か分からなくなります。 4:× テーブル1{a,c,d}にはbとeがありません。 そのため、aとb,eの対応が失われ、テーブル2やテーブル3と結合できません。 【ポイント】 第3正規形では、主キー以外の項目に従属する項目(推移的関数従属)を別テーブルに分けます。 分けた側のテーブルにも結合のための項目(ここではbやe)を残すことが大切です。まとめて解く
修了試験 2013-01-27実施分を通しで解く(80問)→