注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

https://github.com/DoubleSpout

 
 
 

日志

 
 

SQL反模式(一)  

2013-02-18 11:20:36|  分类: node |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近看了一本2011年出版的sql反模式一书,收获颇丰做下博客记录并且打算在公司内部分享。其实我感觉翻译为sql反范式更为贴切,当然书中不仅仅有范式内容,还包含诸如sql注入,全文检索,容灾备份等很多实用性技巧,作者资历很深。

SQL反模式(一) - snoopyxdy - snoopyxdy的博客
 

1、什么是sql范式
以一种我们能够理解的方式表达这个世界中的事物,关键在于减少数据冗余,防止异常或不一致的数据,让数据支持完整性约束。

2、常见的误区
a、反范式能让数据库查询更快
不完全对,的确应用范式规范之后,查询时可能需要使用join进行获取多张表的数据,反范式能够避免这些join,但是如果系统的需求发生一些改变,或者过多的依赖程序做一些数据一致性操作,可能发生的bug或者修改所花的时间要比范式设计长很多。

b、范式就是将属性尽可能的分开存储
错,通常程序员会误解范式这个词,认为它把数据弄的更不可读或者不便于查询,而事实上真正的范式恰恰相反。

3、第一范式
第一范式的最根本要求是,该表必须是一个关系,而且这张表不能有重复组合。
我们来看如下截图:

SQL反模式(一) - snoopyxdy - snoopyxdy的博客
 

4、第二范式
第二范式除了复合主键以外,第二范式和第一范式是相同的,我们看截图:
生成表的sql语句
SQL反模式(一) - snoopyxdy - snoopyxdy的博客
 违反第二范式的截图
SQL反模式(一) - snoopyxdy - snoopyxdy的博客
 
5、第三范式
如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的
我们看截图:
SQL反模式(一) - snoopyxdy - snoopyxdy的博客
 
简单介绍完范式之后,就会是一些我们日常可能碰到的实用性内容了


  评论这张
 
阅读(631)| 评论(3)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016