LOAD 是一个关系代数运算符吗?



LOAD 关键字会映射到什么样的关系代数运算符?如果它不是逻辑运算符,而只是物理运算符,那么数据库查询处理器在逻辑到物理运算符转换过程中如何处理它?或者,如果它没有映射到关系代数原语中,那么它是特定于实现的关系代数运算符扩展吗?

你必须区分代数运算符,如自然连接、传递闭包......和数据操作语言的关键字/命令。

代数运算符对给定值进行计算,并返回计算值作为其结果。

然后你有编程和数据操作语言,从某种意义上说,它们是在代数运算符的"之上"构建的。 如果你有一个代数运算符"整数加法",那么你的语言中也会有一个符号来表示对该运算符的调用,比如"+"。 您可以拥有由此类符号组成的格式良好的公式 (wffs)。 例如,"a+b"或"x+1"。

这是变量弹出的地方。 仅靠代数运算符是不够的,我们还需要变量(至少在过程语言中)。 为了操纵这些变量,我们需要这个叫做"赋值"的东西,更啰嗦地说,我们需要赋值运算符

就像赋值 "x := 3" 可以被视为表示整数赋值运算符调用的 wff 一样,LOAD 可以被视为可能出现关系赋值运算符的一种形式。

赋值运算符显然不是代数的只读运算符,但它是您用于管理状态的语言运算符。

在查询解析为逻辑运算符后,LOAD 关键字在数据库中内部映射,但它不是代数运算符。所有代数算子都是逻辑算子,但并非所有逻辑算子都是代数算子。

从数学的角度来看,LOAD根本不是一个运算符。因为它接受一个关系,存储在文件中,并将相同的关系放入数据库中。

因此,我们得到了相同关系的 2 个物理副本,但在数学上没有执行任何操作。您可以将其视为简单的选择操作,无条件地从关系中选择所有元组。

"在数据库查询处理器从逻辑到物理运算符的转换过程中如何处理它?"

MySQL在解析查询后执行相应的函数。此函数读取给定文件并将数据加载到表中。

我不认为MySQL开发人员关心诸如关系代数中存在操作,映射LOAD之类的抽象事物。

LOAD根本不是运算符;它只是MySQL(和其他RDBMS)中的一个保留字。 每个RDBMS都有自己的"保留字"列表。

相关内容

  • 没有找到相关文章

最新更新