单选题 某销售公司数据库的零件P(零件号,零件名称,供应商,供应商所在地,库存量)关系如表所示,其中同一种零件可由不同的供应商供应,一个供应商可以供应多种零件。零件关系的主键为______,该关系存在冗余,以及插入异常和删除异常等问题。为了解决这一问题需要将零件关系分解为______。
{{B}}零件P关系表{{/B}}
零件号 零件名称 应商 应商所在地 单价(元) 库存量
010023 P2 S1 北京市海淀区58号 22.80 380
010024 P3 S1 北京市海淀区58号 280.00 1350
010022 P1 S2 陕西省西安市雁塔区2号 65.60 160
010023 P2 S2 陕西省西安市雁塔区2号 28.00 1280
010024 P3 S2 陕西省西安市雁塔区2号 260.00 3900
010022 P1 S3 北京市新城区65号 66.80 2860
... ... ... ... ... ...
对零件关系P,查询各种零件的平均单价、最高单价与最低单价之间差距的SQL语句为:
SELECT 零件号, ______
FROM P
______;
对零件关系P,查询库存量大于等于100小于等于500的零件“P1”的供应商及库存量,要求供应商地址包含“西安”。实现该查询的SQL语句为:
SELECT 零件名称,供应商名,库存量
FROM P
WHERE ______ AND ______;
单选题
  • A.零件号,零件名称
  • B.零件号,供应商
  • C.零件号,供应商所在地
  • D.供应商,供应商所在地
【正确答案】 B
【答案解析】
单选题
  • A.P1(零件号,零件名称,单价)、P2(供应商,供应商所在地,库存量)
  • B.P1(零件号,零件名称)、P2(供应商,供应商所在地,单价,库存量)
  • C.P1(零件号,零件名称)、P2(零件号,供应商,单价,库存量)、P3(供应商,供应商所在地)
  • D.P1(零件号,零件名称)、P2(零件号,单价,库存量)、P3(供应商,供应商所在地)、 P4(供应商所在地,库存量)
【正确答案】 C
【答案解析】
单选题
  • A.零件名称,AVG(单价),MAX(单价)-MIN(单价)
  • B.供应商,AVG(单价),MAX(单价)-MIN(单价)
  • C.零件名称,AVG单价,MAX单价-MTN单价
  • D.供应商,AVG单价,MAX单价-MIN单价
【正确答案】 A
【答案解析】
单选题
  • A.ORDER BY 供应商
  • B.ORDER BY 零件号
  • C.GROUP BY 供应商
  • D.GROUP BY 零件号
【正确答案】 D
【答案解析】
单选题
  • A.零件名称='P1'AND 库存量 Between 100 AND 500
  • B.零件名称='P1'AND 库存量 Between 100 TO 500
  • C.零件名称='P1'OR 库存量 Between 100 AND 500
  • D.零件名称='P1'OR 库存量 Between 100 TO 500
【正确答案】 A
【答案解析】
单选题
  • A.供应商所在地in'%西安%'
  • B.供应商所在地like'西安%'
  • C.供应商所在地like'%西安%'
  • D.供应商所在地like'西安%'
【正确答案】 C
【答案解析】[解析] 依题意,同一种零件可由不同的供应商供应,一个供应商可以供应多种零件,因此“零件”实体与“供应商”实体之间存在联系“供应”,其联系的类型为多对多(m:n)。在表中,当使用“零件号”和“供应商”属性组合作为“零件”关系主键时,才可以唯一区分“零件”关系模式中的每一个元组。 由于“零件”关系模式存在非主属性对码的部分函数依赖:(零件号,供应商)→供应商所在地,但是供应商→供应商所在地,故该关系模式不是2NF,存在数据冗余以及插入异常和删除异常等问题。为了解决这些问题,需要将关系零件P模式分解成3NF范式集,即P1(零件号,零件名称)、P2(零件号,供应商,单价,库存量)和P3(供应商,供应商所在地)。分解后的关系模式零件P1、零件P2和零件P3消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。 查询各种零件的平均单价、最高单价与最低单价之间差距的SQL语句为: SELECT 零件号,零件名称,AVG(单价),MAX(单价)-MIN(单价) FROM P GROUP BY 零件号; 其中,GROUP子句完成按指定“零件号”列的值进行分组。 依题意,查询库存量大于等于100,小于等于500的零件“P1”的供应商及库存量的SQL语句应采用“零件名称='P1'AND库存量Between 100 AND500”,而要求供应商地址包含“西安”的供应商名的SQL语句应采用“供应商所在地like'%西安%'”。实现该查询需求的完整SQL语句如下。 SELECT 零件名称,供应商名,库存量 FROM P WHERE 零件名称='P1'AND 库存量 Between 100 AND 500 ANd 供应商所在地 like '西安%';