数据库设计三范式

第一范式(1NF)

所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。
类似 字段名称为 className_studentName = ‘软工205_张三’ 这个就可分为className和studentName 所以就不满足第一范式

每个字段分的最细的类型,不能再往下分的那种。

第二范式(2NF)

第二范式是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式1NF。

2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖。

函数依赖
我们可以这么理解(但并不是特别严格的定义):若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。

通过前面的X,可以找到后面唯一的一个Y。
这里写图片描述
这里写图片描述

第三范式(3NF)

第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
即不能有传递依赖

三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余”。

BCNF范式
反范式化

反范式化是针对范式化而言的,为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余。
反范式化就是使用空间来换取时间。

总结:

1NF: 字段是最小的的单元不可再分
2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到)
3NF:满足2NF,非主键外的所有字段必须互不依赖
4NF:满足3NF,消除表中的多值依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值