選択(関係演算)とは?初心者向けにわかりやすく解説|データベース基礎
生徒
「先生、データベースの勉強で“選択(関係演算)”って出てきました。これはどんな意味なんですか?」
先生
「選択(センタク)は、関係代数(カンケイダイ数)の基本操作の一つです。英語ではSelection(セレクション)と呼ばれ、テーブルから条件に合う行だけを取り出す演算のことです。」
生徒
「条件に合うデータだけを抜き出すんですね。例えば“年齢が20歳以上の人”だけを表示するみたいなことですか?」
先生
「その通りです。テーブル全体から必要な部分だけを取り出すのが選択の役割なんです。」
生徒
「なるほど!SQL(エスキューエル)でいうWHERE句みたいなものですね?」
先生
「まさにその通りです。それでは詳しく見ていきましょう。」
1. 選択(関係演算)の基本とは?
選択(センタク)は、関係代数における基本的な演算で、英語ではSelection(セレクション)と呼ばれます。テーブル全体から条件に合った行(レコード)だけを抽出する操作のことです。例えば社員テーブルから「年齢が30歳以上の人」だけを取り出したり、顧客リストから「東京都在住の人」だけを取り出すといった処理です。
2. 選択のイメージ
選択はフィルターのような役割を持っています。例えば、クラス全員の名簿があるとします。その中から「出席番号が1から10までの生徒だけ」や「女子生徒だけ」といった条件を指定すると、その条件を満たす行だけが残ります。全体から必要な部分を取り出す操作なので、データを整理して見やすくするのに欠かせません。
3. SQLでの選択の表現
SQLでは、選択を実現するのにWHERE句を使います。以下は例です。
SELECT * FROM 社員
WHERE 年齢 >= 30;
このクエリでは、社員テーブルから年齢が30歳以上の社員だけを取り出しています。つまり関係代数の「選択」をSQLで表現したものです。
4. 選択で使える条件の種類
選択ではさまざまな条件を使えます。
- 比較演算子(大なり・小なり・イコールなど)
- 論理演算子(AND、OR、NOT)
- 部分一致(LIKEを使った検索)
- 範囲検索(BETWEENを使う)
例えば「年齢が20歳以上30歳以下の人」や「住所が東京の人」など、柔軟な条件を設定することができます。
5. 選択を使うメリット
選択を使うことで、大量のデータの中から必要な部分だけを素早く取り出せます。例えば、売上データから「2024年1月の売上だけ」を抜き出す、注文リストから「未発送の注文だけ」を抽出するなど、業務に直結した処理ができます。必要な情報に絞り込むことで、データ分析や集計が効率的になります。
6. 選択と射影の違い
関係代数には、選択のほかに射影(シャエイ)という操作もあります。選択は「行」を条件で絞り込むのに対して、射影は「列」を指定して取り出す操作です。例えば選択では「年齢が30歳以上の人」という条件を満たす行を取り出し、射影では「名前と住所の列だけ」を取り出すという違いがあります。両方を組み合わせることで、より柔軟な検索が可能になります。
7. 選択の歴史的な背景
選択という概念は、1970年代にエドガー・F・コッド(Edgar F. Codd エドガーエフコッド)が提唱した関係モデル(カンケイモデル)に基づいています。数学の集合論を応用してデータを扱う理論の中で、選択はデータを条件で絞り込むための基本的な操作として位置づけられました。今日のSQLにおけるWHERE句も、この理論に根ざしたものです。