
关于自然连接的说法,正确的是 A. 自然连接就是连接,只是说法不同罢了 B. 自然连接其实就是等值连接,它与连接不同 C. 自然连接是去掉重复元组的等值连接 D. 自然连接是去掉重复属性的等值连接
我们先明确几个概念:
连接(Join):广义上包括θ连接(条件连接)、等值连接、自然连接等。
等值连接(Equijoin):按相同值条件连接,结果会包含两个表中都出现的连接列,且不去除重复列。
自然连接(Natural Join):特殊的等值连接,要求两个表中同名列取值相等,并且结果中同名字段只保留一列。
分析选项:
A:说“自然连接就是连接”不严谨,因为连接有多种,它只是其中一种。❌
B:说“自然连接其实就是等值连接”是对的,但“它与连接不同”表述别扭,连接包含它。严格来说,自然连接是特殊的等值连接,而等值连接又是连接的一种,所以 B 的说法在逻辑上容易混淆。不过后半句容易误导,一般不说“它与连接不同”,因为连接是广义的。整体判断,B 不准确。
C:说“去掉重复元组的等值连接”错,自然连接不是去重复元组,元组重复与否取决于数据,而自然连接会去掉同名的属性列,不是去掉重复元组。❌
D:说“去掉重复属性的等值连接”✅,这正是自然连接与一般等值连接的区别:按同名属性等值连接,结果中同名属性只出现一次。
因此正确的是 D。
答案:D