单选题 某公司销售数据库的商品、仓库关系模式及函数依赖集F1、F2如下:商品(商品号,商品名称,生产商,单价),F1={商品号→商品名称,商品号→生产商,商品号→单价)},商品关系的主键是________(1)。仓库(仓库号,地址,电话,商品号,库存量),F2={仓库号→(地址,电话),(仓库号,商品号)→库存量)。仓库关系的主键是________(2),外键是________(3)。仓库关系模式________(4),为了解决这一问题,需要将仓库关系分解为________(5)。
单选题 17.(1)
【正确答案】 A
【答案解析】
单选题 18.(2)
【正确答案】 B
【答案解析】
单选题 19.(3)
【正确答案】 D
【答案解析】
单选题 20.(4)
【正确答案】 A
【答案解析】
单选题 21.(5)
【正确答案】 D
【答案解析】本题考查应试者对关系模式中主键、外键和模式分解及相关知识的掌握程度。
从商品关系的函数依赖集F1可以导出商品号决定商品关系的全属性,所以商品号是商品关系的主键。
从仓库关系的函数依赖集F2可以导出(仓库号,商品号)决定仓库关系的全属性,所以仓库关系的主键是仓库号、商品号。又由于商品号是商品关系的主键,故商品号是仓库关系的外键。
仓库关系存在冗余、插入异常和删除异常,以及修改操作的不一致。例如,仓库号为“12”的商品有3种,其地址就要重复3次,见下表,故仓库关系存在冗余。

试题(5)正确的答案是D。为了解决仓库关系模式存在的问题需要进行模式分解,其中,选项A分解存在的问题是仓库2不属于第三范式,因为存在非主属性对码的部分函数依赖,即仓库号电话。选项B分解存在的问题是分解有损连接,即分解的新关系模式仓库1和仓库2无法恢复到原关系。选项C分解存在的问题与A类同。
选项D分解是即保持函数依赖,又无损连接,分解的结果如下: