描述
范式是符合某一种级别的关系模式的集合。
满足好的范式会使数据库结构简洁明晰
范式就像是英语四六级一样,越高越好,高等级的范式必定符合低等级的范式
共分为1fc,2fc,3fc,bcfc,4fc,5fc
1范式
每一列都是不可分割的基本数据项,同一列中不能有多个值
如下表不满足1fc,姓名应该是一个不可分割的属性列
2范式
1fc的基础上,不存在非主属性对码的部分依赖
完全确定一条记录的属性为候选码
候选码里的属性为主属性
如下表
主属性为学号,科目
分数依赖于学号,科目,少一个都不知道他的分数,所以是分数对码的完全依赖
姓名只依赖于学号,不依赖于科目,就是姓名对码的部分依赖
所以此表不符合2fc
应修改为
3范式
3NF在2NF的基础之上,消除了非主属性对于码的传递函数
如下表
一个属性学号就可以确定整条记录,所以学号是候选码是主属性,因为主属性只有一个所以不存在非主属性对码的部分依赖,所以满足2fc
身高依赖于姓名,姓名依赖于学号,所以存在身高对码的传递函数依赖,所以此表不符合3fc
应改为