令和5年度 春期 午前 問30
データベース
参照制約に関する問題
図のような関係データベースの“注文”表と“注文明細”表がある。“注文”表の行を削除すると,対応する“注文明細”表の行が,自動的に削除されるようにしたい。参照制約定義の削除規則(ON DELETE)に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。
〔表の定義〕
注文 注文番号(主キー)| 注文日 | 顧客番号(外部キー) 注文明細 注文番号(主キー・外部キー)| 明細番号(主キー)| 商品番号(外部キー)| 数量
- アCASCADE
- イINTERSECT
- ウRESTRICT
- エUNIQUE
答えと解説を見る
✓ これが正解アCASCADE
解説
親を消すと子も連鎖して消える語句を指定します。
設問は、注文の行を削除したときに、対応する注文明細の行も自動的に削除されるようにするため、参照制約の削除規則に指定する語句を四つから選ばせています。見分けの軸は、その語句がそもそも削除規則として書けるものか、そして書けるとして親の行を消したとき子の行をどう扱うと定めるものか、という二段です。注文明細の側は注文番号を外部キーとして注文の側を参照しているので、親の行が消えたときに子の行をどうするかを、あらかじめ決めておく必要があります。CASCADE は段々に落ちる滝を語源とする語で、親の削除がそのまま子の行の削除へ波及すると定めます。設問が求めているのはまさにこの波及なので、この語句を指定することになります。
ほかの選択肢はなぜ違うのか
- イINTERSECT:INTERSECT は二つの問合せ結果の共通部分を取り出す集合演算の語で、そもそも削除規則として書ける語句ではありません。行が消えたあとの振る舞いを定めるはたらきを持ちません。
- ウRESTRICT:RESTRICT は削除規則として書ける語句ですが、子の行が残っているあいだは親の行を消させないという、正反対の定めになります。自動で消えるようにしたいという求めとは向きが逆です。
- エUNIQUE:UNIQUE は列に同じ値を二度入れさせないという一意性の制約を表す語で、削除のときの振る舞いを決めるものではありません。参照する側とされる側の関係にも直接は関わりません。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:令和5年度 春期 応用情報技術者試験 午前 問30
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和7年度 春期 午前 問25:多重度に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
- 令和2年度 10月 午前 問27(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)