列A1〜A5から成るR表に対する次のSQL文は,関係代数のどの演算に対応するか。
SELECT A1, A2, A3 FROM R
WHERE A4 = 'a'
正答3
解説
正解は3です。
関係代数の演算には、行を取り出す選択、列を取り出す射影、表をつなぐ結合のほか、和・差・積などの集合演算があります。
本問のSQL文は、WHERE句で行を絞り込み、SELECT句で列を絞り込んでいます。
【選択肢別解説】
1:× 射影は含まれますが、結合は二つ以上の表を共通の列でつなぐ演算です。
このSQL文はR表だけを扱っているので、結合は行っていません。
2:× 差は二つの表のうち一方にだけある行を求める集合演算です。
このSQL文には差の演算は含まれません。
3:○ WHERE A4='a'で条件に合う行を取り出すのが選択です。
SELECT A1, A2, A3で特定の列だけを取り出すのが射影です。
4:× 和は二つの表の行を合わせる集合演算で、SQLではUNIONに当たります。
このSQL文には含まれません。
【ポイント】
SQLとの対応は、WHERE句が選択、SELECT句の列指定が射影、FROM句で複数表をつなぐのが結合です。
選択は横方向(行)、射影は縦方向(列)の切り出しと覚えましょう。