[单选题]某商场商品数据库的商品关系模式P(商品代码,商品名称,供应商,联系方式,库存量),函数依赖集F={商品代码→商品名称,(商品代码,供应商)→库存量,供应商→联系方式}。商品关系模式P达到(1);该关系模式分解成(2)后,具有无损连接的特性,并能够保持函数依赖。
正确答案 :
解析:本题考查数据库的规范化。要分析一个关系模式的范式,第一步应找出该关系模式的主键,接下来需要判断关系模式是否消除了非主属性对主键的部分依赖、传递依赖,这样便可得出结论。首先可采用图示法求关系模式的主键。将关系模式P,使用图示法表达,如图2-8所示。从图中可以看出,只有商品代码与供应商的组合键才能遍历全图,所以只有它们的组合能充当主键。由于(商品代码,供应商)是主键,而又有函数依赖:商品代码→商品名称,这便形成了部分依赖。所以在此关系模式中,部分依赖未消除,其范式只能达到1NF。接下来的这个问题,对于经验丰富的考生,看完这几个选项,应该是能直接判断出应选D的。因为D是最佳分拆方案,能达到的范式级别很高。如无经验,可考虑先分析是否为保持函数依赖的分解。A选项分析:P1(商品代码,联系方式)未保持任何原有的函数依赖。而P2(商品名称,供应商,库存量)也未保持任何原有的函数依赖。B选项分析:P1(商品名称,联系方式)未保持任何原有的函数依赖。P2(商品代码,供应商,库存量)只保持了函数依赖:(商品代码,供应商)→库存量。这样对整体来说,就丢失了两个函数依赖关系。C选项分析:P1(商品代码,商品名称,联系方式)保持了函数依赖:商品代码→商品名称,P2(供应商,库存量)未保持任何原有的函数依赖。这样对整体来说,就丢失了两个函数依赖关系。D选项分析:P1(商品代码,商品名称)保持了函数依赖:商品代码→商品名称,P2(商品代码,供应商,库存量)保持了函数依赖:(商品代码,供应商)→库存量,P3(供应商,联系方式)保持了函数依赖:供应商→联系方式。这样将各个分拆关系的函数依赖整合起来,能构成原关系的函数依赖,所以这个分解是保持了函数依赖的分解。
[单选题]某公司的商品(商品号,商品名称,生产商,单价)和仓库(仓库号,地址,电话,商品号,库存量)两个实体之间的关系如表2-22和表2-23所示。商品关系的主键是(1);仓库关系的主键是(2);仓库关系(3),为了解决这一问题,需要将仓库关系分解为(4)。
正确答案 :
解析:从试题中所给出的表格来看,商品关系的主键是商品号,仓库关系的主键是(仓库号,商品号)。显然,仓库关系存在冗余、修改操作的不一致,以及插入异常和删除异常。例如,仓库号为"01"的商品有3种,其地址就要重复3次,故存在冗余。为了解决仓库关系模式存在的问题,就需要进行模式分解,其中(45)空选项A存在的问题是仓库2不属于第三范式,因为存在非主属性对键的部分函数依赖,即"仓库号→电话"。选项B存在的问题是分解属于有损联接,即分解的新关系模式仓库1和仓库2无法恢复到原关系。选项C分解存在的问题与A类同。选项C分解即保持函数依赖,又是无损联接。
查看原题 查看所有试题