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

選択肢
ア:“銀行”表から “口座”表へのカーディナリティは多対1である。
イ:“銀行”表中に参照制約を課した外部キーがある。
ウ:“口座”表から “顧客”表へのカーディナリティは1対多である。
エ:“口座”表には二つ以上の外部キーがある。(正解)
顧客と銀行の関連を表すE-R図の関係モデル【午前2 解説】
要点まとめ
- 結論:口座表には銀行表と顧客表の両方を参照する外部キーが存在し、外部キーは2つ以上必要です。
- 根拠:E-R図の「口座」が銀行と顧客の間の多対多関係を仲介し、両者の識別子を持つためです。
- 差がつくポイント:多対多の関係を正しくリレーションに落とし込む際、仲介表に複数の外部キーが必要な点を理解することが重要です。
正解の理由
「口座」は銀行と顧客の間の多対多(m対n)関係を表しています。この場合、関係をリレーション(表)として実装する際、口座表は銀行表と顧客表の主キーを外部キーとして持ちます。つまり、口座表には銀行IDと顧客IDの2つ以上の外部キーが存在するため、選択肢エが正解です。
よくある誤解
- 「銀行」表に外部キーがあると考えがちですが、銀行は口座の親であり外部キーは不要です。
- 口座と顧客の関係を1対多と誤認し、外部キーの数を誤ることがあります。
解法ステップ
- E-R図の関係性を確認し、「口座」が銀行と顧客の多対多関係の仲介であることを理解する。
- 多対多関係は仲介表(口座表)で表現し、両方の主キーを外部キーとして持つことを認識する。
- 銀行表や顧客表に外部キーがあるかを検討し、通常は不要であることを確認する。
- 選択肢の内容と照らし合わせ、口座表に複数の外部キーがある選択肢を選ぶ。
選択肢別の誤答解説
- ア: 「銀行」表から「口座」表へのカーディナリティは多対1ではなく、口座は銀行に対して多対1ですが、口座表が仲介表なのでこの表現は不適切です。
- イ: 「銀行」表に外部キーがあるとは限らず、通常は銀行が親で外部キーは不要です。
- ウ: 「口座」表から「顧客」表へのカーディナリティは多対1であり、1対多ではありません。
- エ: 「口座」表には銀行と顧客の両方を参照する外部キーがあり、正しい記述です。
補足コラム
E-R図の多対多(m対n)関係は、リレーショナルデータベースでは直接表現できないため、仲介テーブル(口座表など)を設けて両者の主キーを外部キーとして持たせます。これにより、複数の銀行と複数の顧客が口座を通じて関連付けられます。外部キーの理解はデータベース設計の基本であり、正確なリレーション設計に不可欠です。
FAQ
Q: 多対多の関係はなぜ仲介表が必要ですか?
A: リレーショナルモデルでは多対多の直接表現ができないため、仲介表で両者の主キーを外部キーとして持つことで関係を実現します。
A: リレーショナルモデルでは多対多の直接表現ができないため、仲介表で両者の主キーを外部キーとして持つことで関係を実現します。
Q: 外部キーはどの表に設定すべきですか?
A: 関係の多対多を表す仲介表に、関連する両方の親表の主キーを外部キーとして設定します。
A: 関係の多対多を表す仲介表に、関連する両方の親表の主キーを外部キーとして設定します。
関連キーワード: E-R図、多対多関係、外部キー、リレーショナルデータベース、カーディナリティ、仲介テーブル

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

