数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

  • Home
  • 跨服战场
  • 数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

文章目录

关系运算

关系代数

基本关系代数运算

选择

投影

笛卡尔积

重命名

附加关系代数运算

连接

赋值

扩展关系代数运算

去重

广义投影

聚集

分组

排序

==总结==

元组关系演算

域关系演算

关系运算

关系运算包含

关系代数(relational algebra):关系代数是一种过程化查询语言,通过描述对关系的运算来表达查询、获取数据

关系演算:非过程化查询语言,通过描述想要获取的数据的信息来获取数据(不需要给出运算过程)

关系演算可以分为元组关系演算和域关系演算两种语言

为了方便用户查询处理关系数据,定义了结构化查询语言SQL 来操作处理关系数据

关系代数

关系代数定义了一个关系数据的运算的集合

关系运算以一个或者两个关系为输入;输出一个新的关系作为运算结果

关系是一个以元组为元素的多重集合(multiset):可能包含重复元素

关系代数运算本质上是对多重集合的运算

基本关系代数运算

包括选择、投影、并、差、笛卡尔积和重命名(期中,选择、投影、重命名为一元运算,并、差、笛卡尔积为二元运算)

基本关系代数运算可以用来表达任何传统关系代数运算

选择

选择运算 σ \sigma σ可以从关系 R R R中获取满足条件的元组: σ p ( R ) = { t ∣ t ∈ R ∧ p ( t ) = True } \sigma_p(R)=\{t\mid t\in R\land p(t)=\text{True}\} σp​(R)={

t∣t∈R∧p(t)=True}

p p p为选择谓词:

p p p是由逻辑运算符与 ∧ \land ∧、或 ∨ \lor ∨、非 ¬ \lnot ¬连接的若干原子表达式构成的公式

原子表达式的形式为: X □ Y X\ \Box \ Y X □ Y

X , Y X,Y X,Y:属性名、常量,或者函数值

□ \Box □为比较运算符,包括 = > < ≠ ≤ ≥ =\ >\ <\ \neq\ \leq\ \geq = > < = ≤ ≥

投影

投影运算 Π \Pi Π可以从关系 R R R中获取某些列组成新的关系: Π A 1 , A 2 , … , A k ( R ) = { t [ A 1 , A 2 , … , A k ] ∣ t ∈ R } \Pi_{A_1,A_2,\ldots,A_k}(R)=\{t[A_1,A_2,\ldots,A_k]\mid t\in R\} ΠA1​,A2​,…,Ak​​(R)={

t[A1​,A2​,…,Ak​]∣t∈R}

A 1 , A 2 , … , A k A_1,A_2,\ldots,A_k A1​,A2​,…,Ak​为R中的属性列

返回R中元组在 A 1 , A 2 , … , A k A_1,A_2,\ldots,A_k A1​,A2​,…,Ak​列上的值

删除重复元组

并运算 ∪ \cup ∪返回两个关系 R R R和 S S S中元组取并集的结果: R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R\cup S=\{t\mid t\in R\lor t\in S\} R∪S={

t∣t∈R∨t∈S}

R和S中属性个数要相同

R和S中的属性应存在一一对应关系

R中每个属性的域和S中对应属性的域要相同

Union:去重

Union all:不去重

差运算 − - −返回在关系R中但是不在关系S中的元组集合: R − S = { t ∣ t ∈ R ∧ t ∉ S } R-S=\{t\mid t\in R \land t\notin S\} R−S={

t∣t∈R∧t∈/S}

R和S中属性个数要相同

R和S中的属性应存在一一对应关系

R中每个属性的域和S中对应属性的域要相同

笛卡尔积

笛卡尔积运算 × \times ×返回关系R中元组和关系S中的元组做笛卡尔积的结果: R × S = { ( t , q ) ∣ t ∈ R ∧ q ∈ S } R\times S=\{(t,q)\mid t\in R\ \land\ q\in S\} R×S={(t,q)∣t∈R ∧ q∈S}

( t , q ) (t,q) (t,q)为R中元组t和S中元组q拼接在一起得到的元组

R × S R\times S R×S中有 ∣ R ∣ × ∣ S ∣ |R|\times|S| ∣R∣×∣S∣个元组

例如: instructor × teaches \text{instructor}\times\text{teaches} instructor×teaches

重命名

重命名运算 ρ \rho ρ将关系R重命名为关系S: ρ S ( A 1 , A 2 , … , A n ) ( R ) \rho_{S(A_1,A_2,\dots,A_n)}(R) ρS(A1​,A2​,…,An​)​(R)

同时将各属性按照从左到右的顺序重命名为 A 1 , A 2 , … , A n A_1,A_2,\ldots,A_n A1​,A2​,…,An​

ρ S R \rho_{S}R ρS​R:只修改关系名,不修改属性名

附加关系代数运算

基本关系代数运算写出来的表达式比较冗长,因此定义了附加关系代数运算

附加关系代数运算是由基本关系代数运算导出的运算,可以简化表达式

附加关系代数运算和基本关系代数运算的表达能力相同

交运算 ∩ \cap ∩返回两个关系R和S中元组取交集的结果: R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R\cap S=\{t\mid t\in R\land t\in S\} R∩S={

t∣t∈R∧t∈