设有关系模式R(A,B,C,D),数据依赖集F={A—B.B—A.AC—D.BC—D,AD—C, BD—C,A—CD,B—HCD}。
1)求R的主码。并判断R是否为第四范式?为什么?
2)R是不是BCNF?为什么?R是不是3NF?为什么?
答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。
答 案:1)候选码为AC、Bc、AD、BD。可选其中之一为主码。R不服从4NF。在多值依赖中决定凶素中不包含码。2)R不服从BCNF。在函数依赖中决定因素中不包含码。R服从3NF。该模式中不存在非主属性。
1)候选码为AC、Bc、AD、BD。可选其中之一为主码。R不服从4NF。在多值依赖中,决定凶素中不包含码。2)R不服从BCNF。在函数依赖中决定因素中不包含码。R服从3NF。该模式中不存在非主属性。 解析:主要考查了关系数据库规范化处理等一系列工作。
1)候选码的定义如下:设K为关系模式R<U,F>中的属性属性组,若K—u在F+中,而找不到K的任何一个真子集K,能使K一u在F+中,则称K为关系模式R的候选码。
给定一关系模式R及其函数依赖集F,分析候选码的方法如下:
①如果有属性不在函数依赖集中出现,那么它必须包含在候选码中;
②如果有属性不在函数依赖集中任何函数依赖的右边出现,那么它必须包含在候选码中;
③如果有属性只在函数依赖集的左边出现,则该属性一定包含在候选码中;
④如果有属性或属性组能唯一标识元组,则它就是候选码。
根据第一条,发现所有的属性都在函数依赖集巾出现了。所以不使用第一条规则。
根据第二条,发现所有属性都在函数依赖集中任何函数依赖的右边出现。
根据第三条,发现所有属性不只在函数依赖集的左边出现。
根据第四条,AC,BC,AD,BD可以唯一确定属性集中的每一个属性,因此,AC,BC,AD,BD一定是该关系模式的候选码。
关系模式R(U,F)E INF,如果对于R的每个非平凡多值依赖x—Y(YX),x都含有码,则称R(u,F)∈4NF。4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。因为根据定义,对于每一个非平凡的多值依赖x—-Y,x都含有候选码,于是就有x—Y,所以4NF所允许的非平凡的多值依赖实际上是函数依赖。南上可知,在多值依赖巾,决定因素中不包含码,R不服从4NF。
2)关系模式中,若x函数确定Y且Y不在x内时x必含有码,则此关系属于BCNF。一个满足BCNF的关系模式的条件是:
I.所有非主属性对每一个码都是完全函数依赖。
Ⅱ.所有的主属性对每一个不包含它的码,也是完全函数依赖。
Ⅲ.没有任何属性完全函数依赖于非码的任何一组属性。
南上可知,在函数依赖中决定因素中不包含码,R不服从BCNF。
如果一个关系模式Ri是一个范式,且不存在非主属性传递依赖于码,我们称Ri是一个三范式,记3NF。该模式中不存在非主属性,所以R服从3NF。