范式概念:
- 第一范式:
- 所有数据列为原子性的,列内数据不可分别维护.如:姓名+性别维护到一个字段内,如果要修改名字或性别那么该字段内整体就不是原子性,无法维护。
- 第二范式:
- 首先是需要满足第一范式,其次要满足知道属性主键值就能与之关联其他全部字段,而非某些字段如果只是部分依赖主键:那么就会出现数据冗余,增删改都会受到影响
- 第三范式:
- 第三范式是在第二范式的基础上,确保数据表中的每一个非主键字段都和主键字段直接相关,也就是说,要求数据表中的所有非主键字段不能依赖于其他非主键字段。
- 总结:
- 数据表设计 要遵循三个范式:
- 第一范式(1NF),确保每列保持
原子性数据库的每一列都是不可分割的原子数据项,不可再分的最小数据单元,而不能是集合、数组、记录等非原子数据项。 - 第二范式(2NF),确保每列都和主键
完全依赖尤其在复合主键的情况向下,非主键部分不应该依赖于部分主键。 - 第三范式(3NF),确保每列都和主键
直接相关,而不是间接相关
- 第一范式(1NF),确保每列保持
- 范式优点与缺点:
- 优点:范式化,重复冗余数据少,更新快,修改少,查询时更少的distinct
- 缺点:因为一个表不存在冗余重复数据,查询可能造成很多关联,效率变低,可能使一些索引策略无效,范式化将列存在不同表中,这些列若在同一个表中可以是一个索引。
- 数据表设计 要遵循三个范式: