MySQL利用关系代数进行查询_mysql – 将SQL SELECT查询转换为相应的/等效的关系代数...

本文探讨了如何将MySQL的SELECT查询转换为等效的关系代数表达式,详细解释了关系代数运算符和查询转换规则,以及SQL中FROM、WHERE子句与代数运算的对应关系。
摘要由CSDN通过智能技术生成

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,….然后它处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值