DBデータベーススペシャリスト試験 午前Ⅱ
平成28年度春期 データベーススペシャリスト 午前Ⅱ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- ア図ア
- イ図イ
- ウ図ウ
- エ図エ
解き方のヒントを見る
関係整理の観点を一つ確認
エンティティ間の関係を考えるときは、まず登場する対象同士の結び付きに注目し、誰が誰と関係するのか、関係の向きやまとまり方を図や言葉で整理してから、各選択肢の説明が同じ観点で整合しているかを確認します。
この問題で問われていること
この問題では、個々の属性や値を細かく追う前に、対象同士の関係がどの単位で結ばれているかという一点に絞り、関係の対象・対応の範囲・表現の一貫性を順番に見比べてください。
視点
対象を個別に見るだけでなく、対象同士の結び付き方を整理すると、関係の説明がどの範囲を扱っているかを比較しやすくなります。
確認ポイント
- 関係している対象の組み合わせを確認する
- 関係の範囲やまとまり方を整理する
- 説明全体で用語や視点が一貫しているか確認する
正解と解説を見る
正解
イ
解説
医師表は診療科コードを外部キーとして持つため、診療科一つに対して医師が複数存在する。診察表は診療科コードと患者番号を外部キーとして持つので、診療科と患者はいずれも一つに対して複数の診察を対応させる。したがって正しい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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針