单选题 某销售公司数据库的零件关系(零件号,零件名称,供应商,供应商所在地,库存量)如表所示,其中同一种零件可由不同的供应商供应,一个供应商可以供应多种零件。零件关系的主键为______,该关系存在冗余以及插入异常和删除异常等问题。为了解决这一问题需要将零件关系分解为______,分解后的关系模式可以达到______。
{{B}}零件关系的相关数据情况{{/B}}
010023 P2 S1 北京市海淀区58号 380
010024 P3 S1 北京市海淀区58号 1350
010022 P1 S2 西安市雁塔区2号 160
010023 P2 S2 西安市雁塔区2号 1280
010024 P3 S2 西安市雁塔区2号 3900
010022 P1 S3 北京市新城区65号 2860
... ... ... ... ...
单选题
  • A.零件号,零件名称
  • B.零件号,供应商
  • C.零件号,供应商所在地
  • D.供应商,供应商所在地
【正确答案】 B
【答案解析】
单选题
  • A.零件1(零件号,零件名称,供应商,供应商所在地,库存量)
  • B.零件1(零件号,零件名称)、零件2(供应商,供应商所在地,库存量)
  • C.零件1(零件号,零件名称)、零件2(供应商,供应商所在地)、零件3(零件号,供应商,库存量)
  • D.零件1(零件号,零件名称)、零件2(零件号,库存量)、零件3(供应商,供应商所在地)、零件4(供应商所在地,库存量)
【正确答案】 C
【答案解析】
单选题
  • A.1NF
  • B.2NF
  • C.3NF
  • D.4NF
【正确答案】 C
【答案解析】[解析] 依题意,由“同一种零件可由不同的供应商供应,一个供应商可以供应多种零件”可知,实体“零件”与实体“供应商”之间存在联系“供应”,其联系的类型为多对多(m:n)。根据E-R模型到关系模式的转换规则,需要将联系“供应”独立转换成一个关系模式,该关系模式中需要补充加入n端实体“零件”的主键——“零件号”(同时作为主键和外键),以及加入m端实体“供应商”的主键——“供应商号”(同时作为主键和外键)。属性“零件号”、“供应商号”的组合是“供应”关系模式的主键,同时又是该关系模式的外键。 观察表中的数据,零件关系(零件号,零件名称,供应商,供应商所在地,库存量)的主键为(零件号,供应商)。该关系模式存在非主属性对码(主键)的部分函数依赖,(零件号,供应商)→供应商所在地,但是供应商→供应商所在地,故该关系模式属于第1范式(1NF),会产生数据冗余及数据修改的不一致性(例如插入异常、删除异常)等问题。 为了解决这些问题,可以将“零件”关系模式分解为:零件1(零件号,零件名称)、零件2(供应商,供应商所在地)、零件3(零件号,供应商,库存量)。选项B和选项D的分解是有损连接,且不保持函数依赖。例如,分解为选项B后,用户无法查询某零件由哪些供应商供应。分解后的关系模式“零件1”、“零件2”和“零件3”消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。