先记录几个概念
超键:
超键类似主键, 通过"超键", 我们可以一次性定位到某一条准确的数据上;
候选键:
候选, 即"主键"的候选; 超键是可以由多个属性来组成的, 当超键的属性为单一属性时, 即为候选键;
主键:
没啥说的;
函数依赖
当某个, 或者某组属性的值, 能一次性推导出其他所有属性, 就说这一组数据是函数依赖的;
范式:
1NF ( 不可再分 )
表内某一列的属性不可再分, 如用来存图片的字段, 我经常用";"进行多图的分隔, 这就不属于第一范式, 因为图片这一列, 储存了多条数据;
2NF ( 消除部分依赖 )
消除了非主属性对"键"的部分依赖;
某表ABC三列, A是主键, 当C的值完全依赖于B, 和A没啥关系时, 此时就产生了 “部分依赖”, 不属于 2NF.
3NF ( 消除传递依赖 )
A唯一确定B, B唯一确定C, 此时就产生了 “传递依赖”, 和 2NF 的区别在哪呢? 在于传递依赖和部分依赖的含义;
BCNF
所有属性都是 “候选键”, 无法取舍, 此时就是 BCNF ;