「AかつB」「AまたはB」という日常語が、数学では厳密に定義されている。SQLのJOINで悩んだことがあるなら、それは集合論の問題だった。ベン図を一度理解すると、データ操作の見え方が変わる。

集合 和集合 積集合 差集合 ベン図

集合とは

集合(set)とは、ある条件を満たす要素の集まりである。19世紀末、ドイツの数学者ゲオルク・カントールによって厳密に定式化された。集合論は現代数学の基盤であり、データベースやプログラミング言語の設計にも深く影響している。

集合の表記

A = {1, 2, 3} ... 要素を列挙

B = {x | x は偶数} ... 条件で定義

∈ ... 「属する」(2 ∈ A は「2はAに属する」)

∅ ... 空集合(要素が1つもない集合)

基本的な集合演算

和集合(Union)

和集合 A ∪ B

AまたはBに属する要素すべての集合。

A = {1, 2, 3}, B = {2, 3, 4} のとき、A ∪ B = {1, 2, 3, 4}

積集合(Intersection)

積集合 A ∩ B

AかつBに属する要素の集合。

A = {1, 2, 3}, B = {2, 3, 4} のとき、A ∩ B = {2, 3}

差集合(Difference)

差集合 A − B(または A \ B)

Aに属するがBに属さない要素の集合。

A = {1, 2, 3}, B = {2, 3, 4} のとき、A − B = {1}

補集合(Complement)

補集合 A'(または Ā、Ac

全体集合Uのうち、Aに属さない要素の集合。

U = {1, 2, 3, 4, 5}, A = {1, 2} のとき、A' = {3, 4, 5}

ベン図

ベン図(Venn diagram)は、集合の関係を視覚的に表す図法である。円や楕円で集合を表し、重なりで積集合、全体で和集合を示す。複雑なJOIN操作やフィルタ条件を考える際、頭の中でベン図を描くと整理しやすい。

SQLとの対応

集合演算 SQL 説明
A ∪ B UNION 両方のクエリ結果を結合(重複除去)
A ∩ B INTERSECT 両方に存在するレコード
A − B EXCEPT / MINUS Aにあり、Bにないレコード
A × B CROSS JOIN 直積(すべての組み合わせ)

JOINは集合演算の応用である。INNER JOINは共通キーでの積集合的な結合、LEFT JOINは片方を基準にした拡張である。

実務での応用

WEB開発での応用

SQLクエリ設計:複雑な抽出条件を集合演算として整理すると、効率的なクエリが書ける。

配列操作:JavaScriptのfilter、Pythonのset演算は集合論そのもの。

権限管理:ユーザーの権限集合と必要権限集合の積集合で、アクセス可否を判定。

AI/MLでの応用

特徴量選択:複数のフィルタ条件の組み合わせを集合演算で表現。

データ分割:訓練/検証/テストセットは互いに素な集合(共通部分なし)。

集合ベースの類似度:Jaccard係数は |A ∩ B| / |A ∪ B| で定義される。

深掘りリンク