平成22年度 春期 午前 問29
データベース
E-R図に関する問題
顧客は一般に複数の銀行に預金するものとして,顧客と銀行の関連を,E-R 図で次のように表現する。このモデルを関係データベース上に“銀行”表,“口座”表,“顧客”表として実装する場合の記述として,適切なものはどれか。
〔E-R 図〕
┌──────┐ m ╱──────╲ n ┌──────┐ │ 銀行 │──────────< 口座 >──────────│ 顧客 │ └──────┘ ╲──────╱ └──────┘
- ア“銀行”表から“口座”表へのカーディナリティは多対 1 である。
- イ“銀行”表中に参照制約を課した外部キーがある。
- ウ“口座”表から“顧客”表へのカーディナリティは 1 対多である。
- エ“口座”表には二つ以上の外部キーがある。
答えと解説を見る
✓ これが正解エ“口座”表には二つ以上の外部キーがある。
解説
口座表が二つの表を参照する外部キーをもちます。
まず E-R 図を言葉に直します。一つの銀行には多くの口座があり、一人の顧客も多くの口座をもつので、銀行と顧客の間は多対多の関係です。設問が、顧客は一般に複数の銀行に預金すると断っているのがその宣言にあたります。ところが関係データベースは多対多の関連をそのままの形では置けません。そこで間に口座という表を立て、銀行と口座、顧客と口座という二つの一対多に割ります。このとき間に立った表は、両側の表を指し示すための列を自分の中にもつことになります。銀行を指す列と顧客を指す列で、どちらも相手の表の主キーを指す外部キーです。したがって正解は、口座表には外部キーが二つ以上あるという記述です。外部キーは常に多の側に置くという一点を押さえておけば、どの表がどれを参照するのかを図から毎回引き直せます。
ほかの選択肢はなぜ違うのか
- ア“銀行”表から“口座”表へのカーディナリ…:一つの銀行がたくさんの口座を抱えるのですから、この向きで読んだときのカーディナリティは一対多です。多対一と書かれていて、読む向きに対して関係が反転しています。
- イ“銀行”表中に参照制約を課した外部キーが…:参照する列をもつのは多の側にあたる表で、銀行はそこから参照される側に立ちます。参照される側の表に、相手を指し示す列と参照制約を置くという読み方が逆になっています。
- ウ“口座”表から“顧客”表へのカーディナリ…:一人の顧客が複数の口座をもつので、口座の側が多、顧客の側が一です。この向きで読むなら多対一であり、これも読む向きに対して関係が反転した書き方になっています。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成22年度 春期 応用情報技術者試験 午前 問29
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和7年度 春期 午前 問25:多重度に関する問題(関係データベース)
- 令和5年度 春期 午前 問30:参照制約に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)