RelaX 关系代数计算器

免费 RelaX 风格关系代数计算器——在线学习和练习数据库关系代数表达式,支持选择、投影、连接、并、交、除法等操作,纯前端即时计算。

825.3K 次使用 最近更新 · 2026-05-19 本地运行 · 零上传
AD

如何使用 RelaX 关系代数计算器

RelaX 关系代数计算器帮助您在浏览器中学习和练习数据库关系代数表达式。

  1. 准备数据 — 使用内置示例数据集(Students、Courses、Enrollments)或通过「导入」按钮导入自己的 CSV/TSV/JSON 数据。
  2. 编写表达式 — 使用符号按钮或直接在编辑器中输入。支持的运算符包括 σ、π、ρ、∪、∩、−、×、⨝、⟕、⟖、⟗、⋉、÷。
  3. 点击执行 — 计算器将表达式解析为 AST,逐步计算并显示结果。
  4. 查看结果 — 查看解析后的表达式、操作步骤和最终关系表,包含字段名、行数和去重元组数。

公式与原理 — RelaX 关系代数计算器

RelaX 关系代数计算器实现了标准的关系代数操作:

选择(σ)

σ[条件](R)
→ 返回 R 中满足条件的所有元组。
示例:σ[age>20](Students)

投影(π)

π[列1,列2,...](R)
→ 仅返回指定的列,去除重复。
示例:π[name,major](Students)

重命名(ρ)

ρ[新名](R)        → 重命名关系
ρ[新列/旧列](R)   → 重命名列
示例:ρ[Learners](Students)

并(∪)、交(∩)、差(−)

R ∪ S  → R 或 S 中的所有元组(模式必须匹配)
R ∩ S  → 同时在 R 和 S 中的元组
R − S  → 在 R 中但不在 S 中的元组

笛卡尔积(×)

R × S
→ R 和 S 中元组的所有可能组合。
重复列名会加上表名限定。

自然连接(⨝)

R ⨝ S
→ 在所有同名列上连接 R 和 S。
示例:Students ⨝ Enrollments

Theta 连接

R ⨝[条件] S
→ 在条件满足时连接 R 和 S。
示例:Students ⨝[Students.sid=Enrollments.sid] Enrollments

外连接

R ⟕ S  → 左外连接(保留 R 的所有元组)
R ⟖ S  → 右外连接(保留 S 的所有元组)
R ⟗ S  → 全外连接(保留两边所有元组)

半连接(⋉)和反连接(▷)

R ⋉ S  → R 中有匹配 S 元组的元组
R ▷ S  → R 中没有匹配 S 元组的元组

除法(÷)

R ÷ S
→ 找出 R 中与 S 所有元组都关联的元组。
经典的「找出满足所有条件的对象」查询模式。

谓词语法

比较运算:=、!=、<>、>、<、>=、<=
逻辑运算:AND、OR、NOT
字符串:  '值' 或 "值"
列引用:  列名
运算符符号关键字替代
选择σSELECT
投影πPROJECT
重命名ρRENAME
UNION
INTERSECT
EXCEPT / DIFFERENCE
笛卡尔积×CROSS
自然连接JOIN
左连接LEFT
右连接RIGHT
全连接FULL
半连接SEMI
反连接ANTI
除法÷DIV

使用场景 — RelaX 关系代数计算器

RelaX 关系代数计算器在多种数据库学习场景中非常实用:

  • 数据库课程作业 — 练习大学数据库课程的关系代数表达式,即时验证答案。
  • SQL 到关系代数的转换 — 通过编写等价表达式,理解 SQL 查询如何映射到关系代数。
  • 查询优化学习 — 比较同一查询的不同关系代数表达式,理解优化策略。
  • 考试准备 — 使用内置示例数据集(Students/Courses/Enrollments)练习常见的考试题型。
  • 教学演示 — 教师可在课堂上使用此工具实时演示关系代数概念。
  • 数据分析原型 — 在编写完整 SQL 之前,快速测试小型数据集上的关系操作。
  • 学习连接类型 — 用相同数据集比较自然连接、Theta 连接、外连接、半连接和反连接的区别。

关于RelaX 关系代数计算器的常见问题

什么是 RelaX 关系代数计算器?

RelaX 关系代数计算器是一款受 RelaX 等关系代数学习工具启发的在线工具。它允许您定义数据集表并编写关系代数表达式,使用 σ(选择)、π(投影)、ρ(重命名)、∪(并)、∩(交)、−(差)、×(笛卡尔积)、⨝(自然连接)等运算符。计算器在浏览器中解析并计算表达式,即时显示结果表。

使用这个计算器需要数据库或服务器吗?

不需要。这是一个纯前端关系代数计算器。所有数据存储、解析和计算都在浏览器中完成,无需后端数据库或服务器。您可以创建表、粘贴 CSV/TSV/JSON 数据,并完全离线运行表达式。

支持哪些关系代数操作?

计算器支持选择(σ)、投影(π)、重命名(ρ)、并(∪)、交(∩)、差(−)、笛卡尔积(×)、自然连接(⨝)、Theta 连接、左/右/全外连接(⟕/⟖/⟗)、半连接(⋉)、反连接(▷)和除法(÷)。这些涵盖了数据库课程中教授的标准关系代数操作。

如何编写关系代数表达式?

使用符号按钮或直接输入。例如:σ[age>20](Students) 选择年龄大于 20 的学生;π[name,age](Students) 投影 name 和 age 列;Students ⨝ Enrollments 执行自然连接。使用括号嵌套表达式。也可以写 SELECT、PROJECT、JOIN 等关键字代替符号。

可以导入自己的数据吗?

可以。点击「导入」按钮,输入表名,粘贴 CSV、TSV 或 JSON 数据。解析器会自动检测格式并创建关系。也可以添加空表并手动编辑。

这是官方 RelaX 工具吗?

不是。这是一款受关系代数学习工具启发的 RelaX 风格关系代数计算器,与官方 RelaX 项目无关。该计算器旨在帮助学生练习和理解关系代数概念,用于教育目的。

自然连接和 Theta 连接有什么区别?

自然连接(⨝)自动匹配两个关系中同名的列。Theta 连接需要指定条件,例如 ⨝[Students.sid=Enrollments.sid]。在连接符号后使用方括号 [条件] 表示 Theta 连接。

可以保存我的工作吗?

计算器在会话期间将数据集存储在浏览器内存中。要持久存储,可以将数据导出为 JSON 然后稍后导入。内置的示例数据集(Students、Courses、Enrollments)始终可用于练习。