基本情報技術者試験のデータベース問題では、選択(WHERE句)と射影(SELECT句)を組み合わせた操作を理解することが重要です。問題文で対象としている列と異なる列の値が表示される可能性についても整理してイメージしておきましょう。
選択と射影の基本イメージ
選択は行(レコード)の絞り込みを行います。例えば、A1, A2, A3列の条件に一致する行だけを抽出する操作です。
射影は列(カラム)の選択を行います。SELECT句で指定された列のみを結果に出力します。
問題におけるA4列の値について
問題でA1, A2, A3列が対象の条件である場合でも、A4列の値が結果に出ることがあります。これは射影でA4列を選択している場合や、表結合(JOIN)などで別の表の列が参照されている場合です。
つまり、A4列の値が’a’として存在することはデータベース上で十分あり得ます。重要なのは、選択条件に影響するのがA1〜A3列であることです。
データベース上の状態をイメージする方法
1. 元のテーブルを行ごとに書き出してみる
2. 選択条件を満たす行をチェック
3. 射影で指定された列のみを抽出
この順序で操作を追うと、実際の値の状態が理解しやすくなります。
まとめ
選択は条件列に基づく行の絞り込み、射影は出力する列の指定です。対象外の列に値が存在すること自体は問題なく、結果に含まれるかどうかは射影やJOINの指定によります。問題文に沿って列と行の操作を順序立ててイメージすると理解が容易です。


コメント