平成24年度 春期 午前 問31
データベース
関係演算に関する問題
表 R に対する次の SQL 文の操作はどの関係演算か。
〔表 R〕
| A1 | A2 | A3 | A4 | A5 |
|---|
(表の見出し行だけが示され,データ行は無い) 〔SQL 文〕 SELECT A1, A3, A5 FROM R
- ア結合
- イ差
- ウ射影
- エ直積
答えと解説を見る
✓ これが正解ウ射影
解説
列だけを選び、扱う表も一つだけです。
この SQL 文が指定しているのは、表 R から A1、A3、A5 という三つの列を取り出すことだけです。取り出す行を絞り込む条件は書かれていないので、行はすべてそのまま残り、横方向の幅だけが狭くなります。関係演算のうち、こうして必要な列だけを抜き出す操作を射影と呼びます。ここで見分けの手掛かりになるのは二つあります。一つは、狭めているのが列の側か行の側かということ。もう一つは、相手となる表がもう一つ必要な操作かどうかということです。この文には表の名前が一つしか出てこないので、二つの表を突き合わせたり比べたりする操作は当てはまりません。判定の軸は、この列と行のどちらを扱う操作か、そして表がいくつ必要な操作かの二点です。
ほかの選択肢はなぜ違うのか
- ア結合:二つ以上の表を共通する値で突き合わせて、一つにまとめる操作を指します。この文に出てくる表は一つだけなので、突き合わせる相手そのものが存在しません。
- イ差:二つの表を比べて、一方にしか無い行を取り出す操作を指します。行の集まりどうしを引き算する形なので、こちらも相手の表が必要ですし、選んでいるのは列ではありません。
- エ直積:二つの表のすべての行を総当たりで組み合わせ、掛け算の数だけ行を作る操作を指します。相手の表が必要なうえに、列を絞り込む働きは持っていません。
出典:平成24年度 春期 基本情報技術者試験 午前 問31(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)