平成28年度 春期 午前 問27
データベース
関数従属に関する問題
関数従属を次のように表記するとき,属性 a 〜 e で構成される関係を第 3 正規形にしたものはどれか。
〔関数従属〕(枠と矢印の図)
(1) 属性 X の値が与えられると,属性 Y の値を一意に決めることができる。
図 … X|Y|Z の 3 枠の上に,X から出て Y に向かう矢印が 1 本。
(2) 属性 X と属性 Y の二つの値が与えられると,属性 Z の値を一意に決めることができる。
図 … X|Y|Z の 3 枠の上に,X と Y の 2 か所から出た線が合流して Z に向かう矢印が 1 本。
〔正規化する関係〕a|b|c|d|e の 5 枠
枠の上の矢印 3 本 … いずれも a から出る ⇒ a→b / a→c / a→d
枠の下の矢印 2 本 … b から出て c へ 1 本 ⇒ b→c
b と d から出た線が合流して e へ 1 本 ⇒ b と d の組→e
〔選択肢の 4 つ〕(原典は属性名を並べた枠。ここでは 1 つの関係を { } で囲んで写した)
ア {a,b,c,d} {b,d,e}
イ {a,b,c,d} {b,c} {b,d,e}
ウ {a,b,d} {b,d,c,e}
エ {a,b,d} {b,c} {b,d,e}- ア2 つの関係(a・b・c・d / b・d・e)
- イ3 つの関係(a・b・c・d / b・c / b・d・e)
- ウ2 つの関係(a・b・d / b・d・c・e)
- エ3 つの関係(a・b・d / b・c / b・d・e)
答えと解説を見る
✓ これが正解エ3 つの関係(a・b・d / b・c / b・d・e)
解説
経由して決まる組を外に出した、三つの関係になります。
図のままでは矢印の合流を見落とすので、まず矢印の一覧に書き直します。a から b へ、a から c へ、a から d へ、b から c へ、そして b と d の二つがそろって初めて e が決まる、の五本です。次に主キーを決めます。a だけで b と c と d が決まり、b と d から e も決まるので、主キーは a 一つです。主キーが単一の属性なので、その一部で決まるという状態は起こりえず、この関係はすでに第二正規形を満たしています。あとは推移関数従属、つまり主キー以外の属性を経由して決まるものを外へ出すだけです。c は b を経由して決まるので b と c の関係に切り出します。e は b と d を経由して決まるので b と d と e の関係に切り出します。元の関係には a と、a が直接決める b と d が残ります。よって a・b・d と、b・c と、b・d・e の三つに分かれた形が答えです。この正規化は毎回同じ手順で進みます。
ほかの選択肢はなぜ違うのか
- ア2 つの関係(a・b・c・d / b・d…:二つに分けた形ですが、片方に c が残ったままです。c は b を経由して決まるという関係が手付かずなので、外へ出すべきものが出ていません。
- イ3 つの関係(a・b・c・d / b・c…:b と c の関係を作ってはいるものの、元の側からも c を消していません。同じ属性が二か所に残るので、分解したつもりで重複が生き残る形です。
- ウ2 つの関係(a・b・d / b・d・c…:c と e を一つの関係に押し込んだ形です。その関係のキーは b と d の組になりますが、c は b だけで決まるためキーの一部で決まる状態が残り、第二正規形にすら届きません。
出典:平成28年度 春期 応用情報技術者試験 午前 問27(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)