平成28年度 春期 午前Ⅱ 問6
データベース設計
四つの表の関係を表すE-R図
四つの表の関係を表すE-R図として,適切なものはどれか。ここで,`1――*` は1対多の関連を表し,実線の下線は主キーを,破線の下線は外部キーを表す。
表の構成(原典は図。原典の実線の下線は …、破線の下線は〔破線の下線〕で表した):
医師(医師番号,医師名,診療科コード〔破線の下線〕)
診療科(診療科コード,診療科名称)
診察(診療科コード〔破線の下線〕,患者番号〔破線の下線〕,診察日時)
患者(患者番号,患者名)
選択肢は原典ではE-R図(4個の箱を横一列に並べ,隣り合う箱を線で結び,線の両端に多重度を書いたもの)。各肢は左から順に書き写した。
- ア`医師 *――1 診療科 *――1 診察 1――* 患者`
- イ`医師 *――1 診療科 1――* 診察 *――1 患者`
- ウ`医師 1――* 診療科 *――1 診察 1――* 患者`
- エ`医師 1――* 診療科 1――* 診察 *――1 患者`
答えと解説を見る
✓ これが正解イ`医師 *――1 診療科 1――* 診察 *――1 患者`
解説
外部キーをもつ側が多で、医師・診察が多、診療科・患者が1です。
外部キーをもつ表の行は、参照先の行を一つだけ指します。逆に、参照される表の1行は、複数の行から指されることがあります。そのため、外部キーをもつ側が多、参照される側が1になります。医師は診療科コードを外部キーにもつので、診療科1に対して医師が多です。診察は診療科コードと患者番号を外部キーにもつので、診療科1に対して診察が多、患者1に対して診察が多です。並べると、医師が多で診療科が1、診療科が1で診察が多、診察が多で患者が1となり、正解のE-R図と一致します。この問いでは、破線の下線が引かれた表の側に多の印が付く、と読むと素早く判断できます。
ほかの選択肢はなぜ違うのか
- ア`医師 *――1 診療科 *――1 診察…:医師と診療科の向きは合っていますが、診療科と診察の間が逆です。診察が診療科コードを外部キーにもつので、診療科の1行に複数の診察がつながり、診察と患者の間も患者が1の側になります。
- ウ`医師 1――* 診療科 *――1 診察…:医師が診療科コードを外部キーとしてもつので、1人の医師が属する診療科は一つで、診療科の側が1になります。医師の側を1とする向きは逆で、診療科と診察、診察と患者の向きも誤っています。
- エ`医師 1――* 診療科 1――* 診察…:診療科と診察、診察と患者の向きは合っていますが、医師と診療科の向きが逆です。外部キーの診療科コードをもつのは医師の表なので、医師が多、診療科が1になります。
この問題の用語
- E-R図管理の対象と対象どうしの関連によって、データの構造を表す図です。表として実装する前提や、業務上の手順を表すものではありません。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問6
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)