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

平成21年度 春期 午前 問34

データベース

参照制約に関する問題

関係データベースの “注文” 表又は “商品” 表の行を削除する場合,“注文明細” 表に対する操作として,適切な組合せはどれか。ここで,表定義中の実線の下線は主キーを,破線の下線は外部キーを表す。

注文(注文番号,受注年月日)
商品(商品番号,商品名称,商品単価)
注文明細(*注文番号*,*商品番号*,注文数量,注文金額)

〔削除時の操作〕

“注文” 表の行を削除する場合“商品” 表の行を削除する場合
アAA
イAB
ウBA
エBB
答えと解説を見る

✓ これが正解イA B

解説

注文はカスケード、商品は参照があれば拒否です。

この設問は、注文明細から注文と商品の両方の主キーを参照している場面で、上位側の行を削除する操作をどう扱うのが自然かを問うています。ですから、上位の実体が消えたときに、下位の実体を一緒に消してよいか、それとも消さずに削除自体を止めるべきか、という一点で見分けます。注文明細は、あくまで注文の内訳としての意味を持つ行で、注文そのものが消えれば内訳としての意味も消え、単独では残す価値がありません。ですから、注文側の行を消すときは、それを参照している明細も一緒に消してしまうやり方が自然に働きます。一方、商品は明細と独立して存在する実体で、明細から現に参照されているうちは、商品の情報が消えると明細の情報が意味を失います。ですから、参照している明細が残っているときは、商品側の削除そのものを止めるやり方が自然に働きます。よって、注文側は一緒に消す扱い、商品側は削除を止める扱いの組合せが答えになります。

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

この問題の用語

出典:平成21年度 春期 応用情報技術者試験 午前 問34(改変:原典の図表をテキストに書き起こした)

同じ用語が出る問題

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