【愚公系列】软考高级-架构设计师 055-关系代数
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
关系代数是一种形式化的查询语言,用于操作关系数据库中的数据。它提供了一组操作符,用于对关系(表)进行操作和组合,以实现对数据库的查询、更新和删除等操作。关系代数通常用于描述和处理关系数据库的基本操作,其主要目的是实现对数据库的有效管理和查询。
关系代数的基本操作符包括:
- 选择(Selection):从关系中选择满足指定条件的元组。
- 投影(Projection):从关系中选择出指定的属性列。
- 并(Union):合并两个关系,去除重复的元组。
- 差(Difference):返回两个关系之间不同的元组。
- 笛卡尔积(Cartesian Product):返回两个关系的所有可能的元组对组合。
- 连接(Join):根据共同属性将两个关系中的元组进行连接。
- 除法(Division):从一个关系中找出满足某种条件的元组集合,该条件由另一个关系中的元组决定。
通过组合这些基本操作符,可以构建复杂的查询和操作,以满足不同的数据需求。关系代数提供了一种形式化和严谨的方法来描述数据库操作,使得数据库管理和查询更加规范和可控。它也为数据库系统的优化提供了理论基础,例如通过对查询进行等价变换来提高查询效率。
🚀一、关系代数
🔎1.交并差集
-
并:
- 并操作的结果是将两张表中所有记录合并在一起,相同的记录只显示一次。
- 也称为联合操作,它将两个关系中的元组合并成一个新的关系。
- 如果两个关系中有相同的记录,则在结果中只显示一次。
-
交:
- 交操作的结果是两张表中相同的记录。
- 它返回同时存在于两个关系中的元组,即两个关系的交集。
-
差:
- 差操作是指从第一个关系中减去第二个关系的所有记录,返回在第一个关系中有而在第二个关系中没有的记录。
- 记作S1 - S2,其中S1和S2分别表示两个关系。
- 差操作返回S1表中有而S2表中没有的那些记录。
通过这些基本的集合操作,可以对数据库中
🔎2.笛卡尔积/投影/选择
-
笛卡尔积:
- 笛卡尔积操作的结果包括两个关系(S1和S2)的所有属性列。
- 对于S1中的每条记录,它都与S2中的所有记录组合,生成新的记录。
- 结果的属性列为S1和S2的属性列的并集。
- 结果中的记录数为S1中的记录数乘以S2中的记录数,即笛卡尔积的数量级为两个关系的记录数的乘积。
-
投影:
- 投影操作是按条件选择某关系模式中的某列(或多列),并返回包含指定列的新关系。
- 通过投影,可以从一个关系中选择出所需的属性列,去除不需要的列。
- 投影可以用π(希腊字母π)来表示,例如π<列1, 列2, …>(关系)。
-
选择:
- 选择操作是按条件选择某关系模式中的某条记录,并返回满足条件的记录。
- 通过选择,可以从一个关系中筛选出符合特定条件的记录。
- 选择可以用σ(希腊字母σ)来表示,例如σ<条件>(关系)。
4. 自然连接:
- 显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。
设有关系R、S如下左图所示,自然连接结果如下右图所示:
🔎3.练习
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)