第一范式(1NF):强调的是列的原子性,即“列不能够再分成其他几列”,同一列中不能有多个值。

例子:业余爱好编码表+员工编码表

运用Access学习数据库的三大范式-LMLPHP

运用Access学习数据库的三大范式-LMLPHP

当员工杨来的业余爱好有多个时,此时的数据库设计不满足第一范式,可进行如下的修改,把员工编码表中的“业余爱好”拿出来单独建表,建立业余爱好表,此时可满足1个员工有多个爱好。

运用Access学习数据库的三大范式-LMLPHP

运用Access学习数据库的三大范式-LMLPHP

第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分,“也就是一个表只能保存一种数据”。

例子:此表中有商品信息、订单信息

运用Access学习数据库的三大范式-LMLPHP

可修改为:

运用Access学习数据库的三大范式-LMLPHP

运用Access学习数据库的三大范式-LMLPHP

运用Access学习数据库的三大范式-LMLPHP

第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

运用Access学习数据库的三大范式-LMLPHP

运用Access学习数据库的三大范式-LMLPHP

客户名称依赖于客户编号,客户编号作为订单信息表的外键,客户编号依赖于订单编号,所以存在间接依赖

可改为:

运用Access学习数据库的三大范式-LMLPHP

05-18 00:12