【正确答案】
C
【答案解析】[解析] 依题意,由“同一种零件可由不同的供应商供应,一个供应商可以供应多种零件”可知,实体“零件”与实体“供应商”之间存在联系“供应”,其联系的类型为多对多(m:n)。根据E-R模型到关系模式的转换规则,需要将联系“供应”独立转换成一个关系模式,该关系模式中需要补充加入n端实体“零件”的主键——“零件号”(同时作为主键和外键),以及加入m端实体“供应商”的主键——“供应商号”(同时作为主键和外键)。属性“零件号”、“供应商号”的组合是“供应”关系模式的主键,同时又是该关系模式的外键。
观察表中的数据,零件关系(零件号,零件名称,供应商,供应商所在地,库存量)的主键为(零件号,供应商)。该关系模式存在非主属性对码(主键)的部分函数依赖,(零件号,供应商)→供应商所在地,但是供应商→供应商所在地,故该关系模式属于第1范式(1NF),会产生数据冗余及数据修改的不一致性(例如插入异常、删除异常)等问题。
为了解决这些问题,可以将“零件”关系模式分解为:零件1(零件号,零件名称)、零件2(供应商,供应商所在地)、零件3(零件号,供应商,库存量)。选项B和选项D的分解是有损连接,且不保持函数依赖。例如,分解为选项B后,用户无法查询某零件由哪些供应商供应。分解后的关系模式“零件1”、“零件2”和“零件3”消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。