平成25年度 春期 午前 問27
データベース
関係代数に関する問題
列 A1 〜 A5 から成る R 表に対する次の SQL 文は,関係代数のどの演算に対応するか。
SELECT A1, A2, A3 FROM R
WHERE A4 = 'a'- ア結合と射影
- イ差と選択
- ウ選択と射影
- エ和と射影
答えと解説を見る
✓ これが正解ウ選択と射影
解説
行を絞るのが選択、列を絞るのが射影に当たります。
この設問は、SQLの句を関係代数の演算へ一つずつ訳し直せば決まります。条件を書き添える句は、その条件に合う行だけを残す働きなので、関係代数では選択と呼ばれる演算に当たります。取り出す列名を並べる句は、五つある列のうち三つだけを残す働きなので、射影と呼ばれる演算に当たります。参照している表は一つしかないため、二つ以上の表がそろって初めて成り立つ演算は起きません。判定の軸は二つで、縦と横のどちらを削っているかと、関わっている表が何個かです。なお名前が交差している点に注意が必要です。関係代数で選択と呼ぶ働きを、SQLでは条件を書く句のほうが担っており、列を並べる句の名前に引かれると逆に読んでしまいます。
ほかの選択肢はなぜ違うのか
- ア結合と射影:二つ以上の表を共通する値でつなぎ合わせる演算が含まれています。ここで参照しているのは一つの表だけなので、つなぎ合わせる相手がそもそも存在しません。
- イ差と選択:二つの表を突き合わせて片方にしかない行を取り出す演算が含まれています。比べる相手の表が無いうえ、列を三つに絞る働きも説明できていません。
- エ和と射影:二つの表の行を寄せ集める演算が含まれています。行を増やす向きの働きなので、条件に合う行だけを残すという肝心の部分が抜け落ちています。
出典:平成25年度 春期 基本情報技術者試験 午前 問27(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)