平成23年度 特別 午前 問28
データベース
外部キーに関する問題
“社員扶養家族”表の列“社員番号”の値が“社員”表の候補キーに存在しなければならないという制約はどれか。
- ア一意性制約
- イ形式制約
- ウ参照制約
- エドメイン制約
答えと解説を見る
✓ これが正解ウ参照制約
解説
表をまたいで値の存在を求めるのが参照制約です。
設問の形をよく見ると、ある表の列の値が、別の表の候補キーに存在しなければならない、と二つの表を結び付けています。制約は、一つの表の中だけで判断できるものと、別の表を見に行かないと判断できないものに大きく分かれます。候補のうち、またぐ側にあるのは参照制約だけです。参照制約は、外部キーに入る値が、参照先の表に実際にある値でなければならない、という決まりです。この問いの言葉に置き換えれば、社員の一覧に載っていない社員番号を持つ扶養家族の行を作れない、ということになります。親のいない子を作らせない、と言い換えると働きがつかみやすくなります。効き目がよく分かるのは削除の場面です。参照されている側の行を消すと、参照している側の値が行き先を失いますから、削除を拒むのか、参照している行も併せて消すのか、値を空にするのか、といった振る舞いをあらかじめ決めておきます。参照先が候補キーだと書かれているのは、参照先の行が一つに定まる必要があるからです。一意であること自体は前提であって、この問いが尋ねている決まりそのものではない、という点に注意してください。
ほかの選択肢はなぜ違うのか
- ア一意性制約:一つの表の中で、その列の値が重複しないことを求める決まりです。判断に別の表を見に行きませんので、二つの表の間の結び付きを表せません。参照先の行が一つに定まるための土台ではありますが、問われている決まりとは別です。
- イ形式制約:値の書き方、たとえば桁数や記号の並び方を定める決まりです。判断の材料はその列に入っている値そのものだけで、同じ値が別の表にあるかどうかを問いません。
- エドメイン制約:その列に許された値の範囲に収まっていることを求める決まりです。範囲は列ごとにあらかじめ決めておくもので、別の表の中身によって変わるものではありません。
出典:平成23年度 特別 応用情報技術者試験 午前 問28
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)