組織データモデルの制約

正解の理由 各モデルの構造と特徴を分析します。 モデルA: 「部」「課」「係」の固定エンティティを1対多の親子関連で直列に結合したモデル。 モデルB: 「組織」エンティティ自身の自己参照関連(再帰関連)で親子関係を表現したモデル。親側多重度は 0..1、子側多重度は * であり、制約記述 {階層} により循環が禁止されています。 モデルC: 「組織」エンティティと関連エンティティ「組織構造」による多対多の親子関係モデル。親と子の関連に制約記述が定義されていません。 モデルCでは、「組織」と「組織構造」の間で親と子の関連付けを行っていますが、モデルBのような制約記述 {階層} が存在しないため、組織Aが組織Bの親であり、かつ組織Bが組織Aの親であるといった「循環(ループ)」が発生する可能性があります。したがって、組織の親子関係が循環しないように制約を課す必要があります(エが正解です)。 各選択肢の解説 モデルAは「部」「課」「係」という固定のエンティティ構造をもつため、新しい組織レベル(例: 室、グループ)を新設・追加する場合にはテーブルや関連の変更が必要となります。 モデルCでは、関連エンティティ「組織構造」を介して親組織コードと子組織コードを多対多で保持できるため、1つの子組織が複数の親組織から管轄されるマトリクス型組織などを記述可能です。 モデルBを関係データベース上に実装する場合、1つの親組織に対して複数の子組織が存在する(1対多関係)ため、子組織側の行に「親組織コード」を外部キーとして持たせるのが定石です。親側に子組織コードを持たせると多値となって正規形に反します。 正しい記述です。モデルCでは制約記述が定義されていないため、親子関係の循環を防ぐ制約を別途設ける必要があります。

部,課,係の階層関係から成る組織のデータモデルとして,モデル A ~ C の三つの案が提出された。これらに対する解釈として,適切なものはどれか。組織階層における組織の位置を組織レベルと呼ぶ。組織間の階層関係は,親子として記述している。親と子は循環しないものとする。ここで,モデルの表記には UML を用い,{階層} は組織の親と子の関連が循環しないことを指定する制約記述である。

/api/media/public/uploads/contents/body/past-exams/db/2021/r03a/0f79a4054e51e6f62b4260a28bb82db92400c3c93370df88f72f53ce5d520648.png

出典2021r03a_db_am2_問2
ア
新しい組織レベルを設ける場合,どのモデルも変更する必要はない。
イ
どのモデルも,一つの子組織が複数の親組織から管轄される状況を記述できない。
ウ
モデル B を関係データベース上に実装する場合,親は子の組織コードを外部キーとする。
エ
モデル C では,組織の親子関係が循環しないように制約を課す必要がある。