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

博客介绍了关系运算,包括关系代数和关系演算。关系代数是过程化查询语言,有基本、附加和扩展运算;关系演算是非过程化的,分为元组和域关系演算。还提到为方便处理关系数据,定义了SQL语言。

关系运算

  • 关系运算包含
    • 关系代数(relational algebra):关系代数是一种过程化查询语言,通过描述对关系的运算来表达查询、获取数据
    • 关系演算:非过程化查询语言,通过描述想要获取的数据的信息来获取数据(不需要给出运算过程)
      • 关系演算可以分为元组关系演算域关系演算两种语言
  • 为了方便用户查询处理关系数据,定义了结构化查询语言SQL 来操作处理关系数据

关系代数

image-20231113232005703

  • 关系代数定义了一个关系数据的运算的集合
  • 关系运算以一个或者两个关系为输入;输出一个新的关系作为运算结果
  • 关系是一个以元组为元素的多重集合(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)={ ttRp(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]tR}

  • 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\} RS={ ttRtS}

  • 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\} RS={ ttRt/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)tR  qS}

  • ( 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

image-20231115111613642
重命名

重命名运算 ρ \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 ρSR:只修改关系名,不修改属性名

附加关系代数运算

  • 基本关系代数运算写出来的表达式比较冗长,因此定义了附加关系代数运算
  • 附加关系代数运算是由基本关系代数运算导出的运算,可以简化表达式
  • 附加关系代数运算和基本关系代数运算的表达能力相同

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值