DBデータベーススペシャリスト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

複数の事業部,部,課及び係のような組織階層の概念データモデルを,第3正規形の表,組織(組織ID,組織名,…)として実装した。組織の親子関係を表示するSQL文中のaに入れるべき適切な字句はどれか。ここで,“組織”表記述中の下線部は,主キーを表し,追加の属性を想定する必要がある。また,モデルの記法としてUMLを用いる。{階層}は組織の親子関係が循環しないことを指示する制約記述である。 SELECT 組織1.組織名 AS 親組織,組織2.組織名 AS 子組織 FROM 組織 AS 組織1,組織 AS 組織2 WHERE a
組織クラスの自己関連を,子組織側の多重度*,親組織側の多重度0..1,及び階層制約で示すUML図。
組織クラスの自己関連を,子組織側の多重度*,親組織側の多重度0..1,及び階層制約で示すUML図。

選択肢

  1. ア
    組織1.親組織ID = 組織2.子組織ID
  2. イ
    組織1.親組織ID = 組織2.組織ID
  3. ウ
    組織1.組織ID = 組織2.親組織ID
  4. エ
    組織1.組織ID = 組織2.子組織ID
解き方のヒントを見る

依存関係を整理するための視点

正規形を検討するときは、属性どうしの依存関係をいきなり結論づけず、どの属性の組合せが判断の起点になり、依存先が何かを整理してから、全体の構造を段階的に見直すことが大切です。各段階で同じ観点を保ちます。

この問題で問われていること

確認の中心は、表の中である情報を決める手がかりと、そこから影響を受ける情報の対応を一つの視点で追うことです。各属性の役割とまとまりを書き出し、条件を混ぜずに比較して、構造上の特徴を説明できるかを確かめてください。

視点

依存関係を読むときは、属性名そのものの印象に引っ張られず、各情報がどの情報と結び付いているか、また同じまとまりの中で役割が重なっていないかを観察します。結論は急がず、関係を図や表で整理して見比べます。

確認ポイント

  • 判断の起点になる属性や組合せを整理したか
  • 起点と結び付く情報を混同せず区別したか
  • 整理した関係を表全体のまとまりとして説明できるか
正解と解説を見る

正解

ウ

解説

組織表を親側と子側の別名で二度参照し、子組織の親を示す属性と親組織の主キーを結び付ける自己結合を作る。子には親が高々一つ、親には複数の子が対応するため、親側の組織IDと子側の親組織IDを等値比較する。

理由

SELECT句では組織1を親組織、組織2を子組織として表示している。子組織の行が保持する親組織IDは、親組織の行の主キーである組織IDを参照する。そのため、親側の組織1.組織IDと子側の組織2.親組織IDを結合する。

比較

図の親組織は0..1の親を持つ子組織に対応し、子組織は親から複数存在できる。したがって、親組織IDと子組織IDを入れ替えたり、存在しない子組織IDとの対応を条件にしたりする選択肢は、図の親子関係を表さない。

選択肢ア

これは不正解だよ。親組織側の親組織IDと、子組織側の子組織IDを比較しているが、子組織を識別するのは組織IDであり、親を示すのは子側の親組織IDである。親子を逆向きに対応付けているため、図の自己参照関係を表せない。

選択肢イ

これは不正解だよ。親組織側の親組織IDを子組織側の組織IDと比較している。親組織を表す行では、その組織自身を識別する組織IDを使う必要があり、親組織IDを使うと親のさらに上位を参照する形になるため、表示する親子の対応と一致しない。

選択肢ウ(正解)

これは正解だよ。組織1を親組織、組織2を子組織とすると、親組織の組織IDと、子組織が保持する親組織IDを等しくすることで、直接の親子を結合できる。これは自己参照関係の主キーと参照属性の対応に合致している。

選択肢エ

これは不正解だよ。親組織側の組織IDと子組織側の子組織IDを比較しているが、子組織側で親を示す属性は親組織IDである。子組織IDを使うと、親の識別子と子自身の識別子を対応させることになり、親子関係の参照方向が表現できない。

学習のポイント

自己参照表では、親子の役割と外部キーの向きを対応付けて読む。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 データベーススペシャリスト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針