[单选题]设关系模式R(U,F),其中,R上的属性集U={A,B,C,D,E},R上的函数依赖集F=(A→B,DE→B,CB→E,E→A,B→D}。(1)为关系R的候选关键字。分解(2)是无损联接,并保持函数依赖的。
正确答案 :
解析:本题考查如何求解候选关键字和对模式分解知识的掌握。候选关键字使用2.1.6规范化理论中的图示法进行求解,对R关系模式画图如图2-14所示。图中C节点为0度节点,所以它必然被包含在候选关键字中,但仅有C节点并不能遍历全图,所以需要加入其他中间节点。若加入B节点,则BC→E,E→A,B→D,能遍历全图。与此同时,加入A、E都能起到同样的效果。所以关系R有3个候选键:BC、EC,AC。接下来是判断模式分解过程中的无损联接与保持函数依赖的问题。这个问题相对来说比较复杂。如果逐个判断每个选项的无损联接与保持函数依赖,无疑工作量是很大的。所以我们可以先观察这些选项有什么特点,通过观察发现A与B选项都存在单个字段的分解。在进行模式分解时,如果出现单字段,同时该字段未在其他分解的子关系模式中出现,并且函数依赖中有此字段的依赖关系,则说明此分解没有保持函数依赖。原因很简单,关于该字段的那个函数依赖,必然在分解中丢失了。所以A与B选项可以先排除。然后判断C与D是否为无损联接。对选项C构造初始的判定表,如表2-14所示。由于A→B,属性A的第1行和第3行相同,可以将第1行b改为a;又由于B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b和第3行b改为同一符号,即取行号值最小的b。修改后的判定表如表2-15所示。反复检查函数依赖集F,无法修改上表,所以选项C是有损联接的。对选项D构造初始的判定表,如表2-16所示。由于A→B,属性A的第1行和第3行相同,可以将第3行b改为a;E→A,属性E的第2行和第3行相同,可以将属性A第2行b改为a;AC→E,属性E的第2行和第3行相同,可以将属性E第1行b改为a;B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b和第3行b,改为同一符号,即取行号值最小的b。E→D,属性E的第1~3行相同,可以将属性D第1行b和第3行b改为a。修改后的判定表如表2-17所示。由于上表第一行全为a,故分解无损。所以本空应选D。
[单选题]某公司的商品(商品号,商品名称,生产商,单价)和仓库(仓库号,地址,电话,商品号,库存量)两个实体之间的关系如表2-22和表2-23所示。商品关系的主键是(1);仓库关系的主键是(2);仓库关系(3),为了解决这一问题,需要将仓库关系分解为(4)。
正确答案 :
解析:从试题中所给出的表格来看,商品关系的主键是商品号,仓库关系的主键是(仓库号,商品号)。显然,仓库关系存在冗余、修改操作的不一致,以及插入异常和删除异常。例如,仓库号为"01"的商品有3种,其地址就要重复3次,故存在冗余。为了解决仓库关系模式存在的问题,就需要进行模式分解,其中(45)空选项A存在的问题是仓库2不属于第三范式,因为存在非主属性对键的部分函数依赖,即"仓库号→电话"。选项B存在的问题是分解属于有损联接,即分解的新关系模式仓库1和仓库2无法恢复到原关系。选项C分解存在的问题与A类同。选项C分解即保持函数依赖,又是无损联接。
查看原题 查看所有试题