Sql 关系代数中的Write语句

Sql 关系代数中的Write语句,sql,relational-algebra,Sql,Relational Algebra,我在尝试用关系代数编写以下语句时遇到问题: select A.name, A.gender, A.class, B.sid from A,B; 我不知道这是否有帮助,但A和B是通过sid主键连接的 当我胡闹的时候,我想到了这个: π A.name, A.gender, A.class, B.sid (A,B) 但是我不确定这是否正确,SQL中的A,B的符号并不经常使用,因为不久前,它对应于笛卡尔积(现在更常见的是从交叉连接B写为),它将A的每个元组与B的所有元组连接在一起 在关系代数中,它可

我在尝试用关系代数编写以下语句时遇到问题:

select A.name, A.gender, A.class, B.sid from A,B;
我不知道这是否有帮助,但A和B是通过sid主键连接的

当我胡闹的时候,我想到了这个:

π A.name, A.gender, A.class, B.sid (A,B)

但是我不确定这是否正确,SQL中的A,B的符号
并不经常使用,因为不久前,它对应于笛卡尔积(现在更常见的是从交叉连接B写为
),它将
A的每个元组与
B的所有元组连接在一起

在关系代数中,它可以通过笛卡尔乘积的运算符表示,
x
,因此查询可以转换为:

π A.name, A.gender, A.class, B.sid (A x B)
请注意,在关系代数中,
x
运算符的两个表参数通常需要具有不同属性


最后,还要注意,这两个关系的元组通过某个属性(例如外键)连接的事实被该运算符忽略。

“两个关系的元组通过外键连接未使用”True ish。但是,如果这两个关系都有一个名为
sid
(或者通常是相同的命名属性)的属性,那么笛卡尔乘积将失败。GeeGee没有给我们关系的模式;所以我们不知道。谢谢,@AntC,我已经更改了答案。@AntC&Renzo版本的RA(以列表为标题)可以&确实有一个产品操作符使用共享属性名称的输入。这就是为什么它们通常包含别名和点。正如我以前说过的,用代数选项中必要的精确性的任意片段来回答是没有意义的;告诉询问者定义他们的代数。在这里,回答者谈论一个由符号和名称表示的运算符,但他们甚至不知道他们谈论的是什么运算符。有许多RAs(关系代数)。他们在运算符方面有所不同,甚至关系是什么。为您的客户提供参考和/或定义。例如教科书名称、版本和页码。定义“写入”--相同的结果?相同的结构?表如何对应关系?空值呢?PS No RA使用逗号作为运算符。所以你似乎没有尽力告诉自己。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。