平成24年度 秋期 午前 問27
データベース
E-R図に関する問題
顧客は一般に複数の銀行に預金するものとして,顧客と銀行の関連を,E-R 図で次のように表現する。このモデルを関係データベース上に“銀行”表,“口座”表,“顧客”表として実装する場合の記述として,適切なものはどれか。
〔E-R 図〕 ┌──────┐ m / ̄ ̄ ̄\ n ┌──────┐ │ 銀行 │───────< 口座 >───────│ 顧客 │ └──────┘ \___/ └──────┘ (銀行と顧客の間に菱形の「口座」が置かれ,銀行側の線に m,顧客側の線に n が付く)
- ア“銀行”表から“口座”表への対応関係は多対 1 である。
- イ“銀行”表中に参照制約を課した外部キーがある。
- ウ“口座”表から“顧客”表への対応関係は 1 対多である。
- エ“口座”表には二つ以上の外部キーがある。
答えと解説を見る
✓ これが正解エ“口座”表には二つ以上の外部キーがある。
解説
多対多は間の表が外部キーを二本持ちます。
この E-R 図は、銀行と顧客の間に口座という関連が置かれ、両側の線に多重度の記号が付いています。つまり銀行と顧客は多対多で結ばれており、多対多の関連はそのままでは表にできません。そこで間に表を一枚立て、その表に両側を指す外部キーを持たせて、二本の一対多にほどきます。この設問の口座表がまさにその表です。口座は、どの銀行のどの顧客のものかが決まってはじめて特定できますから、口座表は銀行を指す外部キーと顧客を指す外部キーを持ちます。ですから適切な記述は、口座表には二つ以上の外部キーがある、というものです。誤りやすいのは対応関係の向きで、頭の中でひっくり返さずに一行ずつ書き出すのが確実です。ある表から別の表へと言うときは、出発点の側が一件かどうかを先に決めると、一対多と多対一のどちらになるかが自動的に決まります。そして相手を指す列が立つのは、常に件数が多い側の表です。
ほかの選択肢はなぜ違うのか
- ア“銀行”表から“口座”表への対応関係は多…:銀行表から口座表への対応関係を多対一としていますが、向きが取り違えられています。一つの銀行にはたくさんの口座がぶら下がるので、銀行の側を出発点にすれば一対多になります。
- イ“銀行”表中に参照制約を課した外部キーが…:銀行表の中に参照制約を課した外部キーがあるとしています。相手を指す列が立つのは件数が多い側で、銀行一件に口座が多数ぶら下がる以上、その列は口座表の側に置かれます。
- ウ“口座”表から“顧客”表への対応関係は …:口座表から顧客表への対応関係を一対多としていますが、こちらも向きが取り違えられています。一つの口座に結び付く顧客は一人ですから、口座の側を出発点にすれば多対一です。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成24年度 秋期 応用情報技術者試験 午前 問27(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和7年度 春期 午前 問25:多重度に関する問題(関係データベース)
- 令和5年度 春期 午前 問30:参照制約に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)