我对relational algebra以及theta-join,equi-join和natural-join如何相互分类有疑问。
在stackoverflow.com sqlvogel引用E.F. Codd的评论中,发明数据库管理关系模型的计算机科学家,自然[-join]是其子集Equi [-join]是Theta的一个子集[-join]。" *
(stackoverflow.com在2月12日下午9:01检索到。)
我理解equi-join如何被视为theta-join的一个子集。它们都连接并且它们都使用固定数量的属性,但是equi-join仅限于使用相等运算符(=)。另一方面,自然连接是连接两个关系中的元组的所有组合(不是固定数量的属性)的集合,并且限制为使用相等运算符(=)。 equi-join和theta-join在他们可以使用的运算符方面有所不同,但我认为自然连接在不同的维度中是不同的,因为它不需要任何属性&# 39;定义。
有人能解释一下这个问题吗?
*
我无法找到此引文的原始来源。
答案 0 :(得分:2)
他可能会提到以下内容:
自然连接是等连接,其中相等比较应用于具有相同名称的属性。
TABLE_A JOIN TABLE_B ON TABLE_A.X = TABLE_B.Y是等同连接,但不是自然连接。
因此,所有自然连接确实是等连接,但并非所有等连接都是自然连接。
因此,表之间所有可能的自然连接的集合是这些相同表之间所有可能的等连接集的子集(通常是正确的)。