数据库设计:范式与反范式
来源:互联网 发布:淘宝一钻怎么提高销量 编辑:程序博客网 时间:2024/06/06 05:09
我们在设计数据库的过程中,往往要用到范式或反范式的设计模式。熟悉地掌握范式与反范式的要领,学会在实际开发中恰当地混合使用范式与反范式,才能设计出结构合理,执行高效的数据库。
下面就以一个经典的例子进行讲述范式与反范式:
职工-部门表:
部门-部门领导表:
结合这两张表,我们知道,职工Tom与Hill都在部门Accounting工作,他们的领导是Alex。这种设计模式,称为范式。范式要求数据表中不存在任何的传递函数依赖。我们都知道职工,部门,领导之间有传递函数的依赖关系:职工–>部门–>领导。但是范式的设计模式将这种关系分开,使这种传递的关系在数据表中不再存在。
下面来看看反范式的设计模式:
反范式允许表中存在传递函数依赖。
在这一张表中,我们直接看到职工Tom工作的部门为Accounting,这个部门的领导是Alex。表中就有职工–>部门–>领导的传递函数依赖关系。
范式与反范式的比较:
- 查询记录时,范式模式往往要进行多表连接,而反范式只需在同一张表中查询,当数据量很大的时候,显然反范式的效率会更好。
- 反范式有很多重复的数据,会占用更多的内存,查询时可能会较多地使用DROUP BY或DISTINCT等耗时耗性能的关键字。
- 当要修改更新数据时(例如修改Accounting部门的领导为Russell),范式更灵活,而反范式要修改全部的数据,且易出错。
…
总结:关于范式与反范式的比较还有很多很多,二者各有各的好处,在实际开发中应该根据需要合理地混用不同的模式,最大程度地结合发挥各自的优点。
转载自:http://blog.csdn.net/qq_33290787/article/details/51956532
0 0
- 数据库设计:范式与反范式
- 数据库设计:范式与反范式
- 数据库设计:范式与反范式
- 数据库范式与反范式
- 数据库三范式及反范式设计
- 关于数据库反范式设计
- 数据库的反范式设计
- 数据库设计与范式
- MySQL-范式与反范式
- 三范式数据库设计和反范式的思考(转)
- 三范式数据库设计和反范式的思考(转)
- 数据库范式与数据库设计
- 数据中设计中的范式与反范式
- MySQL中数据中设计中的范式与反范式
- 数据中设计中的范式与反范式
- 数据库反范式设计中的查询
- 数据库的范式及反范式
- 数据库的范式及反范式
- learning opencv学习笔记
- JavaSE-3min回顾Object的finalize和clone方法
- json与ajax对服务器的交互
- moc_xxx No Such file or directory.cpp
- 全局修改a链接的打开方式,javascript:void(0)会打开空白页面问题
- 数据库设计:范式与反范式
- 【android学习】在android手机上实现app开机自启动
- 安卓系统架构图(大概)
- 归并排序(MergeSort)
- linux安装和ros 系统安装
- 第十一周项目1-验证算法(二叉树构造)
- java使用正则获取字符串HTML代码段中的内容 节点属性值
- 453. Minimum Moves to Equal Array Elements
- 【数据结构与算法】二分查找