応用情報技術者 2013年 秋期 午前2 問45
問題文
E-R 図の解釈として、適切なものはどれか。ここで、* *は多対多の関連を表し、自己参照は除くものとする。

選択肢
ア:ある組織の親組織の数が、子組織の数より多い可能性がある。(正解)
イ:全ての組織は必ず子組織をもつ。
ウ:組織は2段階の階層構造である。
エ:組織はネットワーク構造になっていない。
🔒 解説は解答すると表示されます
E-R図の多対多関連【午前2解説】
正解の理由
図の両側に「*」が付されていることから、ここで示されている関連は多対多です。多対多の関連では、ある組織が複数の親組織に属し得る一方で、同じ組織が持つ子組織の数は別に決まるため、ある組織について「親の数が子の数より多くなる」ことは十分に可能です。したがって選択肢アが正しい説明になります。
解法ステップ
- 図の注(「*は多対多」)を確認し、関係が多対多であると把握する。
- 多対多の意味を考える:任意の一方の実体が複数の相手実体と結び付く可能性があること。
- 各選択肢を検討し、多対多の性質と照らして妥当性を判断する(必須性や階層の限定などを図から読み取れない点に注意)。
- 「ある組織について親の数が子の数より多くなることがあり得る」点が図の情報と整合するため、アを選ぶ。
選択肢別の誤答解説
- ア: 正。当該関連は多対多であり、各組織ごとの親数・子数はデータ次第で独立に変わるため、親数が子数より多くなる可能性がある。
- イ: 誤。図に「*(多)」が示されているが、必ず子を持つ(存在必須)ことは示されていない。多性(many)と必須性(mandatory)は別概念で、図では必須を示す記号がないため「必ず子組織をもつ」とは言えない。
- ウ: 誤。多対多の関連は階層を2段に限定するものではない。多対多は一つの関係を示すだけで、階層の段数や全体構造の深さについては制約を与えない。
- エ: 誤。多対多は複数の親子対応を許すため、場合によってはネットワーク(グラフ)状の構造になることがあるが、図だけでは必ずネットワークになると断定できない。したがって「ネットワーク構造になっていない」は成り立たない。
よくある誤解
- 「*=必須」という誤解:アスタリスクが「多(many)」を示していても、存在必須(0か1か等)は別の記法や明示が必要です。
- 「多対多は常にネットワークになる」:多対多はネットワークになり得ますが、実際のデータ次第では単純な階層に見える場合もあり、常にネットワーク構造とは限りません。
- 自己参照と混同しない:今回の問題は自己参照を除くと明示されているため、親子が同一エンティティ内で循環するケースは考慮しません(自己参照がある場合は別の扱いになります)。
補足コラム
- 多対多の実務的扱い:リレーショナルデータベースに落とす際は、中間(橋渡し)テーブルを作成して両側の実体の主キーを外部キーとして持たせるのが一般的です。例:
CREATE TABLE Organization (
org_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE Org_Relation (
parent_org_id INT,
child_org_id INT,
PRIMARY KEY(parent_org_id, child_org_id),
FOREIGN KEY(parent_org_id) REFERENCES Organization(org_id),
FOREIGN KEY(child_org_id) REFERENCES Organization(org_id)
);
- 表記の差異:図記法にはCrow's Foot記法やUMLなど複数あり、アスタリスク/3本線/0..* 表示などが混在します。問題文の定義を優先して読み取りましょう。
FAQ
Q1: 問題中の「*」は常に「多」を意味しますか?
A1: 本問では明示的に「*は多対多の関連を表す」と定義されています。一般的には表記法によって異なるため、図の注釈や問題文の定義を確認してください。
A1: 本問では明示的に「*は多対多の関連を表す」と定義されています。一般的には表記法によって異なるため、図の注釈や問題文の定義を確認してください。
Q2: 多対多の関連があると必ずネットワーク構造になりますか?
A2: 多対多は複数の親子対応を許すためネットワーク状になり得ますが、データや追加制約によっては階層に見える場合もあります。したがって「必ずネットワークになる」と断定するのは誤りです。
A2: 多対多は複数の親子対応を許すためネットワーク状になり得ますが、データや追加制約によっては階層に見える場合もあります。したがって「必ずネットワークになる」と断定するのは誤りです。
Q3: 図から「必須(存在制約)」が読み取れない場合はどう判断すべきですか?
A3: 問題文や図に必須性(例:1、0..1、1..* など)の記載がない限り、存在必須とは判断できません。「多」か「1」かはあっても、存在制約は別に表示されることが多い点を押さえてください。
A3: 問題文や図に必須性(例:1、0..1、1..* など)の記載がない限り、存在必須とは判断できません。「多」か「1」かはあっても、存在制約は別に表示されることが多い点を押さえてください。
関連キーワード: E-R図、多対多、カーディナリティ、親子関係、結合テーブル、正規化

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

