news 2026/8/22 10:39:42

关系代数五大基本运算全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关系代数五大基本运算全解析

文章目录

      • 关系代数五大基本运算全解析
        • 什么是关系代数?
        • 五大基本运算详解
        • 一张表总结
        • 为什么这5种是"基本"的?
        • 写在最后

关系代数五大基本运算全解析

关系代数是关系数据库的理论基石,而其中5种基本运算更是重中之重——所有其他运算(连接、交、除法等)都可以由它们推导而来。今天就来一次性搞懂它们!


什么是关系代数?

简单来说,关系代数是一套对**关系(即数据库中的"表")**进行操作的数学语言。它定义了一组运算规则,让我们能够从已有表中推导出新的表。

而在这套体系中,有5种运算被定义为基本运算,因为它们是"不可再分"的——其他所有运算都可以用这5种的组合来表达。


五大基本运算详解

并(Union,∪)

  • 做什么:把两个表的所有行合并到一起,去掉重复的行。
  • 前提条件:两个表必须相容——列数相同,且对应列的数据类型一致。
  • 生活类比:把两个班级的花名册合在一起,同名同学只保留一个。

示例

  • 表R:{(1, 张三), (2, 李四)}
  • 表S:{(2, 李四), (3, 王五)}
  • R ∪ S = {(1, 张三), (2, 李四), (3, 王五)}

注意:并运算会自动去重,这是集合论的基本要求。


差(Difference,−)

  • 做什么:从表R中去掉那些也出现在表S中的行,只保留"R独有的"。
  • 前提条件:同样要求两表相容。
  • 生活类比:A班花名册减去B班花名册,得到"只在A班、不在B班"的同学。

示例

  • R − S = {(1, 张三)}

差运算不满足交换律:R − S ≠ S − R。


广义笛卡尔积(Cartesian Product,×)

  • 做什么:将两个表的每一行两两配对,生成所有可能的组合。
  • 结果规模:如果R有m行、S有n行,则R × S有m × n行;列数则是两表列数之和。
  • 生活类比:把3件上衣和2条裤子搭配,总共能搭配出6套。

示例

  • R有3行2列,S有2行3列
  • R × S → 6行5列

笛卡尔积本身很少直接使用(结果往往太大且无意义),但它是**连接(Join)**运算的基础——连接本质上就是"先做笛卡尔积,再筛选"。


投影(Projection,π)

  • 做什么:从表中选取指定的列,丢弃其余列,并消除重复行。
  • 操作方向:纵向(对列操作)。
  • 生活类比:从一份包含姓名、年龄、性别、地址的员工表中,只提取"姓名"和"年龄"两列。

示例

  • 学生表(学号, 姓名, 年龄, 性别)
  • π(学生表) → 只保留姓名和年龄

投影后如果出现重复行,会自动去重。


选择(Selection,σ)

  • 做什么:从表中筛选出满足条件的行,保留所有列。
  • 操作方向:横向(对行操作)。
  • 生活类比:从全班花名册中,挑出所有年龄大于20岁的同学。

示例

  • 学生表(学号, 姓名, 年龄)
  • σ(学生表) → 只保留年龄>20的行

选择运算不会改变表的列结构,只影响行数。


一张表总结
运算符号操作对象核心作用
两个表合并去重
两个表求差集
笛卡尔积×两个表全组合
投影π单个表(列)纵向筛选
选择σ单个表(行)横向筛选

为什么这5种是"基本"的?

因为其他常见运算都可以用它们来表达:

  • 交(∩):R ∩ S = R − (R − S)
  • 自然连接(⋈):先做笛卡尔积,再用选择运算筛选匹配行,最后用投影去掉重复列
  • θ连接:笛卡尔积 + 选择

这就是为什么教科书把这5种定义为"基本运算"——它们是关系代数的最小完备集


写在最后

掌握这5种基本运算,不仅能帮你理解SQL背后的原理(SELECT对应选择,SELECT列对应投影,UNION对应并,EXCEPT对应差,CROSS JOIN对应笛卡尔积),更是深入学习数据库查询优化的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 10:39:18

数学建模实战:用微分方程与仿真对抗超级细菌的演化

1. 项目概述:一场与时间的赛跑2016年第五届数学建模国际赛(俗称“小美赛”)的C题“对超级细菌的战争”,即便放在今天来看,依然是一个极具前瞻性和现实意义的赛题。它没有停留在抽象的数学理论层面,而是直接…

作者头像 李华
网站建设 2026/8/22 10:39:16

风暴AI图像编辑器:Photoshop精准局部编辑的AI解决方案

如果你是一名设计师或图像处理从业者,最近一定被各种“AI图像生成”工具刷屏了。从Midjourney、Stable Diffusion到DALL-E,它们能“无中生有”地创造惊人画面。但一个更实际、更棘手的问题却常常被忽略:当客户发来一张现成的产品图&#xff0…

作者头像 李华
网站建设 2026/8/22 10:38:57

产品体验测试技术实现:SUS量表分析与可用性指标计算(附Python示例)

一、概述产品体验测试通过任务完成率、SUS量表、NPS和CES等指标评估产品可用性。本文从技术角度介绍指标计算和统计分析方法。二、任务完成率分析import pandas as pd# 测试记录数据 df pd.read_excel(usability_test.xlsx)# 每个任务的完成率、平均时间、错误率 tasks [ftas…

作者头像 李华
网站建设 2026/8/22 10:36:46

我发现我用的这个app是从国外复制过来的-----界面都是一样的

这个app在复制的是一个国外非常火的app:下载量在千万以上-------------连界面都是完全复制过来的。之所以说是复制过来的,因为名字不一样,国内叫做ultra ,国外叫做xbooster。如果是同样的名字可能就是一个人,但是确实是…

作者头像 李华
网站建设 2026/8/22 10:35:11

vue-circle-progress:一条命令装好 Vue 动画圆形进度条

vue-circle-progress:一条命令装好 Vue 动画圆形进度条 【免费下载链接】vue-circle-progress A Vue.js component to draw animated circular progress bars 项目地址: https://gitcode.com/gh_mirrors/vu/vue-circle-progress vue-circle-progress 是一个 …

作者头像 李华