IPA公式正解:エ モデルCでは,組織の親子関係が循環しないように制約を課す必要がある。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。モデルCは組織間の親子関係を連関エンティティ(組織構造)で多対多として表現していますが、モデルBのような循環を禁止する{階層}制約が記述されていません。そのため、関係がループしないよう別途制約を課す必要があります。
【詳細解説】■ 本問の核心・解法のポイント
組織構造のデータモデリングに関する3つの設計案(エンティティ固定型、自己参照型、関連テーブル型)の特徴と制約の違いを評価する問題です。
- モデルA:部・課・係を別エンティティとして定義
- モデルB:組織の自己参照(親0..1 対 子*)+循環防止制約{階層}
- モデルC:組織と組織構造エンティティによる多対多の関連
・各選択肢の徹底解説:
・ア:不適切です。モデルAは階層ごとにテーブル(部、課、係)が固定されているため、例えば「室」や「グループ」などの新しい組織レベルを追加する際にはテーブル定義の追加・変更が必要となります。
・イ:不適切です。モデルCでは、「組織」と「組織構造」の間で親・子双方が「1対*」で結合されているため、多対多の関連となり、1つの子組織が複数の親組織に所属するマトリクス組織などを記述できます。
・ウ:不適切です。モデルBをRDBに実装する場合、1つの組織レコードに対して親組織は高々1つ(0..1)であるため、「親組織コード」を外部キー列として組織テーブルに追加します。
・【選択肢エ★】:適切です。モデルBには循環を防ぐ制約「{階層}」が明記されていますが、モデルCには表記されていません。そのため、親子関係がA→B→C→Aのように循環してしまうのを防ぐには、アプリケーションや制約機能で循環防止のルールを課す必要があります。
よって正解はエです。