1、将非第二范式分解成第二范式函数
前记:非第二范式-存在非主属性对主键的部分函数依赖。
例如:关系(Sno, Sname, Ssex, Sdept, Sloc, Cno, Grade)
对应:(学号,姓名,性别,所在系,宿舍楼号,课程号,成绩)code
分析:由于该关系模式的主键是(Sno,Cno),而且有Sno->Sname,所以Sname部分函数依赖于(Sno,Cno),因此,该关系不知足第二范式。 解:将该关系模式分解为以下三个关系模式(**部分表示主键) (**Sno**, Sname, Ssex, Sdept, Sloc) (**Cno**) //去掉 (**Sno, Cno**, Grade) 最后,获得了两个知足第二范式的关系。
2、将非第三范式分解成第三范式集合
前记:非第三范式-存在非主属性对主键的传递函数依赖。
例如:(Sno, Sname, Ssex, Sdept, Sloc)中,Sdept不是候选键,可是Sdept->Sloc。因此,Sdept是决定因子,从关系中删去依赖它的Sloc。co
新建一个关系模式(**Sdept**, Sloc)。 最后关系模式(Sno, Sname, Ssex, Sdept, Sloc, Cno, Grade)被分解为三个知足第2、三范式的关系模式: (Sno, Sname, Ssex, Sdept) (**Sdept**, Sloc) (**Sno,Cno**, Grade)