平成31年度 春期 システム監査技術者試験 午前Ⅱ 問17
テクノロジ/データベース次の関係において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。 在庫(在庫管理番号,製品番号,在庫量) ※在庫管理番号が主キー,製品番号が外部キー 製品(製品番号,製品名,型,単価) ※製品番号が主キー (注:本サイトでは原問題の下線(主キー・外部キー)を注記で表しています)
出典:平成31年度 春期 システム監査技術者試験 午前Ⅱ 問17
- ア“在庫”表の行削除
- イ“在庫”表の表削除
- ウ“在庫”表への行追加
- エ“製品”表への行追加
正解:ウ
解説
設問の“在庫”表は,製品番号を外部キーとして“製品”表の主キーである製品番号を参照する参照制約が定義されている。参照制約は,子表(在庫表)に存在する外部キーの値が,親表(製品表)に存在する主キーの値と対応していることを保証するものである。したがって,“在庫”表へ行を追加する際に,その行の製品番号が“製品”表に存在しない値であった場合,参照制約に違反するため操作が拒否される可能性がある。“在庫”表からの行削除や表削除,“製品”表への行追加は,いずれも他の表の外部キーとの整合性を損なうものではなく,この参照制約によって拒否される性質の操作ではない。
選択肢ごとの解説
- ア誤り。“在庫”表の行を削除しても,“製品”表の主キーとの対応関係に矛盾は生じないため,この参照制約によって拒否される操作ではありません。
- イ誤り。“在庫”表自体を削除しても,参照する側(子表)がなくなるだけで,“製品”表の主キーとの整合性に矛盾は生じないため,この参照制約によって拒否される操作ではありません。
- ウ正しい。“在庫”表への行追加時に,指定した製品番号が“製品”表に存在しない値であった場合,参照制約に違反するため,この操作は拒否される可能性があります。
- エ誤り。“製品”表へ行を追加しても,参照される側の主キーの値が増えるだけであり,既存の“在庫”表の外部キーとの整合性に矛盾は生じないため,この参照制約によって拒否される操作ではありません。