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

mysql范式简单总结

时间:2018-04-23 15:39:44      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:mysql范式简单总结

1.第一范式 最基本的范式,数据表中每一列的属性都是单一的,不可再分!
例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。

2.第二范式 确保表中每列都和主键相关 ,一个关系满足第一范式,除了主键以外其它列,都依赖该主键
例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"列不依赖于主键列,应删除该列。

3.第三范式 满足第二范式关系,除了主键外其它列都不依赖主键列!

例如:订单表(订单编号,定购日期,顾客编号,顾客姓名,……),初看该表没有问题,满足第二范式,每列都和主键列"订单编号"相关,再细看你会发现"顾客姓名"和"顾客编号"相关,"顾客编号"和"订单编号"又相关,最后经过传递依赖,"顾客姓名"也和"订单编号"相关。为了满足第三范式,应去掉"顾客姓名"列,放入客户表中。

****原则:****

原则:当出现字段与字段的组合重复,如上的A和C的组合重复,首先要考虑的就是把他们拆分为2个表,具体是C拆到表1, 还是A拆到表1,看情况而定

关键要理解定义这种范式标准的主要目的是为了减少数据冗余,数据冗余产生的本质就是在一个表中存在字段与字段之间的一对多,或者多对多关系。解决这个几对几的关系问题,就能轻易实现满足第三范式的数据库设计。

****总结***

归结起来3句话:

1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;

解释:
1NF:原子性 字段不可再分,否则就不是关系数据库;
2NF:唯一性 一个表只说明一个事物;
3NF:每列都与主键有直接关系,不存在传递依赖;

mysql范式简单总结

标签:mysql范式简单总结

原文地址:http://blog.51cto.com/kangjunfei/2106776

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