AUシステム監査技術者試験 午前Ⅱ

平成31年度春期 システム監査技術者 午前Ⅱ 問17

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

問題

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

選択肢

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

表の制約とキーの役割を整理

表設計を読むときは、各列の制約が何を保証するか、キーが行を識別する範囲、表同士の対応を段階的に切り分けます。個別の選択肢は、これらの観点に照らして整理しましょう。

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

一つの制約やキーについて、どの表のどの列に適用され、重複の抑止・行の識別・表間の対応のうち何を確認する情報なのかを、問題文の記述と対応付けて読みます。

視点

制約とキーは似た語で並びやすいため、まず対象となる表と列を特定し、次に保証の対象を一つずつ分けて考えます。単独の表内の性質と、表をまたぐ関係を混同しないことが重要です。

確認ポイント

  • 制約やキーが適用される表と列を特定する
  • 保証される範囲が表内か表間かを確認する
  • 一意性と参照関係を別々の観点として整理する
正解と解説を見る

正解

ウ

解説

在庫表の製品番号は製品表の製品番号を参照する外部キーです。在庫表へ行を追加する際、対応する製品が存在しなければ参照整合性に反するため、参照制約によって拒否される可能性がある。

理由

在庫表の製品番号には、製品表に存在する製品番号だけを指定できる。したがって、在庫表への行追加で存在しない製品番号を指定すると、参照先の行がないため参照制約違反となり、追加が拒否される可能性がある。

比較

在庫表の行削除は参照元の行を取り除く操作なので、製品表側の行を孤立させない。製品表への行追加も、参照元から参照される候補を増やすだけです。また、在庫表自体の削除では、その表に定義された外部キー制約もなくなるため、この参照制約によって拒否される操作ではありません。

選択肢ア

これは不正解だよ。在庫表の行削除は、外部キーを持つ参照元の行を取り除く操作である。削除後に在庫表から製品番号が消えるだけで、製品表に存在する製品を参照できなくするわけではないため、この参照制約によって拒否される操作には該当しない。

選択肢イ

これは不正解だよ。在庫表の表削除では、在庫表そのものと、そこに定義された製品番号の外部キー制約も削除される。この設問で示された参照制約自体がなくなるため、その参照制約によって表削除が拒否されるとはいえない。

選択肢ウ(正解)

これは正解だよ。在庫表への行追加では、製品番号が製品表の製品番号を参照できなければならない。対応する製品表の行が存在しない製品番号を追加すると参照整合性に反するため、参照制約によって拒否される可能性がある。

選択肢エ

これは不正解だよ。製品表への行追加は、参照される側に新しい製品番号を登録する操作である。既存の在庫表の製品番号が無効になることはなく、参照先の行を増やすだけなので、この参照制約によって拒否される可能性がある操作ではない。

学習のポイント

外部キーによる参照整合性と、参照元・参照先への操作の違いを学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成31年度春期 システム監査技術者試験 午前Ⅱ 問17(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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