Mysql数据库之范式

范式:Normal Format,是一种离散数学中的知识。是为了解决数据的存储与优化的问题,终极目标是为了减少数据的冗余。

    范式是一种分层结构的规范,分为6层,每一层都比上一层更加严格,若要满足下一层范式,前提是必须满足上一层范式。

六层范式分为:1NF,2NF,3NF,4NF,5NF,6NF。1NF是最底层的范式,要求最低。6NF是最高层,要求最严格。

Mysq是一种关系形的数据库,会有空间的浪费,遵循范式也是为了节省存储空间,所以会利用范式来指导思想。

但是,范式只是为了解决空间问题,在设计数据库时又不可能完全按照范式的要求来实现,所以在一般情况下,只需要满足前三种范式。

1.  1NF

1NF--:原子性

第一范式要求字段的数据具有原子性,不可再分,如果一个字段中存储的数据在使用时,取出之前还需要再分,那么就不满足第一范式。

例如:

在设计一张球员信息表时,我在设计其球员名字和球队名本应该是两个字段,但如果设计成了一个字段,那么就不满足第一范式。

2. 2NF

第二范式:在表设计的时候,如果有复合主键存在(多字段主键),且表中非主键并不是由整个主键来确定的,而是依赖主键中的每个字段,称这种情况为部分依赖,第二范式解决的就是出现部分依赖的问题。

简单来说:

2NF--唯一性:表中的每条记录必须是唯一的。

例如:创建一学生成绩张表时,一个学生在早上考试时考了59,没有及格,下午参加补考时也考了59,如果没有定义一个唯一的数据来区分,就很难分清。

而增加了一个流水号后:

这样就很好区分两个数据,使两个数据具有了唯一性。

3. 3NF

第三范式:在一张表中,应该所有的字段都依赖于主键。而如果存在一个字段依赖于一个非主键字段而存在,那么把这种情况称为存在传递依赖,第三范式要解决的就是存在传递依赖的问题。

3NF--关联性:每列都与主键存在直接关系,不存在传递依赖。

例如:创建一张球队球员信息表,存储数据

表中球队作为主键,球员依附球队而存在,而球员的球鞋,号码依附与非主键字段球员而存在,不满足第三范式。

而应该拆分成其它的一个表。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值