问题 单项选择题

某销售公司数据库的零件P(零件号,零件名称,供应商,供应商所在地,库存量)关系如下表所示,其中同一种零件可南不同的供应商供应,一个供应商可以供应多种零件。零件关系的主键为 (63) 。查询各种零件的平均单价、最高单价与最低单价之间差距的SQL语句为:
SELECT 零件号, (64)
FROM P
(65)

该关系存在冗余以及插入异常和删除异常等问题。为了解决这一问题需要将零件关系分解为

A.P1(零件号,零件名称,单价)、P2(供应商,供应商所在地,库存量)
B.P1(零件号,零件名称)、P2(供应商,供应商所在地,单价,库存量)
C.P1(零件号,零件名称)、P2(零件号,供应商,单价,库存量)、P3(供应商,供应商所在地)
D.P1(零件号,零件名称)、P2(零件号,单价,库存量)、P3(供应商,供应商所在地)、P4(供应商所在地,库存量)

答案

参考答案:C

解析:试题(53)的正确选项为B。根据题意,零件P关系的主键为(零件号,供应商)。
试题(54)的正确选项为A,试题(55)的正确选项为D。试题要求查询各种零件的平均单价、最高单价与最低单价之间差距,因此,首先需要在结果列中的空(54)填写“零件名称,AVG(单价),MAX(单价)-MIN(单价)”。其次必须用分组语句按零件号分组,故空(55)应填写“GROUP BY零件号”。完整的SQL语句为:
SELECT零件号,零件名称,AVG(单价),NAX(单价)-MIN(单价)
FROM P
GROUP BY零件号;
试题(56)的正确选项为C。为了解决关系P存在冗余以及插入异常和删除异常等问题,需要将零件关系P分解。选项A、选项B和选项D是有损连接的,且不保持函数依赖故分解是错误的,例如,分解为选项A、选项B和选项D后,用户无法查询某零件由哪些供应商供应,原因是分解是有损连接的,且不保持函数依赖。

单项选择题
单项选择题