SC情報処理安全確保支援士試験 午前Ⅰ
令和7年度春期 情報処理安全確保支援士 午前Ⅰ 問10
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア〔SQL文
- イCREATE TABLE商品 ( 商品コードCHAR(4) PRIMARY KEY 、 商品名VARCHAR(64)
- ウCREATE TABLE受注 ( 受注番号INTEGER PRIMARY KEY 、 商品コードCHAR(4) 、 受注個数INTEGER 、 納品日CHAR(8) 、 FOREIGN KEY (商品コード) REFERENCES商品(商品コード)
- エoNpELEE| sa |
解き方のヒントを見る
親データを消したら、子データも一緒に片付けたいときの指定だよ
参照整合性制約では、親表の行を削除したときに、それを参照している子表の関連行も自動で削除したいなら `ON DELETE CASCADE` を指定するよ。たとえば「注文」を消したら、その注文にひも付く「注文明細」もまとめて消す、というイメージだね。
この問題で問われていること
外部キー制約で、親表のデータを削除したときに子表側をどう扱うかを選べるかがポイントだよ。特に「関連する子データも一緒に削除する」は `ON DELETE CASCADE` と覚えよう。
外部キーの削除動作
親行削除時の子行処理は `CASCADE / RESTRICT / SET NULL ...` から選ぶ。
delete parent row\n-> delete child rows\n= ON DELETE CASCADE
確認ポイント
- `RESTRICT` は削除拒否です。
- `SET NULL` は削除ではありません。
- 親子同時削除なら `CASCADE` を選ぶ。
正解と解説を見る
正解
ア
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア(正解)
正解だよ。CASCADE は『親の商品を消したら、その商品にぶら下がっている受注も一緒に片付ける』という指定なんだ。たとえるなら、商品棚を撤去したら、その棚に貼っていた注文メモもまとめて外す感じだね。問題は“同じ商品コードをもつ受注行を自動的に削除”したいので、これがぴったりだよ。
選択肢イ
不正解だよ。RESTRICT は『まだ受注が残っている商品は消させない』というブレーキの指定なんだ。たとえるなら、貸出中の本があるのに本の登録を消そうとしたら、図書館の窓口で止められる感じ。今回は“受注も自動で消す”動きがほしいので違うよ。
選択肢ウ
不正解だよ。SET DEFAULT は、商品を消したときに受注側の商品コードを“既定値”に置き換える指定なんだ。たとえるなら、担当者が退職したら書類の担当欄を『未定』に変える感じ。受注行そのものを消すわけではないので、問題の動きとは合わないよ。
選択肢エ
不正解だよ。SET NULL は、商品を消したときに受注側の商品コードをNULL、つまり“空欄”にする指定なんだ。たとえるなら、名札を外して『誰の注文か分からない状態』にする感じだね。今回は受注行を空欄にしたいのではなく、自動で削除したいので違うよ。
出典:独立行政法人 情報処理推進機構(IPA)令和7年度春期 情報処理安全確保支援士試験 午前Ⅰ 問10(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針