情報処理基礎論 a 第 12 回 (関係データベースと SQL ) 「集合演算」 講義ノート目次

データの集まり (集合) について何か行動を起こす (演算する) ので、 データを整理することを集合演算と呼ぶ。和演算、積演算、差演算の 3 つと、直積演算がある。

和演算: 2 つの関係表から、 どちらか一方あるいはどちらにも含まれるデータを取り出す

少なくともどちらか一方に存在しているものを取り出すので、表は大きくなる。

数学でいう C = {A ∪ B} の集合のことである。

演習5-3:下の 2 つの関係表に和演算を施すとどうなるか。

マラソン順位
属性
名前順位
レコード 1カウ1
レコード 2チキン3
レコード 3アル4
レコード 4フレム2
レコード 5レッドガイ5
100 m 走順位
属性
名前順位
レコード 1ウィゼル1
レコード 2カウ3
レコード 3チキン2
レコード 4レッドガイ6
レコード 5フレム4
レコード 6アル4

実際 100 m 走とマラソンの順位を一緒にしても無意味であるが、 演算の練習のため行っている。

積演算(共通演算): 2 つの関係表から、両方に含まれるデータを取り出す

どちらかに存在しているものを取り出すので、表は小さくなる。

数学でいう C = A ∩ B の集合のことである。

演習5-4:上の「マラソン順位」と「100 m 走順位」に積演算を施すとどうなる か。

差演算: 2 つの関係表から、どちらか一方にしか含まれないデータを取り出す

重なり合いが大きい場合、表は小さくなるが、 重なり合いが小さければ、表は大きくなる。 また、差演算はどちらの表を引くかで結果が異なる。

演習5-5:「マラソン順位」から「100 m 走順位」の差演算を施したものと、 「100 m 走順位」から「マラソン順位」の差演算を施したものと結果を比較せよ。

直積演算

数学でいうC = A ⊗ B である。

具体的には 2 つの表を全て組み合わせたものを作る。以下の 2 つの表

問屋一覧
属性
問屋コード店名所在地
レコード 1220ウニクロ千葉県浦安市
レコード 2221ハッサン北海道札幌市

在庫一覧
属性
問屋コード品物在庫数
レコード 1220シャツグリーン4
レコード 2220タオルブラウン2
レコード 3221ジャケットブラック15

の直積は

属性
問屋コード店名所在地品物在庫数
レコード 1220ウニクロ千葉県浦安市シャツグリーン4
レコード 2220ウニクロ千葉県浦安市タオルブラウン2
レコード 3221ハッサン北海道札幌市ジャケットブラック15

となる。