数据库范式

第一范式【1NF】

第一范式是最基本的范式,符合数据表的原子性,简单来说,第一范式就是每一个属性都不可再分

  • 表中的同一列的类型相同

  • 一个列名只能对应到一列

  • 并且每一列都不可分

  • 行的上下关系互不影响

说明:这个很好理解,就是属性不能再分

第二范式【2NF】

第二范式是在第一范式的基础之上消除了非主属性对主属性的部分函数依赖

可以理解为第二范式意味着表中的非主属性必须完全依赖于主属性

完全依赖:不能够存在仅依赖于候选码一部分的属性

说明:举个列子吧,对于学生基本信息表(学号,身份证号,姓名)中,学号取值是唯一的。由于(学号,身份证号)–>(姓名)

(学号)–>(姓名),(身份证号)–>(姓名),所以姓名部分依赖于主属性(学号,身份证号)

当然如果一个表只有一个主属性且符合第一范式,那么它一定符合第二范式

判断一个关系是否属于第二范式:

  1. 找出数据表中的所有的候选键;
  2. 找出所有的主属性与非主属性;
  3. 判断所有的非主属性对候选键的部分函数依赖。

如果不满足就拆分表!

第三范式【3NF】

第三范式就是指表中的所有数据元素不但要能唯一地被主关键字所标识,而且他们之间还必须相互独立,不存在其他函数关系

其实就是说,在2NF的基础上消除传递函数依赖

传递函数依赖:存在“A–>B–>C”的决定关系,则C传递依赖于A

符合第三范式的数据表,消除了数据冗余,更新异常,插入异常和删除异常。

BCNF

消除主属性对主键的部分与传递依赖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值