前言
范式是具有最小冗余的表结构。
一、第一范式
存在非主属性对码的部分依赖关系 R(A,B,C) AB是主键 C是非主属性 B–>C B决定C C部分依赖于B
概念:如果关系R 中所有属性的值域都是单纯域(列不可再分),那么关系模式R是第一范式
特点:
1)有主关键字
2)主键不能为空,
3)主键不能重复,
4)字段不可以再分
举例说明:
主键重复,cantact可再分
应改为:
二、第二范式
存在非主属性对码的传递性依赖 R(A,B,C) A是码 A -->B ,B–>C
定义:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式。
主要任务:
满足第一范式的前提下,消除部分函数依赖。也就是说:第二范式要求每个表只描述一件事情。
主要针对联合索引。
举例说明:
这个表满足第一范式
主键由StudyNo和ClassNo组成,这样才能定位到指定行
但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress)
所以要变成两个表:
第三范式
不存在非主属性对非主键的传递性依赖以及主键部分性依赖
直接上例子:
这个表完全满足了第二范式,但是bounsLevel和bouns存在传递依赖
所以应改为