数据库范式

第一范式:表的每个字段必须是独立的、不可再分割的单元

例如有一张student表,里面有一个name字段

错误:name字段里保存了现有名称,曾用名1,曾用名2.。。。

正确:name里只保存现有名称或只保存曾用名称。

第一范式保证数据查询的方便。

第二范式:在满足第一范式的基础上,每张表只表达一个意思,表中的每个字段都和表的主键有依赖关系

例如一张员工表employee,员工编号,员工姓名,部门名称

错误:在此表中添加了一个订单编号字段,而订单编号字段和员工表没有任何关系

正确:表里的每个字段都应该和员工有关系。订单编号应该单独放在订单表里

第三范式:在满足第二范式的基础上,要求每张表的除主键以外的其他字段都只能和主键有直接的依赖关系

例如一张员工表:employee,员工编号(主键),员工姓名,部门名称

错误:如果在这张表里再添加一个部门编号字段,则部门名称也依赖于部门编号。第三范式要求部门名称只能和主键有依赖关系。

如果违背的第三范式就有可能出现高数据冗余。

正确:将部门表抽取成独立的表,部门编号为员工表的外键。

第三范式可有效降低数据冗余。

数据库范式是数据库设计时的建议,不要求强制遵守

原文地址:https://www.cnblogs.com/StanLong/p/6859001.html