関係データベースの表追加順序|ITパスポート 令和8年 公開問題 問72
出典:令和8年 公開問題 問72
分野:技術要素 / データベース
関係データベースで管理している“口座”表,“顧客”表及び“取引明細”表がある。新たな顧客が口座の開設と同時に1万円を入金するとき,表にデータを追加する順序として,適切なものはどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。
口座
| 口座番号 | 口座種別 | 残高 | 顧客番号 |
|---|
顧客
| 顧客番号 | 顧客名 |
|---|
取引明細
| 取引番号 | 取引日時 | 取引種別 | 取引金額 | 口座番号 |
|---|
- ア:口座 → 顧客 → 取引明細
- イ:顧客 → 口座 → 取引明細
- ウ:顧客 → 取引明細 → 口座
- エ:取引明細 → 口座 → 顧客
TSUNAGARU-ADVICE
まず押さえたいこと
関係データベースでは外部キー制約により参照先(親表)のデータが存在しなければ、参照元(子表)のデータを登録できません。そのため,データ登録の順序は依存関係を考慮して決める必要があります。
迷ったときの判断軸
外部キーと主キーの参照関係を図示などで整理し,どの表のデータが先に存在しなければならないかを確認するとよいです。
次の学習につなげるために
さらに複雑な依存関係やトランザクション制御の知識を学び,データの整合性維持や更新処理を理解するとよいです。
関係データベースの表にはそれぞれ主キーと外部キーが設定されており、外部キーは参照先の主キーに依存しています。
設問では“顧客”表の顧客番号を“口座”表の顧客番号が外部キーとして参照し、“口座”表の口座番号を“取引明細”表の口座番号が外部キーとして参照しています。このため,新規に顧客情報を追加し口座を開設し取引明細を記録するには,まず顧客表に顧客データを登録し,次に口座表に口座データを追加し,最後に取引明細表に取引情報を追加する必要があります。
したがって、イが適切です。
❌他選択肢が誤りの理由
ア:口座 → 顧客 → 取引明細
⇒口座表の顧客番号は顧客表の顧客番号を参照するため,顧客先に追加しなければ整合性が保てません。
ウ:顧客 → 取引明細 → 口座
⇒取引明細表の口座番号は口座表を参照するため,口座情報が先に必要です。
エ:取引明細 → 口座 → 顧客
⇒取引明細は口座を直接参照し、その口座が顧客を参照しているため順序が逆転しています。