码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据库】形式化关系查询语言(一):关系代数Relational Algebra


    目录

    一、关系代数Relational Algebra

    1. 基本运算

    a. 选择运算(Select Operation)

    b. 投影运算(Project Operation)

    组合

    c. 并运算(Union Operation)

    d. 集合差运算(Set Difference Operation)

    e. 笛卡尔积运算(Cartesian-Product Operation)

     f. 更名运算(Rename Operation)

    2. 关系代数的形式化定义

    3. 附加关系代数(Additional Operations)

    a. 集合交(Set-Intersection Operation)

    b. 自然连接(Natural Join Operation)

    c. 除法(Division Operation)

    d. 赋值(Assignment Operation)

    e. 外连接运算

    4. 扩展的关系代数运算

    a. 广义投影(generalized-projection)

    b. 聚集(aggregation operation)

    二、元组关系演算(Tuple Relational Calculus)

    三、域关系演算(Domain Relational Calculus)


    本文待进一步完善~

         关系代数是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入, 产生一个新的关系作为结果。关系代数基本运算有:选择、投影、并、集合差、笛卡儿积和更名。在 基本运算以外,还有一些其他运算,即集合交、自然连接和赋值。我们将用基本运算来定义这些运算。

    一、关系代数Relational Algebra

    1. 基本运算

            选择、投影和更名运算称为一元运算,因为它们对一个关系进行运算,另外三个运算对两个关系 进行运算.因而称为二元运算。

    a. 选择运算(Select Operation)

           选择(selelct)运算选出满足给定谓词的元组,用符号σ表示:

            选择运算使用一个条件表达式作为参数,对关系中的每个元组进行判断,只有满足条件的元组才会被选取出来,形成一个新的关系。选择运算符通常用符号σ来表示。

    选择运算的语法如下:
    σ<条件表达式>(关系)

    其中,条件表达式是一个逻辑表达式,可以使用关系中的属性进行比较和组合。比较运算符(如等于、大于、小于等)和逻辑运算符(如与、或、非等)可以用于构建条件表达式。

    选择运算的结果是一个新的关系,其中包含原始关系中满足条件的元组。新关系的模式(属性集合)与原始关系相同。

    举个例子,假设有一个关系R,包含属性A、B和C,我们可以使用选择运算来选取满足条件A>5的元组,语法为σ(A>5)(R)。

    b. 投影运算(Project Operation)

    组合

    c. 并运算(Union Operation)

         

            1. 关系r和s必须是同元的,即它们的属性数目必须相同。

            2. 对所有的i,r的第i个属性的域必须和s的第i个属性的域相同。

    请注意r和s可以是数据库关系或者作为关系代数表达式结果的临时关系。

    d. 集合差运算(Set Difference Operation)

            用—表示的集合差(set-difference)运算使得我们可以找出在一个关系中而不在另一个关系中的那些元组。表达式r-s的结果即一个包含所有在r中而不在s中的元组的关系。

    e. 笛卡尔积运算(Cartesian-Product Operation)

     f. 更名运算(Rename Operation)

    2. 关系代数的形式化定义

    3. 附加关系代数(Additional Operations)

    a. 集合交(Set-Intersection Operation)

    • 定义: r ∩ s =

    • 要点:

      • r ,s 必须包含相同属性,即同元
      • r ,s 属性的域必须相容
    • 注意,任何使用了集合交的关系代数表达式,我们都可以通过用一对集合差运算替代集合交运 算来重写:

            r ∩ s = r − ( r − s )

    b. 自然连接(Natural Join Operation)

    • 定义:r⋈s,r 表和 s 表根据重复属性进行笛卡尔积,最后去除重复属性

    注意,如果关系r(R)和s(S)不含有任何相同属性,即R ∩ S =0,那么r ∩ s=r X S

    • 例题:

      • 查找计算机学院所有老师的名字以及他们所上课程的名字

      • 查找教授 ‘D.B.S' 和 ’O.S‘ 的老师的名字以及课程名称

    c. 除法(Division Operation)

    • 定义:r÷s�÷�
    • R=(A1,A2,...Am,B1,B2,...Bn),S=(B1,B2,...Bn)
    • 解释:前提是 s 表的属性包含于 r 表。则 r 表属性去掉 s 表的属性之后,r 表中包含 s 表所有数据的元组被选出。其实文字比较难以形容,看图理解更好。

    • 应用:带有“包含某某集合所有元素”的问题,可以使用除法解决

    • 例题:

      • 选出选了计算机系所有课程的学生的 ID:∏courseid,ID(takes)÷(∏courseid(σdepartment=′Comp.Sci.′(course)))∏��������,��(�����)÷(∏��������(�����������=′����.���.′(������)))

    d. 赋值(Assignment Operation)

    • 定义:temp←expressio,查询结果保存在临时表

    e. 外连接运算

    4. 扩展的关系代数运算

    a. 广义投影(generalized-projection)

    b. 聚集(aggregation operation)

    二、元组关系演算(Tuple Relational Calculus)

    待完善

    三、域关系演算(Domain Relational Calculus)

    待完善

  • 相关阅读:
    numpy和matlab的多维数组展平:ravel, flatten, reshape, (:)
    SpringBoot整合Redis
    小黑腰酸背痛继续leetcode:剑指 Offer II 027. 回文链表
    VBA筛选排除多个值
    OpenCV-python
    技术干货|昇思MindSpore算子并行+异构并行,使能32卡训练2420亿参数模型
    R语言中的函数26:polyroot多项式求根函数
    趣解设计模式之《庞大的组织架构带来的烦恼》
    【C++】类型转换(dynamic_cast,const_cast,static_cast,reinterpret_cast)
    MYSQL的安装
  • 原文地址:https://blog.csdn.net/m0_63834988/article/details/133419594
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号