natural/theta join 可以替换关系代数中的交集吗?

Could natural/theta join replace intersection in Relational Algebra?

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

我想找到 交点 - (A1.id1 = A2.id1 ^ A1.id2 = A2.id2) of A1A2 ,但是在关系代数中是不可能的,因为它们有不同的模式。

我想将它们相交 不丢失 "id" 数据。 (我不能在 id1 和 id2 上简单地投影 A2 然后相交)

那么我可以应用 theta joinnatural join 这是要到达十字路口吗?

如果匹配不存在,是否return me empty relation?

您可以将 A2 投影到 id1id2 上,然后将结果与 a1 相交,或者您也可以应用自然连接,然后投影结果再次超过 id1id2

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

是的,如果连接关系中没有匹配的元组出现,它应该return空关系。

是的,交集是自然连接的特例,因此自然连接是交集的泛化,因此自然连接可以 "replace" 在任何可以使用交集的地方交集。 (但是你应该注意你的特定用例是 NOT 一个 "intersection can be used" - 原因正是你提到的:模式不相同。不要把马车后面的马。)