数据库基础理论之范式

当我们开始一个项目时,哪怕再小的项目也会涉及数据库的设计。所有如何设计一个高性能的数据库成了一个难题。
怎么样的一个数据库才称得上高性能呢?我认为是数据库占用内存少,冗余数据的情况少,开发人员用着舒服这些标准。所以数据库标准就用到了,也就是常说的范式理论。
现在总共的范式有六种,分别是:

			1. 第一范式(1NF)
			2. 第二范式(2NF)
			3. 第三范式(3NF)
			4. BC范式(BCNF)
			5. 第四范式(4NF)
			6. 第五范式(5NF)

但是我们设计的数据库满足第三范式一般就可以了,数据库并不是追求满足越高的范式就越好,因为从工程的角度出发,范式标准越高,成本就会越大,可能在性能上还会下降。所以这里我们只讨论前四个。

(1)第一范式:
当一个属性分解到不能再分解的时,它就符合1NF。
例:当前有一个物流系统,其中数据库设计中有一张关于订单的表,其中属性有订单编号,客户编号,物品,发货时间。
在这里插入图片描述
目前这个是不符合1NF的,因为物品还可以分为物品名称,物品数量。所以划分后的表结构为:
在这里插入图片描述
(2)第二范式
2NF即非主属性完全依赖于主属性,不存在部分函数依赖。即主键与表中的该行数据一一对应。不会出现一个主键对应两行数据。如订单编号,客户编号,物品数量,发货时间。一个订单编号对应的客户编号,物品数量,发货时间都是唯一的。在这里插入图片描述

(3)第三范式
3NF即非主属性之间不存在依赖关系。即主键之外的字段不存在一一对应关系。
即物品名称不会决定物品的数量,同一个物品在不同订单中数量不一致。在这里插入图片描述
(4)BC范式
BC范式是对第三范式的补充,只有满足第三范式,才有可能满足BC范式。
任何非主属性对主键子集不存在依赖。即在工厂编号,车间编号,产品数量,产品完成时间。
产品数量由工厂编号和车间编号的联合主键决定,部分主键不能决定产品数量这一非主属性。
在这里插入图片描述
第四范式和第五范式略!。。。。
爱你么么哒!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值