過去問解きまくり研究所 ホーム

令和6年度 秋期 午前Ⅱ 問8

データ操作

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

ツリー構造:

A → B
A → C
B → D
B → E
C → F
F → G

隣接リスト

親ノード子ノード
NULLA
AB
AC
BD
BE
CF
FG

〔SQL文〕

SELECT 子ノード FROM 隣接リスト
[ a ]
SELECT 親ノード FROM 隣接リスト
答えと解説を見る

✓ これが正解アEXCEPT

解説

子ノードの集合から親ノードの集合を差し引く EXCEPT で葉が残ります。

リーフノードは、子を持たないノード、つまり子ノードとしては現れるのに、親ノードとしては一度も現れないノードです。前半の SELECT は子ノードの列から A、B、C、D、E、F、G を返し、後半の SELECT は親ノードの列から NULL、A、A、B、B、C、F を返します。前者から後者に含まれるものを取り除く差の演算 EXCEPT を使うと、A、B、C、F が除かれ、D、E、G が残ります。図を見ても、子ノードを持たないのは D、E、G で一致します。見分ける軸は、二つの集合のどちらにあり、どちらにないものを求めるかです。一方にだけあるものは差、両方にあるものは共通部分と対応させて考えましょう。

ほかの選択肢はなぜ違うのか

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問8

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)