码迷,mamicode.com
首页 > 数据库 > 详细

【DAO】数据库三范式说明

时间:2015-03-03 13:36:27      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:三范式

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

 

第一范式:  概况为列的值唯一性,不能有重复的列值(必须遵守);

反面例子:

名字           联系方式(字符串类型)

xxx             12345abc@163.com

xxx             bcd@163.com

xxx             12345;67890;def@163.com

危害性:为垃圾数据,无法删除,无法修改;

正确的设计方法:

                   名字         电话1      电话2      电话3      电话4      邮箱

第二范式, 属性完全依赖于主键(必须遵守

n  必须满足第一范式

n  必须有主键

n  其他列必须完全依赖于主键

错误的建表方法:

编号         姓名      性别         专业      专业课时

100            xxx           m               java           600

200            xxx             f                 java           700

 

违反范式2的是另外一种含义,将两个实体放在同一个表中,不方便其中一个实体数据的单独维护

编号         姓名      性别         专业      专业课时

100            xxx           m               java           600

200            xxx             f                 java           700

 

2

专业编号         专业         专业课时

001                     java           600

002                     java          700

3)  第三范式:属性不依赖其他非主属性

n  必须遵守第二范式

n  去除传递依赖

正确的设计方法为:

编号         姓名      性别         专业编号     

100            xxx           m               001           

200            xxx             f                 002 

 

2

专业编号         专业         专业课时

001                     java           600

002                     java          700

 

概况为:

范式2:一个表中不能含有两个实体的信息,必须含有一个实体

范式3:一个实体中不能引用其他实体的属性,只能引用其他实体的主键

注意:

         在某些情况下,出于查询效率的考虑,可能会违反范式3,此时增加了冗余,查询的时候,不需要表连接,增加了表的执行效率,但是可维护性下降,一般为不建议经常维护的表违反第三范式。

【DAO】数据库三范式说明

标签:三范式

原文地址:http://blog.csdn.net/clark_xu/article/details/44036863

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!