数据库规范化 (1NF, 2NF, 3NF, BCNF)

先记录几个概念

超键:
超键类似主键, 通过"超键", 我们可以一次性定位到某一条准确的数据上;
候选键:
候选, 即"主键"的候选; 超键是可以由多个属性来组成的, 当超键的属性为单一属性时, 即为候选键;
主键:
没啥说的;
函数依赖
当某个, 或者某组属性的值, 能一次性推导出其他所有属性, 就说这一组数据是函数依赖的;

范式:

1NF ( 不可再分 )

表内某一列的属性不可再分, 如用来存图片的字段, 我经常用";"进行多图的分隔, 这就不属于第一范式, 因为图片这一列, 储存了多条数据;

2NF ( 消除部分依赖 )

消除了非主属性对"键"的部分依赖;
某表ABC三列, A是主键, 当C的值完全依赖于B, 和A没啥关系时, 此时就产生了 “部分依赖”, 不属于 2NF.

3NF ( 消除传递依赖 )

A唯一确定B, B唯一确定C, 此时就产生了 “传递依赖”, 和 2NF 的区别在哪呢? 在于传递依赖和部分依赖的含义;

BCNF

所有属性都是 “候选键”, 无法取舍, 此时就是 BCNF ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值