自然/ theta连接可以替换关系代数中的交集吗?

时间:2016-01-30 13:26:50

标签: sql database database-design relational-database relational-algebra

我有关系A1 = (id1, id2)和关系A2 = (id, id1, id2),其中id,id1,id2是属性。

我想找到A1和{{1}的 交集 - (A1.id1 = A2.id1 ^ A1.id2 = A2.id2) 但是关系代数是不可能的,因为它们有不同的模式。

我想与他们相交不会丢失“id”数据。 (我不能简单地将项目A2投影到id1和id2然后相交)

那么我可以在这里应用 theta join 自然加入 来到达交汇点吗?

如果匹配不存在,它会返回空关系吗?

2 个答案:

答案 0 :(得分:2)

是的,如果在连接的关系中没有匹配的元组,它应该返回空关系。

是的,交集是自然连接的特殊情况。自然连接是交集的概括,而且自然连接可以"替换"可以使用交叉点的交叉点。 (但是你应该记住,你的特定用例是 NOT 可以使用"交叉点" - 原因正是你提到的:架构不是&# 39;相同。不要把马放在推车后面。)

答案 1 :(得分:0)

您可以将A2投放到id1id2上,然后将结果与a1相交,或者您也可以应用自然联接,然后重新投影结果id1id2

这两种不同的方法产生相同的结果。