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

| 口座 → 顧客 → 取引明細 | |
| 顧客 → 口座 → 取引明細 | |
| 顧客 → 取引明細 → 口座 | |
| 取引明細 → 口座 → 顧客 |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- イ
解説
図では、実線下線が主キー、破線下線が外部キーです。顧客表は顧客番号(主キー)、口座表は口座番号(主キー)と顧客番号(外部キー)、取引明細表は取引番号(主キー)と口座番号(外部キー)を持ちます。すなわち、取引明細.口座番号 → 口座.口座番号、口座.顧客番号 → 顧客.顧客番号という外部キー制約があり、参照関係は取引明細 ⇒ 口座 ⇒ 顧客です。
外部キーがあると参照先に存在しない値は登録できません。したがって、他表を参照していない顧客から追加し、次に口座、最後に取引明細の順に登録します。よって「イ」が適切です。
外部キーがあると参照先に存在しない値は登録できません。したがって、他表を参照していない顧客から追加し、次に口座、最後に取引明細の順に登録します。よって「イ」が適切です。
| ア. | 口座 → 顧客 → 取引明細 |
| 口座を先に追加すると、口座表の顧客番号(外部キー)が参照する顧客表に該当データが未登録となり、外部キー制約に反します。 | |
| イ. | 顧客 → 口座 → 取引明細 |
| 顧客 → 口座 → 取引明細の順で、参照先から順に存在するように追加できるため適切です。 | |
| ウ. | 顧客 → 取引明細 → 口座 |
| 取引明細を口座より先に追加すると、取引明細表の口座番号(外部キー)が参照する口座が未登録で、外部キー制約に反します。 | |
| エ. | 取引明細 → 口座 → 顧客 |
| 取引明細と口座を顧客より先に追加する順序のため、いずれも参照先不在となり外部キー制約に反します。 |