关系代数中的自然连接 - 数据库理论

Natural Join in Relational Algebra - Database Theory

如果把黄色部分删掉,我还能得出正确答案吗?它甚至是必要的吗?

假设这不是作业:

我猜|X|是自然连接,#表示主键属性。

S# 上突出显示的投影对于 查询结果的正确性(有效性)。

但是,它可能会提高效率:项目越早越好 在加入 之前删除重复项 。这避免了不必要的努力 首先产生重复的 natjoined 元组,投影在 sname然后必须删除。

要知道能不能省略,得看表达式及其子表达式对应的谓词是什么

例如,最里面的限制说(我想是因为这个例子很熟悉)"Supplier S# supplies part P# in quantity QUANTITY AND P# = 3"。或者更短 "Supplier S# supplies part 3 in quantity QUANTITY".

然后在 S# 上的投影显示 "there exists some quantity q such that supplier S# supplies part 3 in that quantity"。

然后与 S 的 JOIN 表示 "Supplier S# is named SNAME, [familiar part snipped] AND there exists some quantity q such that supplier S# supplies part 3 in that quantity"。或者更短 "Supplier S# is named SNAME, [familiar part snipped] AND supplies part 3 in some quantity".

SNAME 上的投影显示 "there exists some S#, CITY, STATUS such that Supplier S# is named SNAME, [familiar part snipped] AND supplies part 3 in some quantity"。

你对省略"inner projection"的情况做同样的事情,然后尝试证明得到的谓词必须等价于这个谓词。如果可以的话,您知道包括该投影是不必要的。 [如果你做不到,你必须更加努力:-)]