您的位置:首页 > 数据库

关系型数据库设计三大范式

2016-11-25 21:27 281 查看

1.何为数据库范式?

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同

规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

简单来讲,就是数据库设计的一系列规范,每一级范式都是基于前一范式的基础上,范式层级越高,数据库质量越高。(本文指涉及前三大范式)

2.第一范式

定义:数据表中所有字段都是单一属性,不可再分。即第一范式要求数据库的表都是二维表。

例如:妹子表

姓名身高体重住址美丑联系方式
翠花1.748中国很美手机、微信
姓名身高体重住址美丑手机微信
翠花1.748中国很美1239887
两张表记录的信息都是一样的,然而表一中的联系方式可细分为手机号和微信号来存储。表二则将两个相关信息分开存储,保证了最小单元不可再分,满足了第一范式。

3.第二范式

定义:每个非主属性由整个主键函数决定,不能由主键的部分决定。非关键字段对主键完全依赖,消除部分函数依赖。即存在组合关键字中的字段决定非关键字的情况。

例如:商品表

名称供应商名称价格重量供应商电话有效期分类
奶茶娃哈哈4.0300ml666一年饮料
存在依赖关系:(名称)——>(价格,重量,有效期)

(供应商)——>(供应商电话)

ID名称价格重量有效期分类
1奶茶4.0300ml一年
供应商ID商品ID
11
ID供应商名称电话
1奶茶666

4.第三范式

定义:表中所有非主属性对任何候选关键字都不存在传递依赖,则满足第三范式。

讲人话就是:除了主键,其他任何字段都不对其他的字段造成依赖关系。看看例子就明白了。

例如:商品表

名称价格重量有效期分类分类描述
奶茶4.0300ml一年饮料很好喝
存在依赖关系:(名称)——>(分类)——>(分类描述)

再数据量大的时候,如果很多商品式一个分类的话,那么分类和分类描述就会出现大量的数据冗余。同时野会存在数据的插入更新及删除异常。

商品ID名称价格重量有效期
1奶茶4.0300ml一年
分类ID分类分类描述
1饮料很好喝
分类ID商品ID
11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 设计 范式