范式的判断

例1:R=(A,B,C),F={A→B,B→A,C→A},请问这是第几范式?

判断步骤:一图了解范式

一、首先判断候选键:

分别找出只在左边出现、左右都出现、右边出现的键。

(其实能找到只在左边出现的键后,求闭包,若能导出全部的集合,便可以省去求LR和R,如果左边的不能求出全集,就要和LR组合就闭包)

	L:C
	LR:A、B
	R:

因此候选键为C,非主属性为A、B

二、接着,按照以下流程

牢牢记住三个关键点:部分依赖传递依赖左边都是候选键

在这里插入图片描述适当简记忆三个步骤点:部分依赖传递依赖左边都是候选键

图片有点刷屏
重新放一下题目:R=(A,B,C),F={A→B,B→A,C→A}

1、判断是否为1NF

(一般来说,基本所有的范式都要满足1NF)

这里也分析一下,判断是否存在部分依赖

只有一个候选键C,且就一个字母,所以不可能存在部分函数依赖

2、判断是否为2NF

这里需要特别注意满足传递依赖的两个条件,如:

	C->A,A->B
	A!->C

即这里C可以通过A传递推出B,但是容易忽略的一点,就是还要满足A!->C,就是A不能直接导出C。
因此这里满足依赖传递

如果这里A能直接推出C,那就是不满足传递依赖的。

因此为第二范式

以上即为解题过程,如果还没有理解,可以接着往下阅读!


例2:R=(A,B,C,D),F={B->D,D->B,AB->C},请问这是第几范式?

判断候选键:

	L:A
	LR:B,D
	R:C

求得AB+=UAD+=U(D->B,AB->C) ,因此候选键有(A,B) 和 (A,D),非主属性:C

接下来三个步骤点:部分依赖传递依赖左边都是候选键

1、存在部分依赖:AB->C非主属性C完全依赖于候选键AB,至少为2NF
2、传递依赖:不满足,至少为3NF
3、左边都是候选键:当候选键为(A,B)时,D->B,不满足,故为3NF

例3:R=(A,B,C),F={A->B,B->A,A->C},请问这是第几范式?

判断候选键:

L:
LR:A,B
R:

这里没找到L后,因此需要结合LR的元素

求A、B的闭包

A闭包={B,C}=U,B闭包={A,C}=U

发现二者的闭包都可以获得全集,因此候选键由A,B,非主属性:C

三个步骤点:部分依赖传递依赖左边都是候选键

1、存在部分依赖:候选键都是只有一个字母,所以不可能存在部分函数依赖,至少为2NF
2、传递依赖:B->A,A->C,并且A!->B,不满足,至少为3NF
3、左边都是候选键:A,B都是候选键,故为BCNF
1NF:属性原子不可分
2NF:非主属性都完全依赖于候选键
3NF:非主属性不传递依赖于候选键
BCNF:属性不传递依赖于候选键
最小依赖集,任意FD左边全是超键
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐