候选码
将所有属性进行分类
假设有关系模式R<J, K>
将R的所有属性分为 L、 R、N和 LR四类
------------------>分别用:
------------------> X 代表L,N两类
------------------> Y 代表LR类
对 L , R , N , LR 做出解释:
类型名 | 解释 |
---|---|
L类 | 仅出现在F的函数依赖左部的属性 |
R类 | 仅出现在F的函数依赖右部的属性 |
N类 | 在F的函数依赖左右两边都不出现的属性 |
LR类 | 在F的函数依赖左右两边都出现的属性 |
通过闭包求唯一候补码或是所有的候补码
求属性集闭包X+,若 X+包含了R的全部属性则X即为R的唯一候选码,不再进行判断;
否则, 在Y中取一属性A
求属性集闭包 (XA)+,若 (XA)+ 包含了R的全部属性,则继续尝试取2个,3个 。。。包含在Y下的属性;
否则,调换一属性反复进行这一过程,直到试完所有Y中的属性。
如果已找出了所有的候选码,就不再进行判断;
最高范式求解
包含关系
属于第二范式的数据库一定属于第一范式,
关系模式数据库一定属于第一范式
第一范式去除所有非主属性,去除部分函数依赖或是为完全函数依赖,则属于第二范式
第二范式去除函数传递依赖则属于第三范式
第三范式去除多值依赖则属于第四范式