正确答案:
题目:某商场商品数据库的商品关系模式P(商品代码,商品名称,供应商,联系方式,库存量),函数依赖集F={商品代码→商品名称,(商品代码,供应商)→库存量,供应商→联系方式}。商品关系模式P达到(1);该关系模式分解成(2)后,具有无损连接的特性,并能够保持函数依赖。
解析:本题考查数据库的规范化。要分析一个关系模式的范式,第一步应找出该关系模式的主键,接下来需要判断关系模式是否消除了非主属性对主键的部分依赖、传递依赖,这样便可得出结论。首先可采用图示法求关系模式的主键。将关系模式P,使用图示法表达,如图2-8所示。从图中可以看出,只有商品代码与供应商的组合键才能遍历全图,所以只有它们的组合能充当主键。由于(商品代码,供应商)是主键,而又有函数依赖:商品代码→商品名称,这便形成了部分依赖。所以在此关系模式中,部分依赖未消除,其范式只能达到1NF。接下来的这个问题,对于经验丰富的考生,看完这几个选项,应该是能直接判断出应选D的。因为D是最佳分拆方案,能达到的范式级别很高。如无经验,可考虑先分析是否为保持函数依赖的分解。A选项分析:P1(商品代码,联系方式)未保持任何原有的函数依赖。而P2(商品名称,供应商,库存量)也未保持任何原有的函数依赖。B选项分析:P1(商品名称,联系方式)未保持任何原有的函数依赖。P2(商品代码,供应商,库存量)只保持了函数依赖:(商品代码,供应商)→库存量。这样对整体来说,就丢失了两个函数依赖关系。C选项分析:P1(商品代码,商品名称,联系方式)保持了函数依赖:商品代码→商品名称,P2(供应商,库存量)未保持任何原有的函数依赖。这样对整体来说,就丢失了两个函数依赖关系。D选项分析:P1(商品代码,商品名称)保持了函数依赖:商品代码→商品名称,P2(商品代码,供应商,库存量)保持了函数依赖:(商品代码,供应商)→库存量,P3(供应商,联系方式)保持了函数依赖:供应商→联系方式。这样将各个分拆关系的函数依赖整合起来,能构成原关系的函数依赖,所以这个分解是保持了函数依赖的分解。
学习资料的答案和解析: