# 一些前置知识
- 与:∧
- 或:∨
- 非:┐
# 传统的集合运算
关系 r 和关系 s 的并记作
![]()
关系 r 和关系 s 的差记作:
![]()
关系 r 和关系 s 的交记作:
![]()
# 笛卡尔积
两个分别为 n 目和 m 目的关系 r 和 s 的笛卡尔积是一个 n+m 目元组的集合。若关系 r 有 kr 个元组,关系 s 有 ks 个元组,则关系 r 和关系 s 的笛卡尔积有 kr∗ks 个元组,记作:
![]()
# 专门的关系运算
# 选择
选择操作是在关系 r 中查找满足给定谓词(选择条件)的所有元组,记作:
![]()
# 投影
关系是一张二维表,对它的操作可以从水平(行)的角度进行,即选择操作;也可以从纵向(列)的角度进行,即投影操作
关系 r 上的投影是从 r 中选择出若干属性列组成新的关系,记作:
![]()
# 连接
连接也称 θ 连接,假设连接条件为谓词 θ,记为 A op B,其中 A,B 分别表示关系 r 和关系 s 中的属性个数相等且可比的连接属性集,op 为比较运算符,则 θ 连接是从两个关系的笛卡尔积中,选取连接属性间满足谓词 θ 的所有元
组,记作:r∏θs={tr⋅ts ∣ tr∈r∧ts∈s∧(r.A op s.B)}
θ 连接运算就是从关系 r 到关系 s 的笛卡尔积 r×s 中,选取 r 关系在 A 属性集上的值与 s 关系在 B 属性集上的值满足连接谓词 θ 的所有元组,即:r⋈θs=σθ(r×s)
# 自然连接
自然连接是一种特殊的等值连接,它要求两个参与连接的关系 r(U) 和 s(V) 具有公共的属性集,即 U∩V=∅,并在这个公共属性集上进行等值连接;同时,还要求将连接结果中的重复属性列去掉,即在公共属性集中的列只保留一次。
记 U∩V={A1,...,Ak},则自然连接可记作:r⋈s={(tr⋅ts)[U∪V] ∣ tr∈r∧ts∈s∧(r.A1=s.A1∧...∧r.Ak=s.Ak)=∏U∪V(σr.A1=s.A1∧...∧r.Ak=s.Ak(r×s))
自然连接满足结合律。如果公共属性集为空,则自然连接的结果就是笛卡尔积
# 除运算
为了叙述方便,先给出象集的概念
# 象集
给定一个关系 r(A,B),A,B 为属性集。∀t∈r,记 t[A]=x,则在关系 r 中属性集 A 的某个取值 x 的象集定义为:Bx={t[B] ∣ t∈r,t[A]=x},表示关系 r 中属性集 A 上取值为 x 的所有元组在属性集 B 上的投影
# 除运算的定义
设关系 r(A,B) 和 S(B),A,B 是属性集,将关系 r 和关系 s 之间的除运算记作 r÷s,除运算的结果还是一个关系,它是关系 r 中满足下列条件的元组 tr 在属性集 A 上的投影:∀tr∈r,记 x=tr[A],要求关系 r 中属性集 A 上取值 x 的象集 Bx 包含关系 s,记作:
![]()