令和3年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問題 問21
次の表において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。

図の説明テキスト
データベースの表定義。
・在庫(在庫管理番号,製品番号,在庫量)
・製品(製品番号,製品名,型,単価)
※「在庫」の「在庫管理番号」と「製品」の「製品番号」には主キーを示す実線の下線、「在庫」の「製品番号」には外部キーを示す破線の下線が引かれている。
解答・解説
正解: ウ. “在庫”表への行追加
参照制約(外部キー制約)とは、関係データベースにおいて、複数の表の間に矛盾が生じないようにするための制約です。外部キーとして設定された列には、参照先の表の主キーとして既に存在している値しか入力できません。
問題の図表の定義を確認すると、以下のようになっています。
- 「製品」表:
製品番号に実線の下線が引かれており、これが主キーです。 - 「在庫」表:
製品番号に破線の下線が引かれており、これが外部キーです。
これは、「在庫」表にデータを登録・更新する際、その 製品番号 は必ず「製品」表に存在している 製品番号 でなければならない、ということを意味します。もし「製品」表に存在しない 製品番号 を持つデータを「在庫」表に追加しようとした場合、参照制約によってデータベースから操作を拒否されます。したがって、拒否される可能性がある操作は「“在庫”表への行追加」となります。
各選択肢の解説
- ア:“在庫”表の行削除
参照元のデータ(在庫)を削除しても、参照先(製品)のデータに影響を与えたり矛盾が生じたりすることはないため、参照制約によって拒否されることはありません。 - イ:“在庫”表の表削除
参照元の表自体を削除しても、参照先の表に矛盾が生じることはないため、拒否されることはありません。(逆に、参照先の「製品」表を削除しようとした場合は拒否されます。) - ウ:“在庫”表への行追加
正解です。「製品」表に存在しない製品番号を指定して行を追加しようとした場合、参照制約違反となり操作が拒否されます。 - エ:“製品”表への行追加
参照先の表に新しいデータを追加する操作は、既存の参照関係に矛盾を引き起こさないため、拒否されることはありません。