データベーススペシャリスト令和3年秋期 午前U 問2

午前U 問2

部,課,係の階層関係から成る組織のデータモデルとして,モデルA〜Cの三つの案が提出された。これらに対する解釈として,適切なものはどれか。組織階層における組織の位置を組織レベルと呼ぶ。組織間の階層関係は,親子として記述している。親と子は循環しないものとする。ここで,モデルの表記にはUMLを用い,{階層}は組織の親と子の関連が循環しないことを指定する制約記述である。
02.gif/image-size:463×222
  • 新しい組織レベルを設ける場合,どのモデルも変更する必要はない。
  • どのモデルも,一つの子組織が複数の親組織から管轄される状況を記述できない。
  • モデルBを関係データベース上に実装する場合,親は子の組織コードを外部キーとする。
  • モデルCでは,組織の親子関係が循環しないように制約を課す必要がある。
  • [この問題の出題歴]
  • データベース H28春期 問4
  • データベース H31春期 問3

分類

テクノロジ系 » データベース » データベース設計

正解

解説

  • モデルAは、新しい組織レベル(事業所や班など)が設けられる度に新しいクラスを追加する必要があります。モデルB及びモデルCは"組織"という汎用的なクラスですので、新たな組織をそのまま当てはめることができます。
  • モデルCでは、{親組織:A,子組織:B}と{親組織:C,子組織:B}という組織構造が許されるので、1つの子組織を複数の親組織が管轄する状況を表現できます。モデルA及びモデルBでは、親組織の数が最大で1なので複数の親組織を表現できません。
  • モデルBでは、親と子の関係は「0..1対*」になっています。関係データベースへの変換ではクラス図における多重度が「0..1」「1」のクラスが参照される側、「*」のクラスが参照する側になります。したがって子の組織コードが主キー、親の組織コードが外部キーになります。
  • 正しい。モデルCは、{親組織:A,子組織:B}と{親組織:B,子組織:A}の組合せのような循環関係や{親組織:A,子組織:A}などの自己参照を制約できていません。また最上位の組織を記述するためには、親の多重度を0..1にしなくてはなりません。
© 2016-2021 データベーススペシャリストドットコム All Rights Reserved.

Pagetop