理解范式
- 第一范式(1NF)
列不可分
,强调原子性,如电话列可进行拆分,家庭电话、公司电话
- 第二范式(2NF)
- 满足
1NF
- 有
主键
- 非主键完全依赖于主键,
不能部分依赖
- 满足
- 第三范式(3NF)
- 满足
2NF
- 非主键列必须直接依赖于主键,
不存在传递依赖
- 满足
范式作用
- 属性不可分 - 消除部分依赖 - 消除传递依赖
概况
- 确保每一列的原子性 (1NF)
- 非键字段必须依赖于键字段 (2NF)
- 任何非主属性不依赖于其它非主属性 (3NF)
依赖传递
- (学号) → (学生)→(所在学院) → (学院电话)
拆分 :
- 学生:(学号, 姓名, 年龄, 所在学院);
- 学院:(学院, 电话)
完全依赖
- (订单编号 ,订购日期,产品编号,价格 )
拆分
- 价格不完全依赖于(就是部分依赖)订单编号,价格可以由产品编号决定
- 订单表:(订单编号 ,订购日期 )
- 产品表: (产品编号,价格 )