数据库三范式理解
总结
1.第一范式(1NF):数据库列不可再分,即数据库的字段不可再下分,如进货包含有单价和数量那么数据库设计时应设计为两列(进货数量、进货单价)。
2.第二范式(2NF):数据库表中的每个实例或行必须可以被唯一的区分,且非主属性需要完全依赖于主键,如果存在不依赖于主键的属性,这些属性应该分离出来形成一个新的表。如某订单表包含OrderID(主键),ProductID,ProductName,Createtime,其中ProductID和Createtime依赖主键,而ProductName依赖ProductID,所以应将ProductID,ProductName分离成为新表。
3.第三范式(3NF):一个数据库表中不包含已在其它表中已包含的非主关键字信息。如存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
第二范式和第三范式的内容差不多,但还是有些细微的差别。具体差别等自己体会到了再继续写