SC情報処理安全確保支援士試験 午前Ⅰ

平成28年度春期 情報処理安全確保支援士 午前Ⅰ 問9

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

次の表において、 “在庫” 表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで、 実線の下線は主キーを、 破線の下線は外部キーを表す。

選択肢

  1. ア
    “在庫” 表の行削除
  2. イ
    "在庫" 表の表削除
  3. ウ
    “在庫” 表への行追加
  4. エ
    "製品" 表への行追加ーー問憲
解き方のヒントを見る

午前I 問09:親子関係を守る参照整合性だよ

子テーブルが、存在しない親データを勝手に参照できないようにする仕組みだよ。たとえば、存在しない会員IDの注文データを作れないようにして、表同士のつながりが壊れないようにするんだ。

この問題で問われていること

一意制約は「同じ値を重複させない」、NOT NULL制約は「空欄にしない」というルールだよ。今回はそれとは違って、「別の表にちゃんと存在する親キーだけを参照できるようにする」表同士の整合性の制約だと見抜こう。

Referential Integrity

referential integrity ensures that a foreign key in a child table matches an existing key in the parent table

child foreign key\nmust exist in parent

確認ポイント

  • 表内の重複防止だけではありません。
  • 親子表の整合性制約です。
  • 外部キーの存在条件を選ぶ。
正解と解説を見る

正解

ウ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。在庫表の行を削除するのは、倉庫の在庫カードを1枚捨てるようなもの。参照先の製品表に迷惑をかける方向ではないので、『存在しない製品番号を在庫に入れるな』という参照制約では普通は拒否されないんだ。

選択肢イ

これは不正解だよ。表削除は、在庫表そのものを丸ごと消す操作だね。参照制約は『在庫表の製品番号は、製品表に実在する番号を使ってね』というルールなので、在庫表を消す操作そのものを直接チェックする話ではないんだ。

選択肢ウ(正解)

これが正解だよ。在庫表に行を追加するとき、製品番号が製品表に存在しないと、『メニューにない商品を在庫棚に登録する』ような状態になるよね。参照制約はこれを防ぐための門番なので、製品表にない製品番号を使った在庫行の追加は拒否される可能性があるんだ。

選択肢エ

これは不正解だよ。製品表への行追加は、商品カタログに新しい商品を載せるようなもの。あとで在庫表から参照される側を増やすだけなので、『在庫表の製品番号は製品表にあるものだけ』というルールには違反しないんだ。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 情報処理安全確保支援士試験 午前Ⅰ 問9(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針