令和5年春期試験問題 午前問30
問30解説へ
図のような関係データベースの"注文"表と"注文明細"表がある。"注文"表の行を削除すると,対応する"注文明細"表の行が,自動的に削除されるようにしたい。参照制約定義の削除規則(ON DELETE)に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。

- CASCADE
- INTERSECT
- RESTRICT
- UNIQUE
広告
解説
参照制約が設定されているデータベースでは、主キーを含む行が削除されたり、更新されたりすると、参照関係が崩れることがあります。DBMSでは、参照整合性が損なわれるデータ操作が行われたときに、どのような形で参照整合性を回復するかを、外部キー制約のON DELETEやON UPDATEに指定しておくことができます。指定できる動作は次の5種類です。
- CASCADE
- 参照先のデータが更新・削除されると、対応する外部キーの値も自動的に更新・削除される
- RESTRICT
- 参照制約違反となるデータの更新・削除を拒否する
- NO ACTION(デフォルトの動作)
- 処理の終了時に参照整合性を確認し、違反していれば更新・削除を拒否する
- SET NULL
- 参照先のデータが更新・削除されると、対応する外部キーの値にNULLが設定される
- SET DEFAULT
- 参照先のデータが更新・削除されると、対応する外部キーの値にデフォルト値が設定される
CREATE TABLE 注文明細 (
…
FOREIGN KEY (注文番号) REFERENCES 注文(注文番号)
ON DELETE CASCADE
…
)
…
FOREIGN KEY (注文番号) REFERENCES 注文(注文番号)
ON DELETE CASCADE
…
)
- 正しい。CASCADEは、参照される側の行が削除・更新された場合、それを参照する側の行も同時に削除・更新する指定です。
- INTERSECTは、複数の表から両方に共通する行を抽出する集合演算を行うSQL文です。積集合を求めるのに使います。
- RESTRICTは、参照制約性を損なう削除や更新処理の要求に対して、データ更新または削除を禁止する指定です。
- UNIQUEは、データベースにデータを追加したり更新する際に、列や列のグループに格納される値が表内のすべての行で一意となるように制限する指定です。
広告