qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

MySQL数据库优化技术之数据库表的设计

三范式介绍
  表的范式:只有符合的第一范式,才能满足第二范式,进一步才能满足第三范式。
  1、第一范式:
  表的列具有原子性,不可再分解。只要是关系型数据库都自动满足第一范式。
  数据库的分类:
  关系型数据库:MySQL/ORACLE/Sql Server/DB2等
  非关系型数据库:特点是面向对象或者集合
  nosql数据库:MongoDB(特点是面向文档)
  2、第二范式:
  表中的记录是唯一的,就满足第二范式。通常我们设计一个主键来实现。
  主键一般不含业务逻辑,一般是自增的;
  3、第三范式:
  表中不要有冗余数据,即如果表中的信息能够被推导出来就不应该单独的设计一个字段来存放;对字段冗余性的约束,要求字段没有冗余。
  如下表所示,符合三范式要求:
  student表
  class表
  如下表所示,不符合三范式要求:
  student表
  class表
  反三范式案例:
  一个相册下有多个图片,每个图片有各自的浏览次数,相册有总的浏览次数。
  相册浏览表
  图片表:
  如果相册浏览表没有适当的冗余,效率有影响。
  冗余比较可以得出一个结论:1对N时,冗余应当发生在1的一端。

posted on 2014-11-21 09:26 顺其自然EVO 阅读(628) 评论(0)  编辑  收藏 所属分类: 测试学习专栏数据库


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜