数据库设计三大范式
范式:英文名称是 Normal Form 通常所用到的只是前三个范式,即:第一范式(1NF),第
二范式(2NF),第三范式(3NF)
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中
这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据
库,必须满足一定的范式。
在实际开发中最为常见的设计范式有三个:
1.第一范式(确保每列保持原子性)
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据
库表满足了第一范式。
第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个
属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”
属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部
分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第
一范式,如下表所示。
上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方
便,也提高了数据库的性能。
2.第二范式(确保表中的每列都和主键相关)
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相
关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,
一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为
数据库表的联合主键,如下表所示。
评论0
最新资源