令和6年度 秋期 データベーススペシャリスト試験 午前II 問8
テクノロジデータベース
この問題は2024(R6)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
図のツリー構造に対するデータを格納した“隣接リスト”表から,リーフノードを取得するSQL文のaに入れる字句はどれか。ここで,図の丸はノードを表し,矢印は親ノードから子ノードへの関係を表す。

図の説明テキスト
木構造の図。最上位にノードAがある。AからBとCへ矢印が伸びている。BからはDとEへ矢印が伸びている。CからはFへ矢印が伸びている。FからはGへ矢印が伸びている。

図の説明テキスト
隣接リスト
| 親ノード | 子ノード |
|---|---|
| NULL | A |
| A | B |
| A | C |
| B | D |
| B | E |
| C | F |
| F | G |

図の説明テキスト
〔SQL文〕
SELECT 子ノード FROM 隣接リスト
a
SELECT 親ノード FROM 隣接リスト
解答・解説を読む
正解: 選択肢ア
リーフノードとは、木構造(ツリー構造)において子を持たないノードのことです。
隣接リスト表は、通常「ノード」と「親ノード」などの関係を保持します。すべてのノードの集合から、他のノードの親として登場するノード(親ノード)を除外すれば、子を持たないリーフノードを抽出できます。
SQLにおける EXCEPT は、左側のSELECT結果から右側のSELECT結果を差し引いた 差集合 を取得する演算子です。したがって、すべてのノードの集合から、親ノードの集合を EXCEPT で引くことでリーフノードを取得できます。
各選択肢の解説
- ア:
EXCEPTは 差集合 を求める演算子であり、すべてのノードから親ノードを除外してリーフノードを抽出できるため、正解です。 - イ:
INTERSECTは 積集合(両方に共通するデータ)を求める演算子です。 - ウ:
UNIONは 和集合(両方のデータを合わせる、重複は排除する)を求める演算子です。 - エ:
UNION ALLは重複を含む 和集合 を求める演算子です。