范式与公理系统
前言
这是我根据以前做的笔记整理的范式与公理系统相关的知识点
一、函数依赖
- 平凡函数依赖
- 非平凡的函数依赖
- 决定因素
1.部分函数依赖
通俗的讲,部分函数依赖就是某一属性集的部分属性值即可确定另一属性集合的属性取值时,该两个属性集合之间存在部分函数依赖
只有当函数依赖的决定方是组合属性时,讨论部分函数依赖才有意义,当函数依赖的决定方是单属性时,只能是完全函数依赖。
2.完全函数依赖
也就是说,当从属性集合中去掉任一属性后,将不再存在函数依赖关系,这样的函数依赖称为完全函数依赖(依赖于属性组中的每一个属性)
3.传递函数依赖
4.码
设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K,则称K为候选码
二、范式
1.第一范式(1nf)
关系中的每个属性都不可再分
2.第二范式(2nf)
也就是说所有的非主属性必须由主键的全部属性来确定,不能存在这样一种情况:只凭借主属性组中的某一属性而确定了某一非主属性的值
判断是否是第二范式
找出数据表中所有的码。
根据第一步所得到的码,找出所有的主属性。
数据表中,除去所有的主属性,剩下的就都是非主属性了。
查看是否存在非主属性对码的部分函数依赖。
3.第三范式(3nf)
3nf在2nf的基础上,消除了非主属性对码的传递、部分函数依赖
4.BCNF范式
所有非主属性对每一个候选键都是完全函数依赖;
所有的主属性对每一个不包含它的候选键,也是完全函数依赖;
没有任何属性完全函数依赖于非候选键的任何一组属性
6.第四范式
多值依赖
第四范式是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖
总结
范式 | 解析 |
---|---|
1nf | 每一分量的值均为原子值 |
2nf | 每一个非主属性完全函数依赖于任何一个候选码 |
3nf | 每一个非主属性既不传递依赖于候选码,也不部分依赖于候选码 |
bcnf | 非主属性对每一个码都是完全函数依赖;主属性对每一个不包含它的码都是完全函数依赖;没有任何属性完全函数依赖于非码的任何属性 |
4nf | 各属性之间不允许拥有非平凡且非函数的多值依赖 |