令和元年秋期試験問題 午前問27

図のような関係データベースの"注文"表と"注文明細"表がある。"注文"表の行を削除すると,対応する"注文明細"表の行が,自動的に削除されるようにしたい。SQL文のON DELETE句に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。
27.png

  • CASCADE
  • INTERSECT
  • RESTRICT
  • UNIQUE
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
解説
参照制約が設定されているデータベースでは、主キーを含む行が削除されたり、更新されたりすると、参照関係が崩れることがあります。DBMSでは、参照整合性が損なわれるデータ操作が行われたときに、どのような形で参照整合性を回復するかを、外部キー制約のON DELETEやON UPDATEに指定しておくことができます。指定できる動作は、CASCADE、RESTRICT、NO ACTION、SET NULL、SET DEFAULTの5種類です。
27a.png
本問では、"注文明細"表から参照されている"注文"表の行が削除されたときに、対応する"注文明細"表の行を自動的に削除したいので、"注文明細"表の外部キー属性の定義に「ON DELETE CASCADE」と記述することになります。
CREATE TABLE 注文明細 (

FOREIGN KEY (注文番号) REFERENCES 注文(注文番号)
 ON DELETE CASCADE

)
  • 正しい。CASCADEは、参照される側の行が削除・更新された場合、それを参照する側の行も同時に削除・更新する指定です。
  • INTERSECTは、複数の表から両方に共通する行を抽出する集合演算を行うSQL文です。積集合を求めるのに使います。
  • RESTRICTは、参照制約性を損なう削除や更新処理の要求に対して、データ更新または削除を禁止する指定です。
  • UNIQUEは、データベースにデータを追加したり更新する際に、列や列のグループに格納される値が表内のすべての行で一意となるように制限する指定です。

この問題の出題歴


Pagetop