關係代數是關係型資料庫理論基石,定義了對關係(表)進行操作的一組運算。分為傳統集合運算與專門關係運算兩大類。
| 運算 | 符號 | 定義 | 結果特徵 |
|---|---|---|---|
| 並 | R ∪ S | { t | t ∈ R ∨ t ∈ S } | n 目關係,去重 |
| 差 | R - S | { t | t ∈ R ∧ t ∉ S } | n 目關係 |
| 交 | R ∩ S | { t | t ∈ R ∧ t ∈ S } = R - (R - S) | n 目關係 |
| 笛卡爾積 | R × S | { tr ts | tr ∈ R ∧ ts ∈ S } | (n+m) 列,k1×k2 行 |
R(A1, A2, ..., An) 的一個關係實例R ⋈_θ S = { tr ⌢ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] θ ts[B] }
A, B 為度數相等且可比的屬性組;θ 為比較運算符
θ 為 =,從笛卡爾積中選取 A、B 屬性值相等的元組。
給定 R(X, Y)、S(Y, Z),Y 同域。R ÷ S 產生 P(X):
R ÷ S = { tr[X] | tr ∈ R ∧ π_Y(S) ⊆ Yx }
Yx = { t[Y] | t ∈ R, t[X] = x } 為 x 的象集
R 中 a1 象集含 {(b1,c2), (b2,c3), (b2,c1)},S 投影為 {(b1,c2), (b2,c1), (b2,c3)}。
只有 a1 的象集完全包含 S 的投影 → R ÷ S = {a1}。
掌握關係代數,是理解 SQL 執行計畫、優化查詢與資料庫理論研究的關鑰。