选择题 .  某公司销售数据库的商品、仓库关系模式及函数依赖集F1、F2如下:商品(商品号,商品名称,生产商,单价),F1={商品号→商品名称,商品号→生产商,商品号→单价)},商品关系的主键是______。仓库(仓库号,地址,电话,商品号,库存量),F2={仓库号→(地址,电话),(仓库号,商品号)→库存量}。仓库关系的主键是______,外键是______ 。仓库关系模式______,为了解决这一问题,需要将仓库关系分解为______。17. 
【正确答案】 A
【答案解析】[考点] 本题考查应试者对关系模式中主键、外键和模式分解及相关知识的掌握程度。
从商品关系的函数依赖集F1可以导出商品号决定商品关系的全属性,所以商品号是商品关系的主键。
   从仓库关系的函数依赖集F2可以导出(仓库号,商品号)决定仓库关系的全属性,所以仓库关系的主键是仓库号、商品号。又由于商品号是商品关系的主键,故商品号是仓库关系的外键。
   仓库关系存在冗余、插入异常和删除异常,以及修改操作的不一致。例如,仓库号为“12”的商品有3种,其地址就要重复3次,见下表,故仓库关系存在冗余。
仓库关系
仓库号 地址 电话 商品号 库存量
12 高新路6号 8601 100024 168
12 高新路6号 8601 100025 568
12 高新路6号 8601 230023 398
13 友谊路6号 8602 150004 2600
13 友谊路6号 8602 160005 1218
   最后一个小题正确答案D。为了解决仓库关系模式存在的问题需要进行模式分解,其中,选项A分解存在的问题是仓库2不属于第三范式,因为存在非主属性对码的部分函数依赖,即仓库号→电话。选项B分解存在的问题是分解有损连接,即分解的新关系模式仓库1和仓库2无法恢复到原关系。选项C分解存在的问题与A类同,分析略。
   选项D分解是即保持函数依赖,又无损连接,分解的结果如下: