关系代数和关系微积分之间的区别
作者:
Laura McKinney
创建日期:
1 四月 2021
更新日期:
14 可能 2024
内容
关系代数和关系演算是关系模型的形式查询语言。两者都是大多数关系DBMS中使用的SQL语言的基础。 关系代数 是一种程序语言。另一方面, 关系演算 是一种声明性语言。关系代数和关系微积分可以在许多方面进行进一步区分,下面在比较表的帮助下进行了讨论。
内容:关系代数与关系演算
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 关系代数 | 关系演算 |
---|---|---|
基本的 | 关系代数是一种过程语言。 | 关系类是声明性语言。 |
状态 | 关系代数说明了如何获得结果。 | 关系微积分说明了我们必须获得什么结果。 |
订购 | 关系代数描述了必须执行操作的顺序。 | 关系微积分未指定操作顺序。 |
域 | 关系代数不依赖域。 | 关系Claculus可以依赖于域。 |
有关 | 它接近于编程语言。 | 它接近自然语言。 |
关系代数的定义
关系代数介绍了关系模型的基本运算集。它是一个 程序 语言,描述获得结果的过程。关系代数是规定性的,因为它描述了 操作顺序 在指定的查询中 怎么样 检索查询结果。
关系代数中的运算序列称为 关系代数表达。关系代数表达式将一个关系或两个关系作为该表达式的输入,并产生一个新的关系。从关系代数表达式获得的结果关系可以进一步与其他关系代数表达式组合,其结果将再次成为新的关系。
关系代数形成了在查询处理时实现和优化查询的框架。关系代数是关系DBMS的组成部分。关系代数中包含的基本运算是{ 选择(σ),项目(π),并集(∪),设置差(-),笛卡尔积(×)和重命名(ρ)}.
关系演算的定义
与关系代数不同,关系微积分是一个更高的层次 陈述式 语言。与关系代数相反,关系演算定义了 什么 要获得结果。像关系代数,关系微积分 没有指定操作顺序 将在其中评估查询。
关系演算操作的顺序称为 关系演算表达 结果也产生了新的关系。关系演算有两个变体,即 元组关系演算 和 领域关系演算.
元组关系演算 列出元组 从某个关系中选择 条件 提供。正式表示为:
(
哪里 Ť 是条件的元组集合 P 是真的。
下一个变化是域关系演算,与元组关系演算相反 列出属性 根据某种关系从关系中选择 条件。域关系演算的正式定义如下:
哪里 X1,X2,X3,... 。 。 Xn 是属性和 P 是一定条件。
- 关系代数与关系演算之间的基本区别在于,关系代数是一种过程语言,而关系代数是一种非过程语言,而是一种陈述性语言。
- 关系代数定义了如何获得结果,而关系演算则定义了结果必须包含哪些信息。
- 关系代数指定查询中必须执行的操作的顺序。另一方面,关系演算未指定要在查询中执行的操作顺序。
- 关系代数不依赖于域,而关系微积分可以依赖于域,因为我们拥有域关系微积分。
- 关系代数查询语言与编程语言紧密相关,而关系演算与自然语言紧密相关。
结论:
关系代数和关系演算都具有同等的表达能力。它们之间的主要区别只是关系代数指定了如何检索数据,而关系微积分定义了要检索哪些数据。