DS4.1 关系代数操作符总结
2025-4-7
| 2025-4-11
Words 808Read Time 3 min
type
status
date
slug
summary
tags
category
icon
password
关系代数操作符总结

一、投影操作符 (π)

功能:选择表中的指定列,删除重复元组。
SQL 对应:SELECT
示例
关系代数表达式:

二、选择操作符 (σ)

功能:根据条件筛选表的行,保留原 schema,不需要重复删除
SQL 对应:WHERE
示例
关系代数表达式:
复合条件 (AND, OR) 使用符号: ∧(AND),∨(OR)
练习:表达以下 SQL 查询的关系代数表达式:
答案:

三、并集操作符 (∪)

功能:合并两个关系中的所有元组,删除重复
SQL 对应:UNION
示例
说明:两个关系必须有相同的列数和对应列类型

四、差集操作符 (-)

功能:保留第一个关系中有而第二个没有的元组
SQL 对应:EXCEPT
示例

五、交集操作符 (∩)

功能:保留在两个关系中都出现的元组
SQL 对应:INTERSECT
示例

六、笛卡尔积操作符 (×)

功能:生成所有元组对的组合
SQL 对应:FROM A, B
示例
说明:基础操作,可用于实现 join
练习:给定 dogs(name, age)parks(park, city),写出笛卡尔积的输出元组数量。
假设 dogs 有 3 行,parks 有 2 行,则总共有 6 行结果。

七、内连接 (⋈)

功能:按照指定条件连接两个关系
SQL 对应:JOIN ... ON ...
示例
自然连接 (natural join) 示例:
抽象表达
练习
对应的关系代数表达式:

八、重命名 (ρ)

功能:重命名列或关系,避免名称冲突
SQL 对应:AS 别名
示例

九、分组/聚合 (γ)

功能:表示 GROUP BY 和 HAVING,支持聚合函数
SQL 对应:GROUP BY, HAVING
示例1
关系代数表达式:
示例2
关系代数表达式:

十、实践练习(Practice Questions)

已知两个关系:
teams(teamid, name)
players(playerid, name, teamid, position)
  1. 查找所有打 "center" 位置球员的姓名和编号:
  1. 查找所有属于 "Warriors" 球队的球员姓名:
若将 players 的 teamid 重命名为 pteamid
  1. 查找没有任何球员的球队编号:
  1. 将以下 SQL 表达式转换为关系代数:
关系代数表达式:
 
  • database
  • DS4.2 Query 相关 设计Database System(四)
    Loading...