DBデータベーススペシャリスト試験 午前Ⅱ
平成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、診察側が*です。この選択肢はその部分を正しく示していますが、医師と診療科の関連で医師側を1としており、所属関係の向きが誤っています。また、診察と患者の向きも逆です。
学習のポイント
主キーと外部キーの対応から、1対多の向きを判定する方法を学びます。
出典:独立行政法人 情報処理推進機構(IPA)平成31年度春期 データベーススペシャリスト試験 午前Ⅱ 問5(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針