基本情報技術者 2010年 春期 午前(科目A) 問46
問題文
データモデルが次の表記法に従うとき、E-R図の解釈に関する記述のうち、適切なものはどれか。

選択肢
ア:同一の商品は一つの仕入先から仕入れている。
イ:発注明細と納品明細は1対1に対応している。
ウ:一つの発注で複数の仕入先に発注することはない。(正解)
エ:一つの発注で複数の商品を発注することはない。
🔒 解説は解答すると表示されます
多重度の解釈【午前解説】
正解の理由
E-R図の線上にある多重度ラベルは「そのラベルに近いエンティティが、相手エンティティの1件に対して何件対応するか」を示します。図で「仕入先 — 発注」間は仕入先側に
1、発注側に 0..* と表示されています。これを上のルールで読むと「発注1件に対して仕入先は1件対応する(=発注は必ず1つの仕入先に紐づく)。一方で、仕入先1件に対しては発注が0件以上対応する」となります。したがって、一つの発注で複数の仕入先に発注することはありえないため、選択肢ウが正しいです。解法ステップ
- 多重度ラベルの読み方を確認する:「ラベルが近いエンティティが、相手1件に対して何件になるか」を読む。
- 問われている命題に関係する線(ここでは「仕入先 — 発注」)のラベルを見る。
- ラベルを上の読み方で解釈して命題の真偽を判断する(発注1件 → 仕入先1件 → 選択肢ウが成立)。
選択肢別の誤答解説
-
ア: 同一の商品は一つの仕入先から仕入れている。
図の「商品 — 仕入先」は商品側0..*、仕入先側1..*です。ラベル近接ルールで読むと「商品1件に対して仕入先は1件以上(1..*)存在し得る」つまり同一商品が複数の仕入先を持つ可能性があるため、アは誤りです。 -
イ: 発注明細と納品明細は1対1に対応している。
発注明細と納品明細の間に直接の関係線は図にありません。発注明細は「発注」に紐づき、発注明細は各々1件の「商品」に対応します(商品側ラベルが1、発注明細側が0..)。一方、商品と納品明細の線では商品側が1、納品明細側が0..*であり、商品1件に対して納品明細が複数ある可能性があります(注意:ここが以前の誤記のポイントで、納品明細が「1」側である、という記述は誤りです。実際は商品側が「1」で、納品明細側が「0..」です)。従って、発注明細→商品→納品明細 の経路を辿ると、発注明細1件が多数の納品明細に対応する可能性があり、1対1とは限りません。イは誤りです。 -
ウ: 一つの発注で複数の仕入先に発注することはない。
「仕入先 — 発注」のラベル(仕入先側1、発注側0..*)の解釈から、発注1件は仕入先1件に対応するため、発注が複数仕入先にまたがることはない。よってウが正解です。 -
エ: 一つの発注で複数の商品を発注することはない。
「発注 — 発注明細」は発注明細側が1..*、発注側が1です。ラベル読みで発注1件に対して発注明細が1件以上存在し得ます。さらに各発注明細は1つの商品に対応するため、発注1件で複数の発注明細(=複数の商品)を含むことができます。したがってエは誤りです。
よくある誤解
- 多重度ラベルは「そのラベルが近い側のエンティティが相手1件に対して何件か」を示す、という読み方を逆にしてしまう(「相手側が何件か」と誤解する)。
- 図の線が遠回りして結ばれている場合に、どちらのラベルがどのエンティティに対応するか混同する(ラベルの位置=近さで判断する)。
- 間接的な経路(A→B→C)があると「AとCは1対1だろう」と安易に結論する。必ず経路上の各多重度を踏まえて推論する必要がある。
補足コラム
E-R図の多重度(カーディナリティ)は設計上最も重要な情報の一つです。読み方を一度ルール化して身につけておくと、誤解が減ります。代表的な読み方は次の通りです(図の線に対してラベルが「近い側」を X、反対側を Y とした場合):
- X に書かれた値 =「Y の1件に対して X が何件対応するか」
具体例:X が1、Y が0..*なら「Y1件 → X1件」「X1件 → Y0..*件」ではなく、正しくは「Y1件につきXは1件、X1件につきYは0..*件」と読む(位置関係に注意)。
また、ER の表記法はツールや教科書によって記号や向きの慣習が若干異なるため、試験やプロジェクトで使われる図の凡例(注記)をまず確認する習慣をつけてください。
FAQ
Q: ラベルが線の中央近くにあってどちらのエンティティに近いか分かりにくいときは?
A: ラベルの書かれている側近辺のエンティティ名や矩形の辺との距離で判定します。凡例があれば必ず参照してください。
A: ラベルの書かれている側近辺のエンティティ名や矩形の辺との距離で判定します。凡例があれば必ず参照してください。
Q: 間接関係(A→B→C)で A と C の対応関係はどう判断する?
A: A–B と B–C の両方の多重度を掛け合わせて考えます(最小値・最大値をそれぞれ推定)。経路上のいずれかが多重(*)であれば1対多や多対多になる可能性があります。
A: A–B と B–C の両方の多重度を掛け合わせて考えます(最小値・最大値をそれぞれ推定)。経路上のいずれかが多重(*)であれば1対多や多対多になる可能性があります。
Q: 「0..」と「1..」の違いは?
A: 「0..」は「ゼロ件もあり得る(任意)」、 「1..」は「最低1件は必須(必須の多重度)」を表します。設計で必須性の違いは制約に直結します。
A: 「0..」は「ゼロ件もあり得る(任意)」、 「1..」は「最低1件は必須(必須の多重度)」を表します。設計で必須性の違いは制約に直結します。
関連キーワード: E-R図、多重度、Cardinality、リレーションシップ、発注、仕入先、発注明細、納品明細、商品

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

