在关系代数中写陈述

时间:2019-04-22 18:25:58

标签: algebra relational-algebra relational

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

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)

但是我不确定这是否正确

1 个答案:

答案 0 :(得分:1)

SQL中的符号FROM A,B不久前并不常用,它对应于将{{1}的每个元组连接在一起的笛卡尔乘积(现在更普遍地写为FROM A CROSS JOIN B)。 }和A的所有元组。

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

x

请注意,在关系代数中,π A.name, A.gender, A.class, B.sid (A x B) 运算符的两个表参数通常都是必需的,且属性各不相同。

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