Skip to the content.

最終更新日:2026年8月12日

まず結論

関係演算で最優先で覚えるのは、次の3つです。

行を取り出す
→ 選択(selection)

列を取り出す
→ 射影(projection)

複数の表をつなぐ
→ 結合(join)

基本情報技術者試験では、表がどのように変化したかを見て演算名を判断する問題が出ます。

特に、列だけが減っているなら射影行だけが減っているなら選択と切り分けると速く判断できます。

直感的な説明

次の商品表を考えます。

商品番号 商品名 価格 数量
A01 カメラ 13000 20
A02 テレビ 58000 15
B01 冷蔵庫 65000 8

選択は「行を選ぶ」

例えば、価格が50000円以上の商品だけに絞ると、

商品番号 商品名 価格 数量
A02 テレビ 58000 15
B01 冷蔵庫 65000 8

となります。

列はそのままで、条件に合う行だけが残るので、これは選択です。

射影は「列を選ぶ」

商品番号と数量だけを取り出すと、

商品番号 数量
A01 20
A02 15
B01 8

となります。

行はそのままで、必要な列だけが残るので、これは射影です。

結合は「表をつなぐ」

例えば、商品表と在庫表を商品番号でつなぐとします。

商品表
商品番号 / 商品名

在庫表
商品番号 / 数量

これを商品番号で結び付けると、

商品番号 / 商品名 / 数量

という1つの表にできます。

これが結合です。

定義・仕組み

関係データベースでは、表を関係として扱います。

その関係を操作する代表的な方法が関係演算です。

関係モデルそのものの基本は、関係データベースとは?表・行・列と関係モデルの基本で整理しています。

代表的な関係演算は次のとおりです。

演算 操作 試験中の判断
選択 条件に合う行を取り出す 行が減る
射影 指定した列を取り出す 列が減る
結合 共通する属性などで表を結び付ける 表+表
2つの関係に含まれる組をまとめる 集合の和
2つの関係の組合せを作る 全組合せ
一方にだけ含まれる組を取り出す 集合の差
条件となる全ての組と関係する組を取り出す 「全て満たす」

選択

選択は、条件に合う行を取り出す演算です。

元の表
↓
条件に合う行だけ残す

例えば、

価格 >= 50000

という条件で商品を絞る操作が選択です。

射影

射影は、必要な列だけを取り出す演算です。

商品番号 / 商品名 / 価格 / 数量
↓
商品番号 / 数量

この場合、行を条件で絞っているわけではなく、列を選んでいます。

結合

結合は、複数の関係を共通する属性などで結び付ける演算です。

例えば、

商品表:商品番号 / 商品名
在庫表:商品番号 / 数量

を商品番号で結合すると、

商品番号 / 商品名 / 数量

という表を作れます。

このテーマは基本情報技術者試験のデータベース分野に含まれます。公式の出題範囲は、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

科目Aでは、表Xから表Yへの変化を見せて、どの関係演算を使ったかを問う形がよく出ます。

まず「何が減ったか」を見る

試験中は、次の順番で確認すると判断しやすいです。

1. 行が減ったか?
2. 列が減ったか?
3. 別の表とつながったか?

対応は次のとおりです。

行が減った
→ 選択

列が減った
→ 射影

表が増えて1つにつながった
→ 結合

選択と射影の切り分け

ここが最もよく混同します。

縦方向に絞る
→ 行を選ぶ
→ 選択

横方向に絞る
→ 列を選ぶ
→ 射影

表を紙だと思うと、イメージしやすくなります。

選択
→ 必要な行だけ残す

射影
→ 必要な列だけ残す

SQLとの対応

関係演算とSQLは完全に同じ概念ではありませんが、FE試験の理解には次の対応が役立ちます。

SELECT 商品番号, 数量
FROM 商品
WHERE 価格 >= 50000;

このSQLでは、

WHEREで行を絞る
→ 選択に近い

SELECT句で列を指定する
→ 射影に近い

と考えられます。

複数表をつなぐ場合は、JOINが結合に対応します。

SELECT 商品.商品番号, 商品.商品名, 在庫.数量
FROM 商品
JOIN 在庫
  ON 商品.商品番号 = 在庫.商品番号;

「併合」は基本の関係演算名ではない

選択肢に「併合(merge)」が出ても、関係モデルの基本演算として判断しないようにします。

試験では、まず次の用語を優先します。

選択
射影
結合
商

どんな場面で使う?

必要なデータだけを取り出す

業務では、表の全データを毎回使うわけではありません。

例えば、

東京支店の顧客だけ欲しい
→ 行を絞る
→ 選択

顧客番号と氏名だけ欲しい
→ 列を絞る
→ 射影

といった操作を行います。

複数の表を組み合わせる

関係データベースでは、データを複数の表に分けて管理することがあります。

顧客表
注文表
商品表

必要な情報を得るときは、これらをキーで結合します。

SQLを理解する土台になる

SQLを学ぶときも、関係演算の考え方があると整理しやすくなります。

WHERE
→ 行を絞る

SELECT 列名
→ 列を絞る

JOIN
→ 表をつなぐ

よくある誤解・混同

選択は「列を選ぶ」こと

日常語では「選択」という言葉から列を選ぶイメージもありますが、関係演算では違います。

選択
→ 行

射影
→ 列

ここは用語の意味より、試験用の対応で覚える方が安全です。

射影は表の一部を何でも取り出す操作

射影は、列を取り出す操作です。

条件に合う行を取り出すのは選択です。

結合は表を上下に追加する操作

結合は、共通する属性などを使って表を関連付ける操作です。

試験では、別の表にある情報が横方向に追加されるイメージで考えると分かりやすいです。

SQLのSELECTと関係演算の選択は同じ意味

名前が紛らわしい点に注意します。

SQLのSELECT句
→ 取得する列を指定する
→ 射影に近い

関係演算のselection(選択)
→ 行を取り出す
→ SQLのWHEREに近い

英語を含めて覚えると、混同を減らせます。

Selection selects rows. Projection picks columns.

まとめ(試験直前用)

  • 行を取り出す → 選択(selection)
  • 列を取り出す → 射影(projection)
  • 表をつなぐ → 結合(join)
  • 表の変化を見て、行・列・表のどれが変わったかを最初に確認する
  • SQLでは、WHEREが選択、SELECT 列名が射影、JOINが結合に近い
  • 「併合(merge)」は基本的な関係演算名として覚えない

© 2024-2026 stemtazoo. All rights reserved.