范式和反范式
来源:互联网 发布:rf手游网络错误 编辑:程序博客网 时间:2024/05/20 08:44
范式:
1.第一范式(确保每一列的原子性,都是不可再分的)
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
例如在存储学生信息时,学生的姓名和学号需要分开存储而不是存储在同一列中。
2.第二范式(确保每一列的值都与主键相关)
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
例如在存储学生和学生所属班级时,我们设计表项为:(学生学号(主键),学生姓名,所属班级班号,班级人数)
在上述设计中,班级人数和学生学号(主键)是不相关的,所以这样的设计不符合第二范式,应该另建一张班级表,把班级人数放在班级表中,学生表引用班级表中的外键。
3.第三范式(确保每列都和主键列直接相关,而不是间接相关)
第一种说法:在数据表中不存在依赖传递例如A和B相关,B和C相关,那么不能把ABC都放在同一个表中。也就是表中的所有项都要与主键之间相关。
第二种说法:表项中不存在冗余的内容(自认为描述这种比较恰当)。
范式的优点:
范式的更新操作通常较快
当设计比较好的符合范式时,很少或者没有重复的数据,所以修改更少的数据
范式化的表通常较小,可以放在内存中缓存,速度更快
范式的缺点:稍微复杂的查询可能在数据库中关联许多表
反范式是针对范式的缺点,再设计时允许违反范式,而达到更好的效率。
例如将一些不直接关联的数据放在同一张表中,在查询时就不需要关联,只需要在一张表里查询,而在一张表里查询,通常情况下使用的是顺序I/O,速度就会较快。
- 范式和反范式
- 数据库三大范式和反范式
- 范式和反范式的优缺点
- MySQL三大范式和反范式
- 数据库三大范式和反范式
- 数据库中范式和反范式
- SQL范式优化和反范式优化
- 数据库三大范式和反范式
- 反范式
- MySQL-范式与反范式
- mysql--表范式/反范式
- 数据库范式与反范式
- 1NF - 范式化和反范式化
- 三范式数据库设计和反范式的思考(转)
- 三范式数据库设计和反范式的思考(转)
- 数据库的范式化和反范式化模型
- 数据库的范式及反范式
- 范式与反范式的应用
- 1.九度1011
- POJ 1201 Intervals(图论-差分约束)
- Drcom账户管理Server端讲解
- 书籍推荐
- viewDidUnload 和 dealloc 的区别
- 范式和反范式
- 电子商务论文
- poj 1573 Robot Motion
- 主成分分析PCA
- binder驱动-------之数据结构篇2
- RPM安装包-Spec文件参数详解与示例分析
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- OpenCV之鼠标选定区域重放
- Android支付接入(一):支付宝