我有一种困惑。 假设有两个与共同属性A的关系。 现在是 (R自然连接S)=(R连接S,其中连接条件A = A)? 自然连接返回公共列A. 由于集合论中定义的关系代数,简单连接返回两个具有相同名称AA或一个公共列A的列吗?
答案 0 :(得分:0)
有一个自然加入here的例子。正如@Renzo所说,有许多变种。而SQL再次不同了。因此,我将继续关注维基百科所显示的内容。
最重要的是:连接条件适用于两个参数之间共同的所有属性。所以你需要说"与A的两个关系是他们的 only 共同属性"。该维基百科示例中唯一的常见属性是DeptName
。一般来说,可以有许多共同的属性。
是的,连接意味着通过将参数中的元组与相应公共属性中具有相同值的参数配对来形成元组。所以你有相同的属性名称相同的值。在结果中重复这两个属性毫无意义,因为你要重复这些值。该示例显示结果中存在单个属性DeptName
。
请注意,关系代数的不同方言使用不同的符号和符号。因此,自然连接的裸领结(⋈)可以带有布尔条件的后缀,使theta-join (θ-join) or equi-join - 看到这个例子。布尔条件位于不同命名的属性之间,可能使用任何比较运算符。因此,属性名称及其值都出现在结果中。
设置理论操作适用,因为每个元组都是一组名称 - 值对。结果元组是每个参数的元组的并集 - 提供union是一个有效的元组。也就是说,提供相同名称的n-v对具有相同的值。