令和6年秋期試験問題 午前Ⅱ 問8

図のツリー構造に対するデータを格納した"隣接リスト"表から,リーフノードを取得するSQL文のaに入れる字句はどれか。ここで,図の丸はノードを表し,矢印は親ノードから子ノードへの関係を表す。
08.png
〔SQL文〕
SELECT 子ノード FROM 隣接リスト
a
SELECT 親ノード FROM 隣接リスト

  • EXCEPT
  • INTERSECT
  • UNION
  • UNION ALL
正解 問題へ
分野 :テクノロジ系
中分類:データベース
小分類:データ操作
解説
リーフノードとは、木構造の末端に位置し、子ノードを持たないノードを指します。設問の木構造では「D、E、G」がリーフノードに該当します。

「D、E、G」は隣接リスト表上で「子ノードとして存在しながら、親ノードではない」という特徴を持ちます。したがって、EXCEPT(差演算)を使用して、子ノードの一覧から親ノードの一覧を差し引けばリーフノードのみを取得することができます。

したがって「ア」が正解です。
  • 正しい。EXCEPTは、2つの結果セットR、Sについては差集合(R-S)を得る演算です。設問の場合、リーフノードである「D、E、G」が取得されます。
  • INTERSECTは、2つの結果セットの共通集合を得る演算です。設問の場合、親ノードである「A、B、C、F」が取得されます。
  • UNIONは、2つの結果セットの和集合を得る演算です。設問の場合、A~Gの全てのノードが重複なしで取得されます。
  • UNION ALLは、2つの結果セットの和集合を得る演算です。UNIONとの違いは重複行もそのまま表示される点です。設問の場合、A~Gの全てのノードが重複ありで取得されます。

Pagetop