ITパスポート 令和8年度72

問題

テクノロジ系

問72 関係データベースで管理している "口座" 表,"顧客" 表及び "取引明細" 表がある。新たな顧客が口座の開設と同時に1万円を入金するとき,表にデータを追加する順序として,適切なものはどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。

選択肢

  • 口座 → 顧客 → 取引明細
  • 顧客 → 口座 → 取引明細
  • 顧客 → 取引明細 → 口座
  • 取引明細 → 口座 → 顧客

解説

正解:

概要

この問題は,外部キー制約があるデータベースへのデータ追加順序を問うものです。参照整合性制約と外部キーの関係を正しく理解することがポイントです。

正解の理由

外部キー制約が設定されている場合,参照される側(親表)のデータが存在しないと,参照する側(子表)にデータを追加できません。口座表は顧客表を参照(外部キー),取引明細表は口座表を参照(外部キー)しているため,追加順序は顧客→口座→取引明細となります。イが正解です。

各選択肢の解説

ア(×): 口座を顧客より先に追加しようとすると,顧客が存在しないため外部キー制約違反になります。

イ(〇): 顧客→口座→取引明細の順が参照整合性を守る正しい順序です。

ウ(×): 取引明細を口座より先に追加しようとすると,口座が存在しないため外部キー制約違反になります。

エ(×): 取引明細→口座→顧客は全て逆順であり,全てのステップで外部キー制約違反になります。

ポイント

関係データベースでは,データを削除する場合は逆の順序(子表から先に削除)にする必要があります。追加は親→子の順,削除は子→親の順が基本です。この参照整合性制約により,データの矛盾が防止されます。