关系代数

  • 并、差、交

  • 投影选择

  • 笛卡尔积、连接

  • 重命名

什么是关系代数

  • 是一种抽象的数据查询语言

  • 用对关系的运算来表达查询

关系运算符分类

传统的集合运算符

  • U-N

  • 把关系看成元组的集合

  • 所有运算对象必须具有相同的结构

专门的关系运算符

  • 选择和投影 σ π

  • 笛卡尔积,连接 x ⋈

  • 重命名 ρ

辅助专门的关系运算符

  • 比较运算符 < <= > >= = < >

  • 逻辑运算符 ┌ ∧ ∨(非与或)

传统的集合运算(交并差)

先决条件

  • R 和S 的属性个数必须相同

  • 对应属性必须取自同一个域

R U S

  • (union)

  • 结果由属于R或属于S的所有元组组成

R S

  • (intersection),结果由既属于R又属于S的元组组成

R S

  • (difference),结果由属于R而不属于S的所有元组组成

专门的关系运算符

投影和选择

投影(projection)

  • 用于从R中选择出若干属性列组成新的关系(默认去重)

  • L为R中的属性列表

  • 结果为只包含R中某些列的新的关系

  • 结果要去掉重复元组

在这里插入图片描述

语法

-- 数据库的下标是从1开始的
π[列名1,...,列名n]|[列名下标1,...,列名下标n](表名)

选择(Selection)

  • 用于在关系R中选择满足给定条件的各个元组

在这里插入图片描述

  • C:选择条件,是一个逻辑表达式

  • 结果为只包含R中某些元组的新的关系

在这里插入图片描述

语法

-- σ5 ='IS' (Student)
σ[列名1,...,列名n]|[列名下标1,...,列名下标n]=[你的条件值](表名)

笛卡尔积和连接

笛卡尔积(Product)

  • R关系: n个属性, k1个元组

  • S关系: m个属性, k2个元组

  • R x S

    • 将R中的每个元组t1和S中的每个元组t2配对连接

    • 列数: n+m

      • 前n列是关系R的一个元组t1

      • 后m列是关系S的一个元组t2

    • 行数:k1× k2

    • 当R和S中有重名属性A时,则采用R.A和S.A分别命名对应的属性列

在这里插入图片描述

连接(Join)

连接也称为θ连接

R ⋈ S

  • A θ B

    • A和B:分别为R和S上度数相等且可比的属性组

    • θ:比较运算符

连接运算从R和S的笛卡尔积R× S中选取(R关系)在A属性组上的
值与(S关系)在B属性组上值满足比较条件的元组

两类常用的等值连接

等值连接

什么是等值连接

  • θ为“=”的连接运算称为等值连接

R ⋈ S

  • A=B

等值连接的含义

  • 从关系R与S的笛卡尔积中选取A、 B属性值相等的那些元组

自然连接

自然连接是在公共属性(组)上进行的等值连接

  • 两个关系中必须具有公共属性(组)

  • 在结果中把重复的属性列去掉

R ⋈ S

在这里插入图片描述

重命名ρ

ρS (A1,…,An)®

  • 将关系R重命名为S

  • 将关系S中的各属性命名为A1,A2…An

在这里插入图片描述

语法

-- ρS (A1,…,An)(R)
ρ新表名(列名1,...,列名n)(原表名))
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐