RA(关系代数)运算符将关系作为输入并将它们作为输出返回.通常,RA查询语言是对运算符的嵌套调用的表达式.嵌套必须以表示关系值的叶子表达式结束.它们可以是用各部分来描述关系的文字.或者它们可以是给定关系常数或变量的名称.他们可能给了价值.学生就是这样的名字.因此,返回其值的查询只是使用表达式Student. (如果这不是关系值的有效表达式,那么在调用运算符时不能将其用作参数.)
(如果你想要一个涉及操作符调用的查询表达式,那么你需要以一种在输出时返回它的方式调用一个操作符.例如RESTRICT< attribute> =< attribute>(Student)或RESTRICT true(Student)或PROJECT(学生)或学生NATURAL JOIN学生等)
你没有定义“关系代数”.即使有不同的“关系”概念,也有很多变种.我将使用最简单的,其中一个关系的标题是一组属性名称,一个主体是一组属性名称和元组的元组.与操作符的价值对包括NATURAL JOIN,PROJECT,RENAME&限制.
您没有定义“convert”/“Correspon”/“equivalent”.
“等价表达式”=具有相同值的表达式?
与SELECT * FROM Student具有相同值的代数表达式:
Student
“等价表达”=具有相应表格的表达式&操作符?
如果您不只是想要任何返回相同内容的旧查询,那么您可能需要一些查询,其结构在某种意义上遵循或反映原始结构. (大概是为了表明你知道什么SQL查询子句对应于什么代数表达式.)这不是最简单的查询. SQL有这样一个不寻常的&复杂的语法.根据你的教师/教科书,你需要说“在某种意义上”意味着什么.
一些简单的SELECT-FROM-WHERE的简单机械转换规则:
首先,FROM子句RENAMEs每个表的列C1,…具有(可能是隐式的)别名A到A.C1,….然后它处

本文探讨了如何将MySQL的SELECT查询转换为等效的关系代数表达式,详细解释了关系代数运算符和查询转换规则,以及SQL中FROM、WHERE子句与代数运算的对应关系。
最低0.47元/天 解锁文章
1911

被折叠的 条评论
为什么被折叠?



