過去問解きまくり研究所 ホーム

令和3年度 秋期 午前Ⅱ 問2

データベース設計

UMLに関する問題

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

モデルA~C:

モデルA
  部(部コード) 1 親 ―― 子 * 課(課コード)
  課(課コード) 1 親 ―― 子 * 係(係コード)

モデルB
  組織(組織コード,組織レベル)
  組織から組織自身への関連(自己関連):親側 0..1 ―― 子側 *
  関連に制約 {階層} を付記

モデルC
  組織(組織コード,組織レベル)
  組織構造(親組織コード,子組織コード)
  組織 1 親 ―― * 組織構造
  組織 1 子 ―― * 組織構造
答えと解説を見る

✓ これが正解エモデル C では,組織の親子関係が循環しないように制約を課す必要がある。

解説

親子の組を別に持つモデル C は、循環を防ぐ制約を別に課す必要があります。

モデル C は、組織とは別に組織構造というクラスを置き、親組織コードと子組織コードの組で親子関係を一つずつ記録する形です。この形は一つの子に複数の親を持たせることもできる柔軟さがある反面、ある組織の子孫がその組織自身の親になるような組を登録することも、構造だけでは防げません。モデル B には {階層} という制約記述が付いていて循環しないことが明示されていますが、モデル C には付いていません。そのため、親子関係が循環しないように制約を課す必要がある、という解釈が適切です。見分ける軸は、各モデルがどの状況を記述でき、どの状況を構造だけでは防げないかです。親子の組を別のクラスに持たせるモデルは、自由度が高いぶん制約を自分で足す必要がある、と押さえておくと判断しやすくなります。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問2

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)