データベーススペシャリスト 平成21年春期 午前U 問6

午前U 問6

複数の事業部,部,課及び係のような組織階層の概念データモデルを,第3正規形の表,
   組織(組織ID,組織名,…)
として実装した。組織の親子関係を表示するSQL文中の a に入れるべき適切な字句はどれか。ここで,"組織"表記述中の下線部は,主キーを表し,追加の属性を想定する必要がある。また,モデルの記法としてUMLを用いる。{階層}は組織の親子関係が循環しないことを指示する制約記述である。
06_1.gif/image-size:148×96
06_2.gif/image-size:366×63
  • 組織1.親組織ID = 組織2.子組織ID
  • 組織1.親組織ID = 組織2.組織ID
  • 組織1.組織ID = 組織2.親組織ID
  • 組織1.組織ID = 組織2.子組織ID
  • [この問題の出題歴]
  • データベース H15春期 問30

分類

テクノロジ系 » データベース » データ操作

正解

解説

親組織から見た子組織は*(0以上)、子組織から見た親組織は0..1(0又は1)です。クラス図(E-R図も同じ)における1対多の関係はリレーショナルモデルの主キーと外部キーの関係に変換されるため、"組織"表に2つのクラスを関連付けるため属性"親組織ID"を追加し、以下のように組織の階層関係を表現することになります。
06_3.gif/image-size:536×212
上記より"組織"表には子組織IDが存在しないことが分かったため、選択肢のうち正解の候補は「イ」「ウ」の2つになります。この2つの違いは結合のキーにしている属性の違いですが、実際に結合を施してみると「イ」では第1列目が子組織名、第2列目が親組織名になり、「ウ」では第1列目が親組織名、第2列目が子組織名になります。SELECT文の列名指定は第1列目:親組織名、第2列目:子組織名となっているため「ウ」が適切な結合条件です。
06_4.gif/image-size:560×523
© 2016-2019 データベーススペシャリストドットコム All Rights Reserved.

Pagetop