码农知识堂 - 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)

    待完善

  • 相关阅读:
    2021年6月大学英语六级翻译
    Elasticsearch的基本介绍
    Java基础进阶多线程-生产者和消费者模式
    Bias in Emotion Recognition with ChatGPT
    【论文阅读】MixMatch: A Holistic Approach to Semi-Supervised Learning
    UNIX网络编程卷一 学习笔记 第三十章 客户/服务器程序设计范式
    mc我的世界云服务器租用价格表
    Shell 脚本入门 ①
    个人网页设计成品DW静态网页 HTML网页设计结课作业 web课程设计网页规划与设计 Web大学生个人网页成品 web网页设计期末课程大作业
    Codeforces Round #804 (Div. 2)-C. The Third Problem
  • 原文地址:https://blog.csdn.net/m0_63834988/article/details/133419594
  • 最新文章
  • Agent Harness Runtime 架构深度解析:工具循环、状态外置与长程任务调度
    [对比学习LangChain和MAF-03]完全不同的Agent设计哲学
    AI Coding 为什么选择 TUI ,前端的新机会在哪里?
    无需安装cc switch,10行命令帮你配置Claude Code+deepseek
    Context Engineering 到 Harness Engineering —— 大模型时代软件工程的新范式
    OpenClaw.NET 兼容性目录指南(Compatibility Catalog)
    Nginx 上游健康检查插件 nginx-healthcheck-module
    AScript异步执行与await关键字
    Vector Quantization for Recommendation 笔记
    21. “|”不只是按位或,90%的人不知道
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号