
1:关系模式R的所有属性都单独不可再分(不满足都不能叫关系数据库)
电话只能填电话而不能填姓名

2:首先有1nf,且每一个非主属性完全函数依赖于码
只要存在部分函数依赖就分解,从而变成2nf
部分函数依赖:像上面的,Sno也可以确定Sdept(部分函数依赖),Sno和Cno同时也可以确定Sdept(绝对函数依赖)
| 类型 | 依赖依据 | 例子中的表现 |
|---|---|---|
| 完全函数依赖 | 候选码的全部属性 | 成绩必须依赖“学号+课程号” |
| 部分函数依赖 | 候选码的部分属性 | 姓名只依赖“学号”(课程号是多余的) |
![]() |
||
![]() |
||
![]() |
3:不能有传递函数依赖
首先要满足2nf

学号(主属性)(候选码、主码)确定系名,反向不能确定
系名确定楼号
这形成了传递函数依赖



bcnf:每个决定因素必包含码



有两个候选码,SJP 中所有函数依赖的 “决定因素(X)都是候选码”,因此它满足 BCNF 的定义。
这里决定因素是(S,J)和(J,P)


