令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問4

四つの表の関係を表すE-R図として,適切なものはどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。

四つの表のスキーマ定義
図の説明テキスト

4つの表(医師、診療科、診察、患者)のスキーマ定義。

  • 医師:
    | 医師番号(実線下線) | 医師名 | 診療科コード(破線下線) |
  • 診療科:
    | 診療科コード(実線下線) | 診療科名称 |
  • 診察:
    | 診療科コード(実線・破線下線) | 患者番号(実線・破線下線) | 診察日時(実線下線) |
  • 患者:
    | 患者番号(実線下線) | 患者名 |
解答・解説

正解: イ.

関係データベースにおいて、表の間に設定される主キー(実線の下線)と外部キー(破線の下線)から、エンティティ間の「1対多」の関連を読み取ります。外部キーを持つ表が「多(*)」側、参照される主キーをもつ表が「1」側となります。

各表の関係は以下の通りです。

  1. 「医師」と「診療科」の関係
    「医師」表には、外部キーとして「診療科コード」が含まれています。これは「診療科」表の主キーを参照しているため、1つの診療科に対して複数の医師が所属する 1対多(診療科が「1」、医師が「*」) の関係になります。

  2. 「診療科」と「診察」の関係
    「診察」表には、外部キーとして「診療科コード」が含まれています。したがって、1つの診療科において複数の診察が存在する 1対多(診療科が「1」、診察が「*」) の関係になります。

  3. 「患者」と「診察」の関係
    「診察」表には、外部キーとして「患者番号」が含まれています。これは「患者」表の主キーを参照しているため、1人の患者に対して複数の診察が存在する 1対多(患者が「1」、診察が「*」) の関係になります。

これらの関係をまとめると、「医師(*)—(1)診療科(1)—(*)診察(*)—(1)患者」となります。この構成と一致する図は イ です。

各選択肢の解説

  • ア: 「診療科(*)—(1)診察」および「診察(1)—(*)患者」となっており、外部キーの配置から読み取れる1対多の関係が逆になっているため誤りです。
  • イ: 正解です。
  • ウ: 「医師(1)—(*)診療科」となっているため誤りです。また、「診療科」と「診察」、「診察」と「患者」の間の1対多の関係も逆になっています。
  • エ: 「医師(1)—(*)診療科」となっており、医師と診療科の関係が逆になっているため誤りです。

Spineチーム