平成26年度 春期 午前 問25
データベース
外部キーに関する問題
SQL 文において FOREIGN KEY と REFERENCES を用いて指定する制約はどれか。
- アキー制約
- イ検査制約
- ウ参照制約
- エ表明
答えと解説を見る
✓ これが正解ウ参照制約
解説
相手の表に実在する値だけを許す縛りが参照制約です。
設問は、外部キーと REFERENCES を使って指定する制約の名前を選ばせています。制約を問う設問は、その縛りが一つの表の中で完結するのか、それとも相手の表を見に行くのかという軸で分けると迷いません。REFERENCES という語は参照するという意味で、相手の表と列を名指しします。外部キーの宣言に添えて書くと、この列に入れてよいのは相手の表に実在する値だけだ、という縛りが付きます。これが参照制約です。守られることは二つあります。一つは、相手に無い値を入れられないこと、つまり宙に浮いた参照を作らせないことです。もう一つは、参照されている行を勝手に消せないことです。表と表のあいだで整合を保つための仕組みなので、関係データベースでは要になります。
ほかの選択肢はなぜ違うのか
- アキー制約:重複を許さない、空にしないといった条件を一つの表の中だけで守るもので、主キーや一意性の指定が担います。判定に相手の表を見に行かない点が、設問の書き方と合いません。
- イ検査制約:年齢は 0 以上、区分はこの値のどれか、といった値そのものの範囲を縛るものです。確かめるための材料がその列の中で閉じており、別の表を参照する形にはなりません。
- エ表明:複数の表にまたがる条件を、表の定義から切り離して独立に一本置くものです。列の宣言に書き添える形ではないので、設問が示す指定のしかたとは置き場所が違います。
出典:平成26年度 春期 応用情報技術者試験 午前 問25
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)