応用情報技術者 2012年 秋期 午前2 問27
問題文
顧客は一般に複数の銀行に預金するものとして、顧客と銀行の関連を、E-R 図で次のように表現する。このモデルを関係データベース上に “銀行” 表、“口座” 表、“顧客”表として実装する場合の記述として、適切なものはどれか。

選択肢
ア:“銀行”表から “口座” 表への対応関係は多対1である。
イ:“銀行” 表中に参照制約を課した外部キーがある。
ウ:“口座”表から “顧客” 表への対応関係は1対多である。
エ:“口座”表には二つ以上の外部キーがある。(正解)
顧客と銀行の関連を表すE-R図の関係モデル【午前2 解説】
要点まとめ
- 結論:口座表には銀行表と顧客表の両方を参照する外部キーが存在し、複数の外部キーが必要です。
- 根拠:E-R図の「口座」が銀行と顧客の間の多対多関係を仲介し、両者の識別子を持つためです。
- 差がつくポイント:多対多の関係を正しくリレーションに落とし込む際、仲介エンティティの外部キーの理解が重要です。
正解の理由
「口座」は銀行と顧客の多対多(m:n)の関係を表す仲介エンティティであり、銀行と顧客の両方を識別するために、それぞれの主キーを外部キーとして持ちます。したがって、「口座」表には銀行表と顧客表の二つ以上の外部キーが存在し、これが正解の選択肢エとなります。
よくある誤解
「口座」表が単に銀行か顧客のどちらか一方だけを参照すると誤解しがちです。多対多の関係は仲介テーブルで両方の外部キーを持つ必要があります。
解法ステップ
- E-R図の関係を確認し、「口座」が銀行と顧客の間の多対多関係の仲介であることを理解する。
- 多対多関係はリレーションでは仲介テーブルを設け、両者の主キーを外部キーとして持つことを思い出す。
- 「口座」表に銀行表と顧客表の外部キーが存在するかを検討する。
- 選択肢の中で「口座表に二つ以上の外部キーがある」ことを示すエを選ぶ。
選択肢別の誤答解説
- ア: 「銀行」表から「口座」表への対応は多対1ではなく、口座は銀行に対して多対1ですが、口座は顧客とも多対1の関係なので誤り。
- イ: 「銀行」表に外部キーがあるとは限らず、銀行は独立したエンティティなので誤り。
- ウ: 「口座」表から「顧客」表への対応は多対1であり、1対多ではないため誤り。
- エ: 「口座」表には銀行と顧客の両方の外部キーがあり、正しい。
補足コラム
多対多の関係はリレーショナルデータベースでは直接表現できないため、仲介テーブル(ここでは「口座」)を設けて両方の主キーを外部キーとして持たせる設計が基本です。これにより、複数の顧客が複数の銀行に口座を持つ状況を正確に表現できます。
FAQ
Q: なぜ多対多の関係は仲介テーブルが必要ですか?
A: 多対多の関係はリレーショナルモデルで直接表現できず、仲介テーブルで両方の外部キーを持つことで関係を管理します。
A: 多対多の関係はリレーショナルモデルで直接表現できず、仲介テーブルで両方の外部キーを持つことで関係を管理します。
Q: 外部キーとは何ですか?
A: 外部キーは他のテーブルの主キーを参照する属性で、テーブル間の関連性を保証します。
A: 外部キーは他のテーブルの主キーを参照する属性で、テーブル間の関連性を保証します。
関連キーワード: E-R図、多対多関係、外部キー、仲介テーブル、関係データベース設計

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

