【答案解析】[考点] 本题考查应试者对关系模式中主键、外键和模式分解及相关知识的掌握程度。
从商品关系的函数依赖集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分解是即保持函数依赖,又无损连接,分解的结果如下: