范式级别判断
题目:U=ABCDE, F={ A->C, BC->D, CD->A, AB->E}
第一步(求候选码):求候选码的过程略去,结果为{(AB), (BC)}
第二步(判断1NF):呃,肯定都是1NF,不是的话这题不用出了
第三步(写出非主属性、候选码):这一步是为了方便后续判断。
非主属性是未出现在候选码中的属性,本题为DE。候选码为AB和BC。
如下列出:
非主属性:DE;候选码:AB、BC
在题干中标记非主属性(粉色字体):
F={ A->C, BC->D, CD->A, AB->E}
第四步(判断2NF):2NF的定义为非主属性应完全函数依赖于任一候选码。即看非主属性的左侧的推断条件中是否出现了候选码,也就是题目中D和E的左侧是否出现了AB或BC(AB或BC必须一起打包出现,不能只出现单个的A,B之类)。举例来说,假如题目中存在A->D,D是非
主属性,而左侧只有A,没有和B一起出现,即D不是完全函数依赖于候选码AB的,它只部分依赖了AB中的A。观察当前题目,非主属性D和E的
左侧均是候选码之一,并不存在这种情况,那么它是满足2NF的。
第五步(判断3NF):在满足2NF的前提下(注意满足2NF之后再看3NF哦~),3NF的定义为不存在非主属性对任一候选码的传递函数依赖。举个例子,如果有AB->D,又有D->E,即非主属性E通过非主属性D作为桥梁才能推出,这就是传递依赖。尽管候选码AB能推出D和E,但E是间接推出的,也不可以出现,达咩。继续观察题目,并没有这种情况,
那么是满足3NF的。
第六步(判断BCNF):在满足3NF的前提下,BCNF的条件是每一个决
定因素(即每一个依赖关系的左侧)都包含码。即决定因素必须包含候选码中的任意一个。即在本题中,每个决定因素要么有AB,要么有
BC。要么A和B成对出现,要么B和C成对出现。该题中,第一个关系A-
>C就只出现了A,A没有和B一起出现,所以本题不满足BCNF。注意这里和2NF的区别,2NF只看针对非主属性的左侧,而BCNF要看所有依赖关
系的左侧。
因此本题为3NF。