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

数据库范式

时间:2015-02-11 14:12:15      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

第一范式(1NF)

确保每列保持原子性,所有字段值都是不可分解的原子值。

技术分享

第二范式(2NF)

确保每列都和主键相关,要求表中每一列都和主键相关,不能只与主键的某一部分相关。即在一个表中,只能保存一种数据,不能把多种数据保存在同一张表中

比如要设计一个订单信息表,因为订单中可能有多种商品,所有要将订单编号和商品编号作为数据库表的联合主键

技术分享

这样有一个问题:表中以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、价格等信息不与该表主键相关,而是仅仅与商品编号相关。所以在这里违反第二范式原子。

修改后如下:

技术分享

这样设计,在很大程度上减小了数据库的冗余。

第三范式(3NF)

确保每列都和主键直接相关,而不是间接相关。

技术分享

 

数据库范式

标签:

原文地址:http://www.cnblogs.com/ecosu/p/4286026.html

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