若关系模式R和S分别为:R(A,B,C,D),S(B,C,E,F),则关系R与S自然联结运算后的属性列有(【6】)个,与表达方式等价的 SQL 语句为:SELECT (【A,R.C,E,F】) FROM R , S WHERE (【R.B=S.B AND R.C=S.C AND R.C<S.F】);
自然连接是关系数据库常用连接操作,核心基于两关系同名属性做等值连接,同时自动去除重复同名属性列,计算连接后列数可通过两关系总列数减去重复同名列数量得到,它等价于在笛卡尔积基础上添加所有同名列的等值匹配条件。将关系代数投影运算转换为SQL语句时,若投影列包含两表同名列,必须通过表名加列名的方式消歧;非同名列可直接用列名,也可加表名前缀,且投影列集合需严格匹配运算要求,不能随意增减。当选择运算与自然连接结合时,SQL的WHERE子句需同时包含自然连接的同名列等值条件,以及对应选择要求的列比较条件,所有条件要用AND连接,且选择条件要准确对应到原表列名,注意连接结果列与原表列的映射关系,避免列名混淆或条件逻辑错误。
本题考察的是自然连接、选择与投影组合运算到SQL的等价转换。
问题 1:
A选项 4:自然连接R(A,B,C,D)与S(B,C,E,F)在同名属性B、C上相等连接后,去除重复列,结果应为A,B,C,D,E,F,共6列,此项过少,错误。
B选项 6:自然连接后属性为A,B,C,D,E,F,共6个,正确。
C选项 7:多算了1列,错误。
D选项 8:相当于笛卡尔积未去重,错误。
选择选项 B。
问题 2:
自然连接后列序(按常规)为[1:A, 2:B, 3:C, 4:D, 5:E, 6:F];π₁,₃,₅,₆即投影[A, C, E, F]。A、E、F在两个表中不重名,C来自R与S的同名列,SQL需消歧选R.C(或S.C,等价)。
A选项 A, R.C, E, F:与投影一致,正确。
B选项 A, C, S.B, S.E:含S.B而非E,F组合,且C未消歧,错误。
C选项 A, C, S.B, S.C:包含不需要的S.B,且缺少E、F,错误。
D选项 R.A, R.C, S.B, S.C:列集合不等于[A,C,E,F],错误。
选择选项 A。
问题 3:
σ₃<₆是对连接结果第3列与第6列做选择,即C<F;自然连接等价于在笛卡尔积上加等值条件R.B=S.B AND R.C=S.C。
A选项:将比较写成R.C<S.B,比较列错误。
B选项:R.B=S.B AND R.C=S.C AND R.C<S.F,恰为自然连接加C<F,正确。
C选项:使用OR而非AND,破坏自然连接与选择语义,错误。
D选项:同样使用OR,错误。
选择选项 B。
