数据库三范式是什么?
2015-03-30 00:36
225 查看
第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)
数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
第二范式(2NF):
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
第三范式的要求如下:
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
所以第三范式具有如下特征:
1,每一列只有一个值
2,每一行都能区分。
3,每一个表都不包含其他表已经包含的非主关键字信息。
例如,帖子表中只能出现发帖人的id,而不能出现发帖人的id,还同时出现发帖人姓名,否则,只要出现同一发帖人id的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。
a 表的合理化(符合3NF范式)
b 添加适当的索引(普通索引,主键索引,唯一索引,全文索引)
c 分表技术(水平分割,垂直分割)
d 读写分离
e 存储过程
f 对mysql 配置优化(配置最大并发数,my.ini调整缓存大小)
g mysql服务器硬件升级
h 定时清除不需要的数据
相关文章推荐
- Java面试题之数据库三范式是什么
- 什么是数据库的三大范式(浅显易懂)
- 数据库中什么是范式?它的作用是什么?第一、二、三范式的内容是什么?
- 设计数据库的三大范式是什么?
- 用实例告诉你什么是数据库范式
- 数据库中各种范式有什么区别
- 什么是关系型数据库范式
- 什么是数据库三大范式?
- 数据库中什么是范式?它的作用是什么?第一、二、三范式的内容是什么?
- 解释一下关系数据库的第一第二第三范式? 第一范式不可分割?第三范式没有传递依赖?没看懂是什么意思希望指点!
- 数据库设计范式
- 数据库设计中的五个范式
- 数据库设计范式(From Exceed PHP)
- 数据库设计的范式大纲
- 数据库设计范式深入浅出
- 您使用什么语言开发数据库信息系统?(转CSDN)
- 数据库设计三大范式应用实例剖析
- 数据库范式的三个应用[网络]
- 我对关系型数据库设计范式的理解
- 想编写个通讯录,用什么数据库?