数据库的三大范式如下:
第一范式(1NF)
1. 原子性要求
• 每一列都是不可再分的基本数据项。例如,在一个存储用户信息的表中,如果有一个“地址”列,不能把省、市、区等信息混合在这一列中,而应该拆分成“省份”“城市”“区县”等单独的列,这样每个列的数据都是原子性的,保证了数据的结构简单和规范化。
第二范式(2NF)
1. 消除部分依赖
• 在满足第一范式的基础上,要求非主属性完全依赖于主键。例如,有一个订单表(订单编号,商品编号,商品名称,商品价格,用户编号,用户姓名),主键是(订单编号,商品编号)。这里“商品名称”和“商品价格”只依赖于“商品编号”,而不是整个主键,这就不符合第二范式。应该把商品相关信息单独建表,通过“商品编号”关联,使得非主属性完全依赖于主键。
第三范式(3NF)
1. 消除传递依赖
• 在满足第二范式的基础上,要求非主属性不传递依赖于主键。例如,有一个学生表(学号,姓名,系号,系名称),主键是“学号”,“系名称”通过“系号”传递依赖于“学号”,不符合第三范式。应将系相关信息单独建表,通过“系号”关联,消除这种传递依赖关系,这样可以减少数据冗余,提高数据的一致性和完整性。