IPA公式正解:エ モデルCでは,組織の親子関係が循環しないように制約を課す必要がある。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。モデルCは組織間の関連を「組織構造」という関連クラス(多対多の関連)で表現していますが、モデルBのような循環を防止する{階層}制約が記述されていないため、親子関係が循環しないように制約を課す必要があります。
【詳細解説】■ 本問の核心・解法のポイント
組織の階層構造(木構造やネットワーク構造)を表現するデータモデルの比較・解釈問題です。
・モデルA:部・課・係を別々のエンティティ(クラス)として定義する方式。階層レベルが固定化されます。
・モデルB:単一の「組織」クラスに対して自己参照関連を持たせる方式。多重度は親が0..1、子が*であり、{階層}制約によって循環が防止されています。
・モデルC:組織間の関連を「組織構造」テーブルとして独立させ、親と子の関連(多対多)を持たせる方式。木構造だけでなくマトリックス組織なども柔軟に表現できます。
・各選択肢の徹底解説:
・ア:新しい組織レベル(例:「室」や「グループ」など)を追加する場合、モデルAはクラスの追加や関連の変更が必要になります。そのため「どのモデルも変更する必要はない」は誤りです。
・イ:モデルCは親組織1に対して組織構造*、子組織1に対して組織構造*となっており、組織構造を介して多対多の親子関係を記述できます。したがって、1つの子組織が複数の親組織から管轄される状況(兼務やマトリックス組織)を記述可能です。
・ウ:モデルBを関係データベースに実装する場合、各組織レコードが自身の親組織コードを持つように実装するため、「子レコード」側が親の組織コードを外部キーとして保持します。「親が子の組織コードを外部キーとする」は逆であり誤りです。
・エ:【選択肢エ★】モデルBには{階層}制約が付与されていますが、モデルCには親子関係が循環(ループ)しないための制約が図上に明記されていないため、親子関係が循環しないように別途制約を課す必要があります。
よって正解はエです。