Type: concept
Confidence: 0.95
Created: 2026-04-17
Updated: 2026-04-17
Tags: 技术研究数学计算理论

关系演算

概述

关系演算是 Codd 提出的基于阶谓词逻辑的声明式数据操作方式,只描述结果应满足的条件,而不指定获取结果的步骤。

关键内容

两种形式

元组关系演算(Tuple Relational Calculus): - 基本形式:{t | P(t)} - 表示"满足谓词 P 的所有元组 t 的集合"

域关系演算(Domain Relational Calculus): - 直接以域变量为操作对象 - 两种形式在表达能力上等价

与关系代数的等价性

Codd 证明了一个至关重要的定理:关系代数和关系演算在表达能力上是等价的——任何可以用关系代数表达的查询都可以用关系演算表达,反之亦然。

这一等价性具有深远的理论和实践意义: - 理论:说明"过程式"和"声明式"两种查询范式在本质上是同一种能力的两种不同表现形式 - 实践:数据库系统可以接受用户的声明式查询(易于编写和理解),在内部将其转换为代数形式的执行计划(易于优化和执行)

与关系代数的对比

特性 关系代数 关系演算
风格 过程式(指定如何获取) 声明式(描述需要什么)
基础 集合运算 一阶谓词逻辑
优化 易于优化 需转换为代数形式
用户友好度 较低 较高

对 SQL 的影响

SQL 语言的设计更接近关系演算的声明式风格——用户用近似自然语言的方式(SELECT ... FROM ... WHERE ...)描述查询意图,数据库系统在内部将其转换为关系代数形式的执行计划。

来源

相关