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

選択肢
- ア:口座 → 顧客 → 取引明細
- イ:顧客 → 口座 → 取引明細
- ウ:顧客 → 取引明細 → 口座
- エ:取引明細 → 口座 → 顧客
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
外部キーがある表に行を追加するには、参照先(外部キーが指す側)の主キーの行が先に登録されている必要があります。図では、口座表の顧客番号が顧客表を参照し、取引明細表の口座番号が口座表を参照します。したがって、追加順序は顧客→口座→取引明細です。
Point
この問題は、主キーと外部キーの参照関係を図から読み取り、参照整合性制約に違反しないデータ追加の順序を判断できるかを確認することが目的です。
解くために必要な知識
この問題を解くには、主キー、外部キー、参照整合性制約の理解が必要です。
用語の整理
| 用語 | 意味 |
|---|---|
| 主キー | 表の1行を一意に識別する列(または列の組)です。重複しないことが前提です。 |
| 外部キー | 他の表の主キー(または一意キー)を参照する列です。 |
| 参照整合性制約 | 外部キーに設定した値が、参照先の表に存在することを要求する制約です。 |
追加順序の原則
-
外部キーを持つ表に追加するには、参照先の表に該当行が必要です。
-
そのため、原則として次の順で追加します。
- 親表(参照される表)
- 子表(参照する表)
この図での適用
-
口座表は顧客表を参照します。
-
取引明細表は口座表を参照します。
-
よって、顧客→口座→取引明細の順になります。
問題の解法手順
図表の読み取り
主キーと外部キーの確認
図の下線から、主キー(実線)と外部キー(破線)を読み取ります。
| 表名 | 主キー(実線) | 外部キー(破線) | 外部キーの参照先 |
|---|---|---|---|
| 顧客 | 顧客番号 | なし | なし |
| 口座 | 口座番号 | 顧客番号 | 顧客(顧客番号) |
| 取引明細 | 取引番号 | 口座番号 | 口座(口座番号) |
参照関係の整理
-
「口座」は「顧客」を参照します。
-
「取引明細」は「口座」を参照します。
追加順序の決定
追加の原則
参照整合性制約があるとき、追加の順序は次が原則です。
-
参照される側(親)を先に追加します。
-
参照する側(子)を後に追加します。
本問での結論
この原則を表の参照関係に当てはめると、次の順になります。
顧客 → 口座 → 取引明細
したがって、正解は「イ」です。
選択肢ごとの解説
- ア:不正解
口座表は顧客番号で顧客表を参照します。顧客表に該当する顧客番号が未登録だと口座表を追加できないため、口座→顧客の順は不適切です。
- イ:正解
顧客表を先に追加すると、その顧客番号を参照する口座表を追加できます。次に、口座番号を参照する取引明細表を追加できます。したがって適切です。
- ウ:不正解
取引明細表は口座番号で口座表を参照します。口座表が未登録だと取引明細表を追加できないため、不適切です。
- エ:不正解
取引明細を最初に登録すると、参照先の口座が未登録です。また、口座を登録するにも参照先の顧客が未登録です。参照整合性制約に反します。
まとめ
外部キーがある表に行を追加するには、参照先(外部キーが指す側)の主キーの行が先に登録されている必要があります。図では、口座表の顧客番号が顧客表を参照し、取引明細表の口座番号が口座表を参照します。したがって、追加順序は顧客→口座→取引明細です。
テクノロジ系 > 技術要素 > データベース
口座表は顧客番号で顧客表を参照します。顧客表に該当する顧客番号が未登録だと口座表を追加できないため、口座→顧客の順は不適切です。
顧客表を先に追加すると、その顧客番号を参照する口座表を追加できます。次に、口座番号を参照する取引明細表を追加できます。したがって適切です。
取引明細表は口座番号で口座表を参照します。口座表が未登録だと取引明細表を追加できないため、不適切です。
取引明細を最初に登録すると、参照先の口座が未登録です。また、口座を登録するにも参照先の顧客が未登録です。参照整合性制約に反します。