首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

數據庫關係代數與關係運算完整指南:並、差、交、笛卡爾積、選擇、投影、連接、除運算

     編輯:DB2 教學

數據庫關係代數與關係運算完整指南

關係代數是關係型資料庫理論基石,定義了對關係(表)進行操作的一組運算。分為傳統集合運算與專門關係運算兩大類。

一、傳統集合運算(前提:同目、同域)

運算符號定義結果特徵
並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:關係模式 R(A1, A2, ..., An) 的一個關係實例
  • t ∈ R:t 是 R 的一個元組
  • t[Ai]:元組 t 在屬性 Ai 上的分量
  • A = {Ai1, ..., Aik}:屬性組;t[A] 為投影;Ā 為補集屬性組
  • tr ⌢ ts:元組連接,前 n 分量來自 R,後 m 分量來自 S
  • Zx = { t[Z] | t ∈ R, t[X] = x }:x 在 R 中的象集

三、連接運算

1. θ-連接

R ⋈_θ S = { tr ⌢ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] θ ts[B] }
A, B 為度數相等且可比的屬性組;θ 為比較運算符

2. 等值連接

θ 為 =,從笛卡爾積中選取 A、B 屬性值相等的元組。

3. 自然連接

  • 特殊等值連接:比較屬性組必須同名同域。
  • 結果中去除重複屬性列(同時從行、列運算)。
  • R ⋈ S = { tr ⌢ ts | tr ∈ R ∧ ts ∈ S ∧ tr[B] = ts[B] }

4. 外連接

  • 左外連接:保留左關係被捨棄的元組,右側填 NULL。
  • 右外連接:保留右關係被捨棄的元組,左側填 NULL。

四、除運算

給定 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}。

五、選擇與投影(常用專門運算)

  • 選擇 σ_F(R):按條件 F 篩選元組(行運算)。
  • 投影 π_A(R):取指定屬性組 A(列運算,去重)。

掌握關係代數,是理解 SQL 執行計畫、優化查詢與資料庫理論研究的關鑰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved