博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库系统丨关系代数运算总结
阅读量:2829 次
发布时间:2019-05-14

本文共 1329 字,大约阅读时间需要 4 分钟。

文章目录

1. 需要记忆的符号

  • 记号:设 t 为R的元组变量

  • 设:R(A1,A2,……,An)=R(U)

    • t[Ai](Ai为属性)
    • t[A] (A为属性集)
    image-20200302142049398
  • 常见运算符

    image-20200302141941036

2. 集合运算

[1] 并运算
  • RUS = {t|(t∈R)∨(t∈S)}
[2] 差运算
  • R - S = {t|(t∈R)∧(t∉S)}
[3] 交运算
  • R∩S = {t|(t∈R)∧(t∈S)}

这三个运算结果为同类关系

image-20200608000907475

[4] 广义笛卡尔积
  • 设:R、S为不同类关系,则结果为不同类关系

  • R×S={tr ts|(tr∈R)∧(ts ∈ S)}

3. 关系运算

[1] 选择(Selection)
  • 行上做选择,结果产生同类元素

  • σF®={t|(t∈R)∧F( t )=true}}

    • 由R中满足F条件的元组组成,F由属性名(值)、比较符、逻辑运算符组成。
  • 例如:

    • σA2>5 ∨ A3 ≠“f”® -> 等价于 σ[2]>5 ∨ [3] ≠“f”®
    • 意义:[A2]中大于5,或者[A3]中≠’f’的
    • image-20200302143524677
[2] 投影(Projection)
  • 列上做选择,结果产生不同类元素
  • πA®={t[A] |(t∈R) }
    • R中取属性名表A中指定的列,消除重复元组。
  • 例如:
    • πA3,A2(T)
    • 意义:去除A3和A2相同的行。
    • image-20200302143940043
[3] 连接(Join)
  • 连接运算也称为θ运算。

  • 从两个关系的笛卡尔积中选取属性间满足一定条件的元素。

  • image-20200302144427167 - A 和 B 分别为 R 上和 S 上列数相等且可比的属性组 - 含义: - 从 R × S 中选取 R 关系在 A 属性组上的值与 S 关系在 B 属性组上值满足 θ 关系的元组,构成一个新关系。

常用的连接运算有:

  • 等值连接(即 θ 为 ‘=’)

    • image-20200302144956711
  • 自然连接

    • image-20200302145021679
    • 是一种特殊的等值连接,要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉

    • 运算步骤:

      ① 计算 R × S

      ② 选择满足等值条件 R.B1 = S.B1 Λ ·· ·Λ R.BK = S.BK 的元组

      ③ 去掉重复属性 S.B1, ···, S.Bk

image-20200302150559693

PS: 等值连接与自然连接的区别:

  • 自然连接一定是等值连接,但等值连接不一定是自然连接。因为自然连接要求相等的分量必须是公共属性,而等值连接相等的分量不一定是公共属性。

  • 等值连接不把重复的属性去掉,而自然连接要把重复属性去掉。

  • 完全外连接

    • R和S作自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填空值(NULL)。
  • 左外连接

    • 只把R中原该舍弃的元组放到新关系中。
  • 右外连接

    • 只把S中原该舍弃的元组放到新关系中。

image-20200303215202964

[4] 除(Division)

除法:是”至少选择了“的意思

  • 设关系R(X,Y)和S(Y,Z),X,Y,Z为属性组。X属性上的值为xi。则有:

  • R÷S={t[X]|t∈R ∧πY(S)⊆Yx}

    ① 求 πX®

    ② 求 πY(S)

    ③ 求 YX:对于每个值 xi,xi ∈ πX®,求 πY( σX = xi® )

    ​ (YX 为 X 在 R 中的像集,它表示 R 中属性组 X 上值为 xi 的诸元组上分量的集合。)

    ④ R ÷ S 运算结果为:像集 YX 包含了 πY(S) 的 xi

image-20200303211824305

转载地址:http://zqded.baihongyu.com/

你可能感兴趣的文章
什么是RPC
查看>>
SQLServer数据库优化与管理——等待篇
查看>>
SQLServer数据库优化与管理——锁,阻塞,死锁篇
查看>>
SQLServer数据库优化与管理——TempDB
查看>>
SQLServer数据库优化与管理——工具定位瓶颈
查看>>
PLC通信组件通讯源代码
查看>>
Node JS启动webserver服务
查看>>
python读取合并单元格并拆分合并单元格写出
查看>>
python中ctypes的使用
查看>>
caffe编译时出现opencv类似于cv::xx没有定义或者无法连接问题的解决方法总结
查看>>
深度学习中的动量
查看>>
caffe安装教程Ubuntu 16.04(CPU)(libopencv-dev错误)
查看>>
yolov3模型微调相关
查看>>
#ifdef __cplusplus分析
查看>>
边框回归:BoundingBox-Regression(BBR)
查看>>
备战秋招[一]-加法器与分频器
查看>>
备战秋招[二]-亚稳态与同步器
查看>>
备战秋招[三]-跨时钟域处理
查看>>
举例说明构造代码块、静态、非静态代码块的执行顺序
查看>>
使用工厂方法模式创建实例(JAVA版)
查看>>