[单选题]设关系模式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。
[单选题]设有职工实体Employee(职工号,姓名,性别,年龄,通信地址,家庭成员),其中通信地址记录了邮编、省、市、街道信息;家庭成员记录了职工的亲属的姓名。职工实体中的通信地址是一个(1)属性;为了将数据库模式设计得更合理,对于家庭成员属性(2)。
正确答案 :
解析:简单属性是原子的,不可再分的。复合属性可以细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个成分,那么在模式设计时可采用复合属性。本题职工实体集Employee的通信地址可以进一步分为邮编、省、市、街道。第(1)空的正确答案为B。我们所举的例子中,定义的属性对于一个待定的实体都只有单独的一个值。例如,对于一个特定的职工,只对应一个职工号、职工姓名,这样的属性称为多值属性。为了将数据库模式设计得更合理,第(2)空的家庭成员属性应该将职工亲属的姓名加上职工号设计成为一个独立的实体。
查看原题 查看所有试题