数据库基础——关系代数

291 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情

关系操作

包括查询操作和修改操作

  • 查询操作(最复杂,最重要): 选择、投影、连接、除、并、交、差、笛卡尔积
    • 选择、投影、并、差、笛卡尔积是五种基本查询操作
    • 修改操作:插入、删除、更新
    • 关系操作的对象和结果都是元组集合(关系)
  • 关系数据语言分类
    • 关系代数语言
    • 关系演算语言
    • 结构化查询语言
  • 关系代数是以关系作为运算对象的一组特定的运算,用户通过这组运算,对一个或多个关系不断 的进行组合或分割,从而得到所需要的数据集合。

关系代数运算符

image.png

几个记号

R

  • 设关系模式为 R (A1,A2,…,An)
  • 它的一个关系设为R

t 属于 R

  • t 属于 R 表示 t 是 R 的一个元组

t[Ai]

  • t[Ai]则表示元组t中相应于属性Ai的一个分量

A,t[A], A

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

image.png

  • R为n目(元)关系,S为m目(元)关系。
  • tr 属于 R,ts 属于 S, tr ts称为元组的连接。
  • tr ts是一个n + m列的元组,前n个分量为R中的 一个n元组,后m个分量为S中的一个m元组。

集合运算

并 ❖ 交 ❖ 差

R与S必须并相容:R和S 具有相同目n(即相同的属性个数),相应属性取自同一个域。

笛卡尔积

并运算

R∪S = { t | t∈R ∨ t∈S }

  • 其中R和S具有相同目n(即相同个数的属性), 相应属性取自同一个域;
  • R∪S的结果仍然为n目(元)关系,由属于R 和属于S的所有元组组成。
  • 重复元组要消除

image.png

image.png

差运算

R-S = { t | t∈R ∧ t∈S }

  • 其中R和S具有相同目n(即相同个数的属性), 相应属性取自同一个域;
  • R-S的结果仍然为n目关系,由属于R而不属于S 的所有元组组成。

image.png

交运算

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

  • 其中R和S具有相同目n(即相同个数的属性),相应属性取自同一个域;
  • R∩S的结果仍然为n目关系,由既属于R又属于 S的所有元组组成。

image.png

笛卡尔积

R×S = { trts | tr∈R ∧ts∈S }

image.png 严格地讲应该是广义的笛卡尔积(Extended Cartesian Product)

  • R: n目关系,k1个元组
  • S: m目关系,k2个元组
  • R×S
    • 列:(n+m)列
    • 每个元组的前n个分量(属性值)是关系R的一个元 组
    • 每个元组的后m个分量是关系S的一个元组
    • 行:k1×k2个元组

image.png

数据库在计算机的专业课中算比较简单易上手的一门课,学的也很开心,尤其是上机实验,那个我们后面再讲