数据库 关系代数

一、概念

  • 关系模型源于数学,关系是由元组构成的集合,可以通过关系的运算来表达查询要求

  • 关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言

  • 关系代数的运算可分为两大类:

    • 传统的集合运算:
      • 广义笛卡尔积

    在这里插入图片描述

    • 专门的关系运算:
      • 选择
      • 投影
      • 连接

在这里插入图片描述

二、传统的集合运算

1、符号

1)R,t ∈ R,t[Ai]

设关系模式为R(A1,A2,…,An)

  • R是关系模式 R(A1,A2,…,An) 的一个关系
  • t ∈ R:表示 t 是 R 的一个元组
  • t[Ai]:表示元组 t 中相应于属性 Ai 的一个分量

2)A,t[A], A ‾ \overline{A} A

  • A = {Ai1,Ai2,…,Aik},其中 Ai1,Ai2,…,Aik 是 A1,A2,…,An 中的一部分,则 A 称为属性列或属性组
  • t[A] = (t[Ai1],t[Ai2],…,t[Aik]) 表示元组 t 在属性列 A 上诸分量的集合
  • A ‾ \overline{A} A 则表示 {A1,A2,…,An} 中去掉 {Ai1,Ai2,…,Aik} 后剩余的属性组

3)trts

设 R 为 n 元关系,S 为 m 元关系

  • tr ∈ R,ts ∈ S,trts 称为元组的连接
  • trts 是一个 n + m 列的元组。前 n 个分量为 R 中的一个 n 元组,后 m 个分量为 S 中的一个 m 元组

4)象集

  • 给定一个关系 R(X,Y),X 和 Y 为属性组
  • 当 t[X] = x 时,x 在 R 中的象集(Images Set)为:Yx = { t[Y] | t ∈ R,t[X] = x}
  • 它表示 R 中的属性组 X 上值为 x 的诸元组,在 Y 上分量的集合

在这里插入图片描述

2、∪ 并(Union)

合并,去重

  • R 和 S
    • 具有相同的元 n (即两个关系都有 n 个属性)
    • 相应的属性取自同一个域
  • R ∪ S
    • 仍为 n 元关系,由属于 R 或属于 S 的元组组成:R ∪ S = { t | t ∈ R v t ∈ S}
    • v :表示或

在这里插入图片描述

3、- 差(Difference)

减掉相同的

  • R 和 S
    • 具有相同的元 n
    • 相应的属性取自同一个域
  • R - S
    • 仍为 n 元关系,由属于 R 而不属于 S 的所有元组组成

在这里插入图片描述

4、∩ 交(Intersection)

只取相同的

  • R 和 S

    • 具有相同的元 n
    • 相应的属性取自同一个域
  • R ∩ S

    • 仍为 n 元关系,由既属于 R 又属于 S 的元组组成

      R ∩ S = { t | t ∈ R t ∈ S}

      R ∩ S = R - ( R - S )

    • ∧:表示与

在这里插入图片描述

5、x 笛卡尔积(Cartesian Product)

相乘

  • 严格地讲应该是广义的笛卡尔积
    • R:n 目关系,K1 个元组,S:m 目关系,K2 个元组
  • R X S
    • 列:(n + m) 列元组的集合
      • 元组的前 n 列是关系 R 的一个元组
      • 后 m 列是关系 S 的一个元组
    • 行:K1 X K2 个元组
      • R x S = { trts | tr ∈ R ts ∈ S}

在这里插入图片描述

6、总结

传统运算表示含义
并 ∪R ∪ S = { t | t ∈ R v t ∈ S}
v (或),t 属于R,或者属于S
合并,去重
差 -R - S 从R中减去S,保留R中剩余的去重
交 ∩R ∩ S = { t | t ∈ R t ∈ S}
v (与),t 属于R,也属于S
交集
积 xR x S = { trts | tr ∈ R ts ∈ S}
tr 属于 R,并且 ts 属于 S
相乘

三、专门的关系运算

实例:学生课程数据库

  • 学生表

在这里插入图片描述

  • 课程表

在这里插入图片描述

  • 成绩表

在这里插入图片描述

1、σ 选择(Selection)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、Π 投影(Projection)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、 ⋈ \bowtie 连接(Join)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、÷ 除(Division)

在这里插入图片描述

参考:https://blog.csdn.net/Imomoco/article/details/102727039

四、键、属性

在这里插入图片描述

  • 候选键=候选码:能够唯一标识一条记录的最小属性集
  • 主键=主码某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)
  • 外键(foreign key):子数据表中出现的父数据表的主键,称为子数据表的外键
  • 主属性 包含在任一候选码中的属性称主属性。简单来说,主属性是候选码所有属性的并集
  • 非主属性 不包含在候选码中的属性称为非主属性。 非主属性是相对于主属性来定义的

找候选键

  • 把函数依赖集转化成有向图,入度为0的点一定是候选键(候选键可以有多个)
  • 如果没有入度为0的点,就找可以走完全图的点,该点就是候选键

在这里插入图片描述

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土味儿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值