リレーショナル代数

これは大学の講義内容をまとめたものです。

リレーショナル「代数」とは

集合演算

和両立(union compatible)

直積演算

集合演算の演習

(1) 下記に示すリレーションRaとRbに対して、和集合、共通集合、差集合の各演算結果を求めよ

商品番号商品名値段
P1N1C1
P2N2C2
P5N5C5
P6N6C6
P8N8C8
商品番号商品名値段
P1N1C1
P3N3C3
P4N4C4
P7N7C7
P8N8C8

結果

商品番号商品名値段
P1N1C1
P2N2C2
P3N3C3
P4N4C4
P5N5C5
P6N6C6
P7N7C7
P8N8C8
商品番号商品名値段
P1N1C1
P8N8C8
商品番号商品名値段
P2N2C2
P5N5C5
P6N6C6

(2)下記に示すリレーションR1, R2に対して直積集合R1\(\times\)R2を求めなさい

A
a
b
c
BC
x1
y1
z1

結果

ABC
ax1
ay1
az1
bx1
by1
bz1
cx1
cy1
cz1

関係演算

選択演算(selection)

リレーションRの中から条件式Fを満たすタプルを抽出する演算 $$ \sigma_F(R) = \{ t | t \in R \wedge P_F(t) = true \} $$

射影演算(projection)

リレーションRから, 指定した属性集合βのみを持つリレーションを抽出する演算 $$ \pi_\beta(R) = { t[\beta] | t \in R } $$

結合演算(join)

二つのリレーションRとSを条件Fに従って一つのリレーションに結合する. 内部結合(inner join)とも呼ぶ. $$ R ⋈_F S = { (u, v) | u \in R \wedge v \in S \wedge P_F ((u, v) = true) } $$

等結合(equi-join)

結合演算の条件Fとして, 二つのリレーションの対応する属性が等しいことを用いるもの.

自然結合演算(natural join)

等結合で得られるリレーションから重複する属性を射影により取り除いたもの

外部結合演算(outer join)

一方のリレーションRのタプルのうち, もう一方のリレーションSに対応するタプルがないものは, 対応するSの属性値をNULLにする

集合演算の演習

(1)下記に示すリレーションRとSに対して, 結合条件を両リレーションにおける属性Bが等しいとした場合の内部結合, 自然結合, 左外部結合, 右外部結合, 完全外部結合の各演算結果を求めよ

AB
D001001
D002002
D003002
D004004
D005005
BC
001a
002b
003c
004d

結果

ABBC
D001001001a
D002002002b
D003002002b
D004004004d
ABC
D001001a
D002002b
D003002b
D004004d
ABBC
D001001001a
D002002002b
D003002002b
D004004004d
D005005NULLNULL
ABBC
D001001001a
D002002002b
D003002002b
NULLNULL003c
D004004004d
ABBC
D001001001a
D002002002b
D003002002b
NULLNULL003c
D004004004d
D005005NULLNULL

以下のリレーションRについて与えられた演算結果を求めよ

$$ \pi_{日付,}{}_{商品名}(\sigma_{日付=2013/10/3}(R)) $$

管理番号日付社員番号商品番号商品番号商品名値段
D0012013/10/1P001C003C003P2148,000
D0032013/10/1P005H001H001P339,800
D0042013/10/2P002M002M002P458,800
D0052013/10/2P001R001R001P149,800
D0062013/10/3P003C003C003P2148,000
D0082013/10/3P002M002M002P458,800

結果

日付商品名
2013/10/3P2
2013/10/3P4

商演算(division)

商演算は直積演算の逆演算

商演算の演習

次のリレーション、サークル活動、サークルに対して与えられた演算結果を求めなさい

$$ サークル活動 \div サークル $$

学生IDサークル名
001野球
002サッカー
003野球
003サッカー
005サッカー
005空手
008野球
008サッカー
008空手
011野球
011サッカー
011空手
サークル名
野球
サッカー
空手

結果

学生ID
008
011