问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

软考高级:并、交、差、笛卡尔积、选择、投影、连接

创作时间:
作者:
@小白创作中心

软考高级:并、交、差、笛卡尔积、选择、投影、连接

引用
CSDN
1.
https://blog.csdn.net/w605283073/article/details/141175094

关系数据库中的基本操作和概念是数据库学习的基础,包括并、交、差、笛卡尔积、选择、投影和连接等。本文通过一个简单的例子来帮助理解这些概念,并且还包含了一些具体的题目和解答。

一、AI 讲解

这些都是关系数据库中的基本操作和概念,用于处理和操作表(关系)。我们通过一个简单的例子来帮助理解这些概念。

通俗示例

假设我们有两个表:

学生表(Students)

学号 姓名 年龄

1 张三 20

2 李四 22

3 王五 21

课程表(Courses)

课程编号 课程名称 学号

101 数学 1

102 英语 2

103 物理 3

104 化学 1

通俗解释

并(Union)

并操作可以理解为将两个表中所有数据组合到一起,并去掉重复的部分。

比如我们有另一个表,叫学生扩展表(Students_Extended),它包含其他学生的信息,我们可以通过并操作将这两个表合并成一个大表。

交(Intersection)

交操作用于找到两个表中共同的部分。

如果两个表都有相同的记录,交操作会保留这些相同的记录。例如,如果我们有两个学生表,交操作会显示同时出现在两个表中的学生。

差(Difference)

差操作用于从一个表中减去另一个表的部分。

举个例子,如果我们想知道学生表中哪些学生没有选某个课程,可以用差操作从学生表中减去那些已选课的学生。

  1. 笛卡尔积(Cartesian Product)

笛卡尔积是将两个表的每一行组合成一个新表,生成可能的所有组合。

比如,我们将学生表课程表进行笛卡尔积操作,结果就是每个学生和每门课程的所有组合,这通常是一个非常大的表。

选择(Selection)

选择操作用于从表中筛选符合条件的行。

比如,我们想要找出年龄大于20岁的学生,只选择满足这个条件的行。

投影(Projection)

投影操作用于选择表中的特定列。

如果我们只想看学生的姓名和年龄,而不关心学号,我们可以对学生表进行投影操作,只保留姓名和年龄两列。

连接(Join)

连接操作用于将两个表按照某个共同的字段(通常是主键)组合在一起。

相同条件下自然连接的性能优于笛卡尔积。

二、题目

自然连接以左侧为主。

B 和C

图片中的E1、E2、E3、E4表示的是四个等价的关系代数表达式。它们都可以实现相同的查询结果,但是它们的执行顺序和步骤不同,从而导致查询效率可能不同。

要决定哪个表达式查询效率最高,通常遵循以下原则:

  1. 选择操作 (σ):尽可能提前执行选择操作,以减少后续操作处理的数据量。

  2. 投影操作 (π):尽量在所有选择和连接操作之后执行,以防止丢失必要的列。

在图中:

  • E1:先进行连接操作,再执行选择操作,最后进行投影。

  • E2:先对两个关系分别执行选择操作,再执行连接操作,最后进行投影。

  • E3:先进行选择和连接操作的结合,再执行投影。

  • E4:和E3类似,选择和连接操作结合后进行投影。

根据这些原则,E2的查询效率最高,因为它将选择操作提前到了连接操作之前,这样可以显著减少连接时的数据量,从而提高查询效率。

因此,正确答案是B: E2

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号