情報処理試験を勉強していると、「射影と選択、どっちが行でどっちが列?」と混乱しがちです。この記事では射影(Projection)の意味を、例え話と図解で整理します。
対象試験と出題頻度
射影は、ITパスポート・基本情報技術者・応用情報技術者のいずれでも出題される定番テーマです。
関係演算の比較問題として繰り返し出題されており、「選択」「結合」「和」との区別が問われます。
詳細をクリックして確認
ITパスポート
基本情報技術者
応用情報技術者
★★★★☆
ランクA(重要)必ず覚えておくべき
用語の定義
射影(Projection)とは、一言で言うと
「関係データベースの表から、指定した列(属性)だけを取り出す関係演算」
のことです。
イメージとしては、「名簿から名前の列だけをコピーして別の紙に書き写す操作」です。
クラス名簿に「出席番号・名前・住所・電話番号」の列があるとします。連絡網を作るために「名前」と「電話番号」だけを抜き出して新しい表を作ることが射影です。
行(レコード)は全件そのまま残り、不要な列だけが消えます。
📊 射影の基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Projection |
| 分類 | 関係演算(Relational Algebra)の一種 |
| 操作対象 | 列(属性 / カラム) |
| SQLでの対応 | SELECT句で列名を指定する操作 |
解説
関係データベースの理論的基盤である「関係モデル」は、1970年にE.F.コッドが提唱しました。このモデルでは、表に対する操作を「集合演算」と「関係演算」に分類しています。
射影は関係演算の代表格であり、表の”縦方向”を絞る操作として位置づけられています。
図解:射影の動き
社員テーブルから「社員名」と「部署」だけを取り出す射影の流れを図にすると、次のようになります。
射影(Projection)のイメージ
▼ 元の表:社員テーブル
| 社員ID | 社員名 | 年齢 | 部署 |
|---|---|---|---|
| 001 | 田中 | 30 | 営業 |
| 002 | 鈴木 | 25 | 開発 |
| 003 | 佐藤 | 28 | 営業 |
↓ 射影(社員名, 部署)
▼ 射影後の表
| 社員名 | 部署 |
|---|---|
| 田中 | 営業 |
| 鈴木 | 開発 |
| 佐藤 | 営業 |
▲ 黄色でハイライトした列だけが残り、社員IDと年齢の列は消える
SQLとの対応
射影は、SQLのSELECT句で列(属性)名を指定する操作に該当します。上の例をSQLで書くと次のとおりです。
SELECT 社員名, 部署
FROM 社員テーブル;
SELECT句が射影に対応し、WHERE句が「選択(Selection)」に対応します。
ここだけは確実に押さえてください。
関係演算の比較
射影を正しく理解するには、他の関係演算と「何を操作するか」で整理するのが近道です。
| 演算名 | 英語 | 操作内容 | 操作方向 |
|---|---|---|---|
| 射影 | Projection | 指定した列だけを取り出す | 縦(列) |
| 選択 | Selection | 条件に合う行(タプル)だけを取り出す | 横(行) |
| 結合 | Join | 複数の表を共通する属性でつなぎ合わせる | 表同士 |
| 和 | Union | 同じ構造の2つの表の行を足し合わせる | 表同士 |
「射影=列、選択=行」。
この対比だけで多くの問題を解けます。では、この知識が試験でどのように出題されるか見ていきましょう。
💡 射影の核心を3行で
・表から指定した「列」だけを抜き出す関係演算
・行を絞る「選択(Selection)」とはまったく別の操作
・SQLではSELECT句で列名を指定する操作がこれに当たる
試験ではこう出る!
射影は、IP・FE・APいずれの午前(科目A)問題でも繰り返し出題されています。出題パターンは大きく2つです。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE R1秋 科目A 問27 |
関係モデルにおいて、関係から特定の属性だけを取り出す演算はどれか。 | ・正解は「射影(Projection)」 ・結合・選択・和がひっかけ選択肢 |
| FE H26春 午前 問27 |
射影(Projection)の説明として適切なものを選ぶ。 | ・「表の中から特定の列だけを取り出す」が正解 ・和・選択・結合の説明文がひっかけ |
| FE サンプル 科目A 問24 |
表Xから表Yを得る関係演算はどれか。図から判断させる形式。 | ・列が減っている=射影と判断 ・「併合(merge)」という存在しない演算がダミー選択肢 |
| AP H23特別 午前 問29 |
表の中から特定の列だけを取り出す操作はどれか。 | ・FE H26春 問27とほぼ同一構成 ・FEとAPで同じ問題が流用される典型 |
| IP R5 問100 |
関係データベースにおける結合操作はどれか。 | ・「特定のフィールドを抜き出す=射影」が選択肢に含まれる ・直接射影を問う問題ではないが、区別が求められる |
📝 IPA試験での出題パターン
パターン1:「射影の説明を選べ」
4つの関係演算(射影・選択・結合・和)の説明文が並び、射影に該当するものを選ぶ形式。「特定の列を取り出す」が正解。「特定の条件に合致した行を取り出す」は選択なので注意。
パターン2:「図から演算名を答えよ」
変換前と変換後の2つの表が提示され、何の操作が行われたかを判断する形式。列が減っていれば射影、行が減っていれば選択です。
試験ではここまででOKです。関係代数の数学的な記法(π記号など)まで問われることはないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 関係データベースの操作のうち、射影(Projection)の説明として最も適切なものはどれでしょうか?
- A. 表の中から特定の条件に合致した行を取り出す。
- B. 二つ以上の表を共通する属性の値で結び付けて新しい表を作る。
- C. 表の中から特定の列だけを取り出す。
正解と解説を見る
正解:C
解説:
射影(Projection)は、表から指定した列(属性)だけを抽出する関係演算です。
選択肢Aは選択(Selection)の説明です。選択は条件に合致した「行」を取り出す操作であり、列を絞る射影とは操作の方向が異なります。選択肢Bは結合(Join)の説明です。結合は複数の表を共通属性でつなげて1つにまとめる操作であり、1つの表に対して列を絞り込む射影とは対象が異なります。
よくある質問(FAQ)
Q. 射影の結果、重複する行は残りますか?
関係モデルの理論上は、射影後に同じ内容の行(タプル)が複数存在する場合は重複が排除されます。関係モデルでは表は「集合」であり、同じ要素は1つしか存在できないためです。ただし実際のSQLでは、SELECT句だけでは重複は自動的に排除されず、DISTINCTキーワードを付ける必要があります。試験ではこの違いまで問われることは稀ですが、知識として持っておくと安心です。
Q. 射影と選択を同時に行うことはできますか?
できます。実務のSQLでは、SELECT句で列を絞り(射影)、WHERE句で行を絞る(選択)ことを1つのクエリで同時に行うのがむしろ普通です。たとえば「営業部の社員名だけを取り出す」場合、SELECT 社員名 FROM 社員テーブル WHERE 部署 = ‘営業’ のように書きます。
Q. 「商」という関係演算も試験に出ますか?
関係演算には射影・選択・結合のほかに「商(Division)」があります。商は「表Rのうち表Sの全項目を含む行の集合を返す」操作ですが、IP・FEレベルで単独出題される頻度は低いです。FEサンプル問題 科目A 問24で選択肢に「併合(merge)」というダミーが登場するように、存在しない演算名を見抜く力のほうが実戦では役立ちます。
Q. 射影は実務ではどのような場面で使いますか?
画面に表示する項目を必要最小限に絞る場合や、帳票やCSVエクスポートで特定のカラムだけを出力する場合に射影の考え方が使われます。不要な列を取得しないことでデータ転送量や処理コストを抑えられるため、パフォーマンスチューニングの基本としても重要です。