在关系代数运算中,关系S、SP和R如下表所示。(请作答此空),可以从S和SP获得R。其对应关系表达式为( )。如下SQL语句可以查询销售总量大于1000部门名。Select部门名From SWhere部门号in(Select部门号From SP Group by( ))。
- A.若先对S进行选择运算,再与SP进行自然连接运算
- B.若先对S进行选择运算,再与SP进行自然连接运算,最后进行投影运算
- C.若先对S和SP进行笛卡儿积运算,再对运算结果进行投影运算
- D.若先分别对S和SP进行投影运算,再对运算结果进行笛卡儿积运算
正确答案及解析
正确答案
B
解析
本题考查是关系数据库关系代数查询语言和SQL查询语言。关系R包含是“家电部”销售商品号和销售量,这些信息来源于关系S和SP,需要对这两个关系进行连接运算。对于答案A:结果中包含部门号,不正确。对于答案C、D:笛卡儿积会产生无意义元组,不正确本题正确答案为B:通过选择运算取得“家电部”关系,与SP自然连接,投影用于去除部门号。试题(21)正确答案为C。对于答案A:结果中包含部门号,不正确。对于答案B:结果中包含是“部门号”,“商品号”,“销售量”,不正确;对于答案D:使用笛卡儿积会产生无意义元组,不正确。试题(22)正确答案为B。查询销售总量大于1000部门名,需要根据部门号进行分组,在组内使用集函数sum统计每个部门销售总量。对分组进行选择使用having短语,不能使用where子句,后者作用于整个表或视图。