Mysql的三范式设计

原创 2018年04月16日 11:15:55

在使用Mysql数据库进行数据表设计时,需要明确什么是反范式设计?常用的反范式设计有哪些?


一、Mysql数据表的三范式设计

后一个范式都是在满足前一个范式的基础上建立的.

1NF:无重复的列.表中的每一列都是不可分割的基本数据项.不满足1NF的数据库不是关系数据库.
    例如:联系人表(姓名,电话),一个联系人有家庭电话和公司电话,则不符合1NF,应拆分为(姓名,家庭电话,公司电话).
    原子性,数据不可再分

2NF:属性完全依赖于主键.不能存在仅依赖于关键一部分的属性. 数据没有冗余
    例如:选课关系(学号,课程名称,成绩,学分),组合关键字(学号,课程名称)作为主键.其不满足2NF,
    因为存在决定关系:课程名称->学分即存在组合主键中的部分字段决定非主属性的情况.会导致数据冗余,更新/插入/删除异常.
3NF:属性不传递依赖于其它非主属性.非主键列必须直接依赖于主键,而不能传递依赖。
        即不能是:非主键A依赖于非主键B,非主键B依赖于主键.
        
    例如:学生表(学号,姓名,学院编号,学院名称),学号是主键,姓名、学院编号、学院名称都完全依赖于学号,
            满足2NF,但不满足3NF,因为学院名称直接依赖的是学院编号 ,它是通过传递才依赖于主键.

MySQL设计之三范式的理解

网上查找了一些资料,记录如下并加入自己的理解。 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。...
  • WangQYoho
  • WangQYoho
  • 2016-10-23 11:18:44
  • 6591

mysql优化(三) 逆规范化与反三范式

数据库设计时要满足规范化这个道理大家都非常清楚,甚至有数据库的三范式, 好吧, 这有点让我想起了机器人的三定律.但是否数据的规范化程度越高越好呢?这还是由实际需求来决定。 因为规范化越高,那么产生的关...
  • liuyifeng1920
  • liuyifeng1920
  • 2017-01-06 11:48:45
  • 2658

数据库表设计三范式

数据库设计三范式(nomorlization)
  • waterxcfg304
  • waterxcfg304
  • 2014-06-21 20:10:51
  • 3667

mysql数据库表设计三大范式

http://www.cnblogs.com/lobo16/archive/2012/09/16/2687578.html 通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中...
  • leonpengweicn
  • leonpengweicn
  • 2015-01-30 09:26:43
  • 1959

数据库三大范式和反范式

后一个范式都是在满足前一个范式的基础上建立的. 1NF:无重复的列.表中的每一列都是不可分割的基本数据项.不满足1NF的数据库不是关系数据库. 如联系人表(姓名,电话),一个联系人有家庭电话和...
  • prstaxy
  • prstaxy
  • 2014-08-07 14:04:36
  • 5909

数据库设计第三范式---一二三范式介绍

一、数据库设计范式及其意义和不足 数据库的设计范式是数据库设计所需要满足的规范,数据库的规范化是优化表的结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁。实践中,通常把一个数据库分成两...
  • h330531987
  • h330531987
  • 2017-05-05 11:43:41
  • 2021

MySQL三大范式和反范式

1. 第一范式 确保数据表中每列(字段)的原子性。 如果数据表中每个字段都是不可再分的最小数据单元,则满足第一范式。 例如:user用户表,包含字段id,username,password ...
  • lamp_yang_3533
  • lamp_yang_3533
  • 2016-02-29 14:16:37
  • 1971

mysql三范式与逆范式

1. 第一范式 确保数据表中每列(字段)的原子性。 如果数据表中每个字段都是不可再分的最小数据单元,则满足第一范式。 例如:user用户表,包含字段id,username,password ...
  • ynw1990
  • ynw1990
  • 2016-09-20 17:21:35
  • 1531

深入浅出数据库设计三范式

设计良好结构的数据库,可以有效减小数据冗余,减少增删改中出现的问题。深入理解数据库设计的三范式,对于设计“健壮的数据库“十分有必要。数据库三范式是设计数据库 时参考的准则,接下来我们一一进行介绍: ...
  • xqf309
  • xqf309
  • 2012-08-24 17:17:57
  • 4203

三范式数据库设计和反范式的思考(转)

当我们拿到一个新的需求,我们把需求从头到尾搞清楚 后,就开始画流程图—>用例图—->设计数据库—->进入开发阶段—->编码—->测试—–>项目上线,至此一个项 目就算完成。 在这里我们只对设计数...
  • adparking
  • adparking
  • 2014-12-11 11:42:44
  • 1248
收藏助手
不良信息举报
您举报文章:Mysql的三范式设计
举报原因:
原因补充:

(最多只允许输入30个字)