最終更新日:2026年8月12日
fe fe-technology database relational-model
まず結論
関係演算で最優先で覚えるのは、次の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)」は基本的な関係演算名として覚えない