问题
单项选择题
某销售公司数据库的零件关系(零件号,零件名称,供应商,供应商所在地,库存量)如表4-14所示,其中同一种零件可由不同的供应商供应,一个供应商可以供应多种零件。零件关系的主键为 (34) ,该关系存在冗余以及插入异常和删除异常等问题。为了解决这一问题,需要将零件关系分解为 (35) ,分解后的关系模式可以达到 (36) 。
表4-14 零件关系表 | ||||
零件号 | 零件名称 | 供应商 | 供应商所在地 | 库存量 |
010023 | P2 | S1 | 北京市海淀区苏州街58号 | 380 |
010024 | P3 | S1 | 北京市海淀区苏州街58号 | 1350 |
010022 | P1 | S2 | 长沙市五一大道717号 | 160 |
010023 | P2 | S2 | 长沙市五一大道717号 | 1280 |
010024 | P3 | S2 | 长沙市五一大道717号 | 3900 |
010022 | P1 | S3 | 北京市新城区朝阳街65号 | 2860 |
… | … | … | … | … |
A.1NF
B.2NF
C.3NF
D.4NF
答案
参考答案:C
解析:
[分析]: 根据题意,同一种零件可由不同的供应商供应,一个供应商可以供应多种零件,因此,零件关系的主键为(零件号,供应商)。
在(35)空的4个选项中,选项A、B和D是有损连接的,且不保持函数依赖性,所以分解是错误的。例如,分解为选项A、B和D后,用户无法查询某零件由哪些供应商供应。
因为原零件关系存在非主属性对码的部分函数依赖“(零件号,供应商)→供应商所在地”,但是,“供应商→供应商所在地”,所以原零件关系模式是lNF。分解后的关系模式零件1、零件2和零件3消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到了3NF。