1NF->2NF:消除非主属性对码的部分函数依赖
2NF->3NF:消除非主属性对码的传递函数依赖
3NF->BCNF:消除主属性对码的部分和传递函数依赖

例子:下面的依赖都是完全函数依赖:
(Sno,Cno)->Grade
Sno->Sdept
Sdept->Sloc
(Sno,Cno)->Teacher
(Sno,Teacher)->Cno
Teacher->Cno

Sno:学号 Cno:课程号 Sdept:院系 Sloc:地址 Teacher:授课教师

2NF:
S-L-C(Sno,Sdept,Sloc,Cno,Grade)
主码:(Sno,Cno),上面的模式不满足2NF,可以如下进行拆分:
(Sno,Cno,Grade) (Sno,Sdept,Sloc)

3NF:
S-D-C(Sno,Sdept,Sloc)
主码:Sno
上面的模式不满足3NF,可以如下进行拆分
(Sno,Sdept) (Sdept,Sloc)

BCNF:
SCT(Sno,Cno,Teacher)
候选码:(Sno,Teacher),(Sno,Cno)
上面的模式不满足BCNF,可以进行如下拆分:
(Sno,Teacher)
(Teacher,Cno)

posted on 2008-03-05 14:48  shawnliu  阅读(776)  评论(0编辑  收藏  举报