mysql中的范式

1. 什么是范式?

答:范式是一种分层结构的规范, 分为六层,分别是1NF2NF3NF4NF5NF6NF。每一层都比上一层更加严格,若要满足下一层范式,前提是满足上一层范式。

 

2. 范式的终极目标是什么?

答:减少数据冗余,节省空间。

 

3. Mysql数据库的设计为什么要用到范式?

答:mysql属于关系型数据库,是关系型数据就会存在空间浪费,而范式的终极目标就是减少数据冗余,节省空间,所以在设计mysql数据库时要用到范式。

 

4. 范式有六层,在设计mysql数据库时,会用到哪几层?为什么?

答:只会用到范式中的前三层。因为范式的终极目标是减少数据冗余,节省空间,也就是说范式也为解决空间问题,而不会考虑效率问题。而在设计mysql数据库时,不仅仅要考虑空间问题,还要保证效率问题,所以在设计mysql数据库时,只有前三种范式需要满足。

 

5. 1NF(第一范式)指什么?

答:在设计表存储数据的时候, 如果表中设计的字段存储的数据,在取出来使用之前还需要额外的拆分,那么说表的设计不满足第一范式。

       第一范式要求:字段数据要具有原子性,不可再分。

 

6. 2NF(第二范式)指什么?

答:在数据表设计的过程中,如果有复合主键(多字段主键), 且表中有字段并不是由整个主键来确定, 而是依赖主键中的某个字段(主键的部分): 存在字段依赖主键的部分的问题, 称之为部分依赖。

       第二范式要求:表设计不允许出现部分依赖。

 

7. 3NF(第三范式)指什么?

答:理论上讲,应该一张表中的所有字段都应该直接依赖主键(逻辑主键: 代表的是业务主键), 如果表设计中存在一个字段, 并不直接依赖主键,而是通过某个非主键字段依赖,最终实现依赖主键,把这种不是直接依赖主键,而是依赖非主键字段的依赖关系称之为传递依赖。

       第三范式要求:表设计不允许出现传递依赖。

 

8. 什么是范式的逆规范化?

答:有时候, 在设计表的时候,如果一张表中有几个字段是需要从另外的表中去获取信息. 理论上讲, 的确可以获取到想要的数据, 但是就是效率低一点. 会刻意的在某些表中,不去保存另外表的主键(逻辑主键), 而是直接保存想要的数据信息: 这样一来,在查询数据的时候, 一张表可以直接提供数据, 而不需要多表查询(效率低), 但是会导致数据冗余增加.

 

       逆规范化: 磁盘利用率与效率的对抗

 

  范式要解决的问题是数据冗余,节省空间。范式共有6层,用的层越多,说明规范越强,说明空间越节省,磁盘利用率越高。但是,这也会导致一个问题:效率越来越低。我们不能一味的追求磁盘利用率,我们还要追求效率。范式是追求磁盘利用率的,而范式的逆规范化是最求效率的,即以增加数据冗余,牺牲空间,来换取效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值