第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。巴克斯范式(BCNF):消除了主属性对码的传递依赖。例如(A,B,C)都为主属性,存在依赖关系:(A,B)-C, C-A, 这就不符合 BCNF。应该分解为:(C,A)和(C,B),注意这个(C,A)要单独为一个部分 注意分解后丢失了一些函数依赖:(A,B)-C第四范式(4NF): 当一个表中的非主属性互相独立时(3NF),这些非主属性不应该有多值。例如:课程代码 老师 教科书001 Tom A001 Tom B001 Jim A001 Jim B教科书和老师都是多值属性,所以分出来课程老师(课程代码,老师)课程教科书(课程代码,教科书)