SC情報処理安全確保支援士試験 午前Ⅰ
平成22年度秋期 情報処理安全確保支援士 午前Ⅰ 問11
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア"在庫" 表の行削除
- イ"在庫" 表の表削除
- ウ"在庫" 表への行追加
- エ"製品" 表への行追加
解き方のヒントを見る
データベースの「存在しない商品(マスタにないID)」を、勝手に入荷リストに登録させないルール(参照整合性制約)
データベースの重要な親子ルール「参照整合性制約(外部キー制約)」の問題だよ。例えば、「製品マスタ」表(親)と「在庫」表(子)があるとする。「在庫」表に製品データを新しく登録する時、その「製品番号」が親である「製品マスタ」表に載っていない幽霊商品だったら、データが矛盾しちゃうよね。だから、データベースシステムは「親にないものは、子に登録できないよ!」とエラーを出して防いでくれるんだ。
この問題で問われていること
子のテーブル(在庫)に新規データを追加したり更新したりする際、「親のテーブル(製品)に実在するキー値しか指定できない」という整合性ルール(外部キー制約)の動作を選び取ろう。
Referential Constraint
a foreign-key constraint on the inventory table rejects insertion when the referenced product number does not exist in the product table
child table: inventory\nparent table: product\nreject insert with missing parent key
確認ポイント
- 外部キーの参照先表を確認する。
- 子表への追加が制約対象になる。
- 存在しない親キーでは登録できない。
正解と解説を見る
正解
ウ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
不正解だよ。"在庫"表の行を削除するのは、子ども側の記録を消すだけなので、親である"製品"表の行が迷子になるわけではないんだ。たとえるなら、予約メモを消しても商品カタログ自体は困らない、という感じだよ。
選択肢イ
不正解だよ。"在庫"表そのものを削除する操作は、行同士の親子関係をチェックする話とは少し違うんだ。参照制約は基本的に、"在庫に書いた製品番号が製品表に本当にあるかな?"を見るルールだよ。
選択肢ウ(正解)
正解だよ。"在庫"表に行を追加するとき、その製品番号が親である"製品"表に存在しないと、合鍵を作る前に本物の鍵が存在しないような状態になるんだ。だからDBは"その製品、製品表にないよ"と拒否する可能性があるよ。
選択肢エ
不正解だよ。"製品"表は親、"在庫"表は子どもの表と考えよう。親の名簿に新しい製品を追加するのは、学校の名簿に新入生を足すようなものだから、在庫側に迷子が生まれるわけではないんだ。だから参照制約で問題になりにくいよ。
出典:独立行政法人 情報処理推進機構(IPA)平成22年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問11(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針