平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5
テクノロジ/データベース四つの表の関係を表すE-R図として,適切なものはどれか。ここで,1 *は1対多の関連を表し,実線の下線は主キーを,破線の下線は外部キーを表す。 医師(医師番号,医師名,診療科コード) ※医師番号が主キー,診療科コードが外部キー 診療科(診療科コード,診療科名称) ※診療科コードが主キー 診察(診療科コード,患者番号,診察日時) ※診療科コードと患者番号の組が主キーであり,かつ診療科コードは診療科表への,患者番号は患者表への外部キー 患者(患者番号,患者名) ※患者番号が主キー

出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5
- ア図ア
- イ図イ
- ウ図ウ
- エ図エ
正解:イ
解説
医師表の診療科コードは診療科表への外部キー(1対多で医師が診療科に多対1)であり,診療科表を親,医師表を子とする1対多(診療科 1-* 医師)の関係になります。診察表は診療科コードと患者番号の複合主キーをもち,それぞれが診療科表・患者表への外部キーになっているため,診療科表と診察表は1対多(診療科 1-* 診察),患者表と診察表も1対多(患者 1-* 診察)の関係になります。以上を整理すると,医師 *-1 診療科 1-* 診察 *-1 患者という多重度の並びになります。この並びに一致するのはイです。
選択肢ごとの解説
- ア誤り。医師と診療科の間は医師 *-1 診療科で正しいですが,診療科と診察の間を*-1(診療科側が多)としており,実際には診療科が1,診察が多となるべき関係が逆になっています。
- イ正しい。医師 *-1 診療科(医師が多,診療科が1),診療科 1-* 診察(診療科が1,診察が多),患者 1-* 診察(患者が1,診察が多)という各表の主キー・外部キーの関係を正しく反映した多重度の並びになっています。
- ウ誤り。医師と診療科の間を1-*(医師側が1)としていますが,診療科コードは医師表の外部キーであり,医師が多,診療科が1となるべき関係が逆になっています。
- エ誤り。医師と診療科の間の多重度が1-*(逆向き)になっているほか,患者と診察の間も*-1(逆向き)になっており,外部キーの向きと整合していません。