問題
テクノロジ系
問72 関係データベースで管理している "口座" 表,"顧客" 表及び "取引明細" 表がある。新たな顧客が口座の開設と同時に1万円を入金するとき,表にデータを追加する順序として,適切なものはどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。
選択肢
- ア口座 → 顧客 → 取引明細
- イ顧客 → 口座 → 取引明細
- ウ顧客 → 取引明細 → 口座
- エ取引明細 → 口座 → 顧客
解説
正解:イ
概要
この問題は,外部キー制約があるデータベースへのデータ追加順序を問うものです。参照整合性制約と外部キーの関係を正しく理解することがポイントです。
正解の理由
外部キー制約が設定されている場合,参照される側(親表)のデータが存在しないと,参照する側(子表)にデータを追加できません。口座表は顧客表を参照(外部キー),取引明細表は口座表を参照(外部キー)しているため,追加順序は顧客→口座→取引明細となります。イが正解です。
各選択肢の解説
ア(×): 口座を顧客より先に追加しようとすると,顧客が存在しないため外部キー制約違反になります。
イ(〇): 顧客→口座→取引明細の順が参照整合性を守る正しい順序です。
ウ(×): 取引明細を口座より先に追加しようとすると,口座が存在しないため外部キー制約違反になります。
エ(×): 取引明細→口座→顧客は全て逆順であり,全てのステップで外部キー制約違反になります。
ポイント
関係データベースでは,データを削除する場合は逆の順序(子表から先に削除)にする必要があります。追加は親→子の順,削除は子→親の順が基本です。この参照整合性制約により,データの矛盾が防止されます。