DBデータベーススペシャリスト試験 午前Ⅱ

平成28年度春期 データベーススペシャリスト 午前Ⅱ 問6

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

四つの表の関係を表すE-R図として,適切なものはどれか。ここで,1−*は1対多の関連を表し,実線の下線は主キーを,破線の下線は外部キーを表す。
医師,診療科,診察,患者の四表について主キーと外部キーを示し,四通りの1対多関係を候補ア〜エとして示した図。
医師,診療科,診察,患者の四表について主キーと外部キーを示し,四通りの1対多関係を候補ア〜エとして示した図。

選択肢

  1. ア
    図ア
  2. イ
    図イ
  3. ウ
    図ウ
  4. エ
    図エ
解き方のヒントを見る

関係整理の観点を一つ確認

エンティティ間の関係を考えるときは、まず登場する対象同士の結び付きに注目し、誰が誰と関係するのか、関係の向きやまとまり方を図や言葉で整理してから、各選択肢の説明が同じ観点で整合しているかを確認します。

この問題で問われていること

この問題では、個々の属性や値を細かく追う前に、対象同士の関係がどの単位で結ばれているかという一点に絞り、関係の対象・対応の範囲・表現の一貫性を順番に見比べてください。

視点

対象を個別に見るだけでなく、対象同士の結び付き方を整理すると、関係の説明がどの範囲を扱っているかを比較しやすくなります。

確認ポイント

  • 関係している対象の組み合わせを確認する
  • 関係の範囲やまとまり方を整理する
  • 説明全体で用語や視点が一貫しているか確認する
正解と解説を見る

正解

イ

解説

医師表は診療科コードを外部キーとして持つため、診療科一つに対して医師が複数存在する。診察表は診療科コードと患者番号を外部キーとして持つので、診療科と患者はいずれも一つに対して複数の診察を対応させる。したがって正しいE-R図はイです。

理由

医師表の診療科コードは診療科表の診療科コードを参照するため、診療科側が1、医師側が*となる。診察表の診療科コードは診療科表を、患者番号は患者表を参照するため、診療科側と患者側が1、診察側が*となる。

比較

図イは、医師と診療科を*対1、診療科と診察を1対*、診察と患者を*対1で表しており、三つの外部キーの対応と一致する。他の図は、少なくとも一つの関連で1と*の向きが表構造と逆になっている。

選択肢ア

これは不正解だよ。医師と診療科の関連は、診療科コードを医師表が外部キーとして持つため、医師側が*、診療科側が1で正しい。しかし、診療科と診察、診察と患者の二つは、診察側が*になるべきなのに図では逆向きであり、表の外部キー構造と一致しない。

選択肢イ(正解)

これは正解だよ。医師表は診療科コードを参照するので診療科1に対して医師*となる。さらに診察表は診療科コードと患者番号を参照するため、診療科1対診察*、患者1対診察*となる。図イはこの三つの関係を正しく表している。

選択肢ウ

これは不正解だよ。図ウでは医師側が1、診療科側が*となっているが、診療科コードを持つ医師表が多側になるべきである。また、診療科と診察、診察と患者も、外部キーを持つ診察側が多になる関係と逆向きであり、三つとも表構造に適合しない。

選択肢エ

これは不正解だよ。診療科と診察の1対*、診察と患者の*対1は、診察表がそれぞれ外部キーを持つことと整合する。しかし、医師と診療科は医師側が*、診療科側が1でなければならず、図エの1対*は逆であるため適切ではない。

学習のポイント

外部キーを持つ表が1対多のどちら側になるかを、表の構造から判断する。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 データベーススペシャリスト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針