加载关键字将映射到什么样的关系代数运算符中?如果它不是逻辑运算符,而是物理运算符,那么数据库查询处理器如何在逻辑到物理运算符转换过程中处理它?或者,如果它没有映射到关系代数原语中,那么它是一个特定于实现的关系代数运算符扩展吗?
发布于 2013-10-13 22:04:23
查询解析后,LOAD关键字在数据库内部映射为逻辑运算符,但它不是代数运算符。所有代数运算符都是逻辑运算符,但不是所有逻辑运算符都是代数运算符。
发布于 2013-09-24 17:49:32
你必须区分代数算子,例如自然连接,传递闭包,……以及数据操作语言的关键字/命令。
代数运算符对给定的值进行计算,并返回计算值作为结果。
然后你有编程和数据处理语言,在某种意义上,这些语言是建立在代数运算符之上的。如果您有一个代数运算符“整数加法”,那么在您的语言中也会有一个符号来表示对该运算符的调用,例如'+‘。您可以有格式良好的公式(wffs),其中包含a.o。这样的符号。例如,“a+b”或“x+1”。
这是变量弹出的地方。仅仅代数算子是不够的,我们也需要变量(至少在过程语言中)。为了操纵这些变量,我们需要这个叫做“赋值”的东西,更长远地说,我们需要赋值操作符。
就像赋值"x := 3“可以看作是对整数赋值操作符的调用的wff一样,LOAD也可以看作是关系赋值操作符可能出现的形式。
赋值运算符显然不是代数的只读运算符,但它是用于管理状态的语言运算符。
发布于 2013-09-08 21:43:56
从数学的角度来看,LOAD根本不是一个运算符。因为它接受一个存储在文件中的关系,并将相同的关系放入数据库。
因此,我们得到了两个相同关系的物理副本,但在数学上没有执行任何操作。您可以把它看作是一个平凡的选择操作,无条件地从关系中选择所有的元组。
“数据库查询处理器在逻辑到物理运算符转换过程中是如何处理的?”
MySQL在解析查询后执行适当的函数。这个函数读取给定的文件并将数据加载到表中。
我认为,MySQL开发人员并不关心关系代数中存在的操作、映射负载等抽象问题。
https://stackoverflow.com/questions/18688230
复制相似问题