【愚公系列】软考高级-架构设计师 055-关系代数

举报
愚公搬代码 发表于 2024/07/25 11:18:06 2024/07/25
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

关系代数是一种形式化的查询语言,用于操作关系数据库中的数据。它提供了一组操作符,用于对关系(表)进行操作和组合,以实现对数据库的查询、更新和删除等操作。关系代数通常用于描述和处理关系数据库的基本操作,其主要目的是实现对数据库的有效管理和查询。

关系代数的基本操作符包括:

  1. 选择(Selection):从关系中选择满足指定条件的元组。
  2. 投影(Projection):从关系中选择出指定的属性列。
  3. 并(Union):合并两个关系,去除重复的元组。
  4. 差(Difference):返回两个关系之间不同的元组。
  5. 笛卡尔积(Cartesian Product):返回两个关系的所有可能的元组对组合。
  6. 连接(Join):根据共同属性将两个关系中的元组进行连接。
  7. 除法(Division):从一个关系中找出满足某种条件的元组集合,该条件由另一个关系中的元组决定。

通过组合这些基本操作符,可以构建复杂的查询和操作,以满足不同的数据需求。关系代数提供了一种形式化和严谨的方法来描述数据库操作,使得数据库管理和查询更加规范和可控。它也为数据库系统的优化提供了理论基础,例如通过对查询进行等价变换来提高查询效率。

🚀一、关系代数

🔎1.交并差集

    • 并操作的结果是将两张表中所有记录合并在一起,相同的记录只显示一次。
    • 也称为联合操作,它将两个关系中的元组合并成一个新的关系。
    • 如果两个关系中有相同的记录,则在结果中只显示一次。
    • 交操作的结果是两张表中相同的记录。
    • 它返回同时存在于两个关系中的元组,即两个关系的交集。
    • 差操作是指从第一个关系中减去第二个关系的所有记录,返回在第一个关系中有而在第二个关系中没有的记录。
    • 记作S1 - S2,其中S1和S2分别表示两个关系。
    • 差操作返回S1表中有而S2表中没有的那些记录。

通过这些基本的集合操作,可以对数据库中
在这里插入图片描述

🔎2.笛卡尔积/投影/选择

  1. 笛卡尔积

    • 笛卡尔积操作的结果包括两个关系(S1和S2)的所有属性列。
    • 对于S1中的每条记录,它都与S2中的所有记录组合,生成新的记录。
    • 结果的属性列为S1和S2的属性列的并集。
    • 结果中的记录数为S1中的记录数乘以S2中的记录数,即笛卡尔积的数量级为两个关系的记录数的乘积。
  2. 投影

    • 投影操作是按条件选择某关系模式中的某列(或多列),并返回包含指定列的新关系。
    • 通过投影,可以从一个关系中选择出所需的属性列,去除不需要的列。
    • 投影可以用π(希腊字母π)来表示,例如π<列1, 列2, …>(关系)。
  3. 选择

    • 选择操作是按条件选择某关系模式中的某条记录,并返回满足条件的记录。
    • 通过选择,可以从一个关系中筛选出符合特定条件的记录。
    • 选择可以用σ(希腊字母σ)来表示,例如σ<条件>(关系)。

在这里插入图片描述
4. 自然连接

  • 显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。
    设有关系R、S如下左图所示,自然连接结果如下右图所示:
    在这里插入图片描述

🔎3.练习

在这里插入图片描述


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。