過去問解きまくり研究所 ホーム

平成21年度 春期 午前Ⅱ 問5

データベース設計

部分関数従属に関する問題

属性間の従属関係を次のように表記するとき,属性 a~e で構成される関係を第 3 正規形にしたものはどれか。

〔属性間の従属関係〕
(1) 属性 X の値が与えられると,属性 Y の値を一意に決めることができる。
(2) 属性 X と属性 Y の二つの値が与えられると,属性 Z の値を一意に決めることができる。

表記例(原典は図。属性を横に並べた箱から矢印を引いて従属を示す図を文字にした):

(1) [ X | Y | Z ]   X から Y へ矢印(X → Y)
(2) [ X | Y | Z ]   X と Y をまとめた線から Z へ矢印({X,Y} → Z)

〔正規化する関係〕

正規化する関係:

[ a | b | c | d | e ]
a → b
a → c
a → d
b → c
{b,d} → e
答えと解説を見る

✓ これが正解エ[ a | b | d ] [ b | c ] [ b | d | e ]

解説

キー a の表、b→c の表、{b,d}→e の表の三つに分けます。

関係 a~e のキーは a です。a から b、c、d が決まり、b と d がそろえば e も決まるので、a だけで全属性を決められます。キーが a 一つなので部分関数従属は起きず、問題になるのは推移的な従属です。a→b→c のように、キー以外の属性 b を経て c が決まる従属と、b と d の組を経て e が決まる従属があります。第 3 正規形にするには、これらを別の表に切り出します。b→c を表 [ b | c ] に、{b,d}→e を表 [ b | d | e ] に移し、残りを [ a | b | d ] とした分け方が正解です。キー以外の属性が決定する側になっている従属を探し、その左辺を主キーとする表へ外に出すと覚えると判断しやすくなります。

ほかの選択肢はなぜ違うのか

出典:平成21年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)