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)