MySQL第四天
一.第一范式1NF
1.含义
数据表中的所有字段都是不可分割的原子值。
2.建表
3.传值
4.查表
address字段值还可以继续拆分,就不满足第一范式。
5.重新建表
地址一栏更正为多个不可拆分的字段。国家、省份、市、详细地址。
7.插入数据
8.查表
地址栏满足第一范式
注意:设计的越详细,对于某些实际操作可能有好处,但是可能也有坏处。所以具体如何设计,应该从需求出发。
二.第二范式
1.定义:
在满足第一范式的前提下,第二范式要求,除主键外的每一列都必须完全依赖于主键。
如果是出现不完全依赖,只可能发生在联合主键的情况下,这种情况就不满足第二范式。
2.建表
project_id和customer_id为联合主键。
project_name不依赖于主键customer_id
customer_name不依赖于主键project_id
所以不满足第二范式。
3.解决问题
解决方式:拆表。分成三个表后,就满足了第二范式的设计。
三.第三范式3NF
1.内容
必须满足第二范式,除开主键列的其他列之间不能有传递依赖关系。
2.反例
customer_phone与customer_id有传递依赖关系。
3.解决
拆表