学习数据库(3)——关系运算

一:基本概念

1. 关系操作的特点

操作对象和操作结果都是集合,而不是一个记录

2. 关系数据语言的分类:

  • 关系代数语言
  • 关系演算语言
    • 元组关系演算
    • 域关系演算
  • 关系代数语言+关系演算语言(SQL)

3. 关系代数运算符

  • 集合运算符:并∪,交∩,差-,笛卡尔积×
  • 关系运算符:选择σ,投影Π,连接∞,除÷
  • 算术比较符:>,>=,<,<=,=,≠
  • 逻辑运算符:与∧,或∨,非¬

二:关系代数运算——过程化语言

查询

1. 关系运算

(1)基本运算
选择 Select——元组

根据选择谓词p在关系R中查找元组,用σp( R )表示

选择谓词:

  • 对象:属性名或属性序号、常数
  • 连接符:逻辑运算符、算术比较符
投影 Project——属性

在关系R中保留属性A,并去除重复元组,用ΠA1,A2…AN( R )

广义投影

允许在投影列表中使用算术函数来操作属性,用Π算术函数( R )表示

并 Union——元组集

合并两个同元的关系,用R∪S表示

  • 属性数量相同
  • 属性域相同
差 Difference——元组集

去除另一个同元关系中出现的同样的元组,用R-S表示

  • 属性数量相同
  • 属性域相同
笛卡尔积 Product——大关系

对于M目关系R(T1个元组)和N目关系S(T2个元组),合并两个关系的所有元组和属性形成(M+N)目关系(T1×T2个元组),用R×S表示

  • 两个关系的属性没有交集
  • 如果有交集,重命名两个关系的相同属性
(2)复合运算

五种基本运算的复合运算

交 Intersection(R - (R-S))——元组集

获取两个同元关系的公共部分,用R⌒S表示。

  • 属性数量相同
  • 属性域相同
连接 Join——特定大关系
Θ连接(σp(R×S))

在R和S的笛卡尔积中,选择属性组R.A和S.B满足一定条件Θ的元组集合,用R  AΘB  S表示

等值连接(σp(R×S))

当Θ为‘=’时,Θ连接也是等值连接,用R  A=B  S表示

自然连接 (ΠA,B…p(R×S)))

在等值连接中,两个相互比较的A和B为相同属性组,并去除重复属性列,用R  ⋈  S表示

  • 属性名相同
  • 属性域相同
  • 属性值相同
外连接 Out Join

保留自然连接中某一侧关系不匹配的元组,引入空值

  • 左外连接,如果R关系中有一元组没有对应信息,则保留该元组,该信息为null。用R⋊S表示
  • 右外连接,如果S关系中有一元组没有对应信息,则保留该元组,该信息为null,用R⋉S表
  • 全外连接,如果R关系或S关系中有一元组没有对应信息,则保留该元组,该信息为null
除 Division——属性

找到包含另一个关系中所有元组集T的元组集合并去除属性列T,用R÷S表示

  1. 如果R(A1,A2),B(A2)
  2. 对R的属性A1进行分组
  3. 在分组中,寻找包含了B出现的元组集合
  • q是q×s包含于关系r中的最大子集
(3)其他运算
更名运算 Rename

使用其他名字指代关系或者属性,用ρname(A1,A2…AN)( R )表示

(4)扩展运算

聚集函数:输入属性值的集合,根据分组属性进行分组并计算,返回单一值

  • avg:平均值
  • min:最小值
  • max:最大值
  • sum:值的总和
  • count:值的数量

聚集函数的运算表示:(分组属性G)默认全部属性 g (函数F(A))as新属性名(关系R)

(5)多重集

默认的关系模式中,关系是一个集合,不会出现重复元组。可以用多重集来重新定义关系运算

  • 选择:σp( R1 ),如果R1中有多个重复元组并且满足条件p,则都会被选择
  • 投影:ΠA( R1 ),如果R1中的属性A有多个重复属性值,则都会被投影
  • 笛卡尔积:R1×R2,如果R1有A个重复元组,R2中有B个重复元组,那么总共会有A×B个重复元组

2. 特点

  • 并、交、差:为双目、等目同元运算
  • 笛卡尔积、自然连接、除:双目运算
  • 投影、选择为单运算

3. 优先级

  1. 投影
  2. 选择
  3. 笛卡尔积
  4. 连接、除
  5. 并、差

4. 运算方法

  • 先进行选择,再进行笛卡尔积,可以减少开销
  • 对于“所有”、“全部”,一般使用除法

修改

1. 赋值操作

把查询表达为顺序程序,把结果赋给临时关系变量。用temp←查询表达式 表达

2. 修改操作

(1)删除
  1. 通过查询找到目标
  2. 通过差操作移除目标元组
    R ← R - (E)
  3. 级联删除其他关系的元组
(2)插入
  1. 通过查询找到目标
  2. 通过并操作合并目标元组
    R ← R ∪ (E)
(3)更新
  1. 通过查询找到目标
  2. 通过广义投影操作修改目标元组
    R ← Π算术函数 ( R )
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值