IPA公式正解:イ
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。各表の外部キー関係を確認すると、「医師」が「診療科コード」を参照(診療科1対医師多)、「診察」が「診療科コード」と「患者番号」を参照(診療科1対診察多、患者1対診察多)となっています。したがって「医師 *―1 診療科 1―* 診察 *―1 患者」となるイが適切です。
【詳細解説】■ 本問の核心・解法のポイント
リレーショナル表の主キー(実線下線)と外部キー(破線下線)から、実体間のカーディナリティ(多重度)を判定してE-R図を特定する問題です。
一般に、外部キーを持つ側が「多(*)」、参照される主キー側が「1」となります。
各表のキーの分析:
1. 医師表:主キー=医師番号、外部キー=診療科コード
⇒ 診療科表の主キーを参照しているため、【診療科 1 対 医師 *】の関係になります。
2. 診療科表:主キー=診療科コード
3. 診察表:主キー=(明記なし、複合キー想定)、外部キー=診療科コード、患者番号
⇒ 診療科表の診療科コードを参照しているため、【診療科 1 対 診察 *】の関係になります。
⇒ 患者表の患者番号を参照しているため、【患者 1 対 診察 *】の関係になります。
4. 患者表:主キー=患者番号
表の並び順(医師 ― 診療科 ― 診察 ― 患者)に沿って多重度を当てはめると:
・医師 ― 診療科:医師側が「*」、診療科側が「1」
・診療科 ― 診察:診療科側が「1」、診察側が「*」
・診察 ― 患者:診察側が「*」、患者側が「1」
・各選択肢の徹底解説:
・ア:診療科と診察の間が「*対1」となっており、診療科側が多になっているため誤りです。
・イ:【選択肢イ★】「医師 *―1 診療科 1―* 診察 *―1 患者」となっており、すべての外部キー参照関係における1対多が正確に合致しています。
・ウ:医師と診療科の間が「1対*」となっており、医師側が1になっているため誤りです。
・エ:医師と診療科の間が「1対*」、診察と患者の間が「1対*」となっており誤りです。
よって正解はイです。