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

平成31年度春期 情報処理安全確保支援士 午前Ⅱ 問21

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

問題

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

選択肢

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

午前II 問21:参照制約は“知らない製品番号”を止めるルールだよ

「在庫」表の製品番号が「製品」表を見に行く決まりになっているなら、在庫に“製品表に存在しない製品番号”を入れようとするとアウトだよ。たとえるなら、商品カタログに載っていない商品を倉庫の在庫リストに登録しようとしている状態だね。一方で、子表である在庫の行を消す操作や、親表である製品に新しい行を追加する操作は、普通はこの参照制約違反にはならないよ。

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

参照制約では、親表と子表のどちらを操作したときに止められるのかを見分けよう。ポイントは、子表が“親表に存在しない値”を参照しようとしていないかどうかだよ。

When a Referential Constraint Rejects an Operation

a foreign-key constraint blocks insertion into the child table when the referenced parent key does not exist

child table references parent key\ninsert child row with missing parent = reject\nadding parent rows is allowed

確認ポイント

  • 親表と子表をまず識別する。
  • 外部キー列への追加操作を見る。
  • 存在しない親キー参照をイメージする。
正解と解説を見る

正解

ウ

出典

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

選択肢ア

これは不正解だよ。“在庫”表の行を削除するのは、倉庫の棚から在庫メモを1枚外すようなもの。メモを消しても、“製品”表にある製品マスターとのつながりが壊れるわけではないので、参照制約で拒否される可能性は低いよ。

選択肢イ

これは不正解だよ。“在庫”表そのものを削除する操作は、今回聞かれている「在庫の製品番号が、製品表に存在する番号かチェックする」という参照制約の典型的な拒否対象ではないよ。合鍵チェックの話でいうと、鍵束そのものを片付ける話で、存在しない鍵を使おうとしている話ではないんだ。

選択肢ウ(正解)

これが正解だよ。“在庫”表に行を追加するとき、製品表に存在しない製品番号を入れようとすると、「そんな製品は登録されていません」と止められるよ。たとえるなら、会員名簿にない人の名前で受付しようとして、窓口で確認されて入れないイメージだね。

選択肢エ

これは不正解だよ。“製品”表へ行を追加するのは、製品マスターに新しい製品を登録すること。参照される側の候補が増えるだけなので、“在庫”表の製品番号チェックを壊さないよ。名簿に新しい正規メンバーを追加するだけなら、受付のルールには引っかからない感じだよ。

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

関連する過去問一覧

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