一、判断部分函数依赖(1NF=有部分函数依赖)
题型:给出函数依赖集和属性,判断该关系模式属于第几范式。
求出候选码
若是候选码为属性的组合,则可能有部分函数依赖;(存在部分函数依赖,1NF)
若是候选码是单个属性,一定没有部分函数依赖。
零件号-零件号 零件名称 库存量
零件号 供应商 -零件号 零件名称 供应商 库存量 供应商所在地 `候选码`
`1NF`
二、判断传递函数依赖的技巧 (2NF=有传递函数依赖)
(时间,教室)-教师 存在传递依赖,是`2NF`
三、没有部分函数依赖和传递函数依赖(3NF)
四、例题
例题1-最高可达第几范式
1,
L:学生,时间
R:成绩
LR:课程,教师,教室,
N:
学生时间-学生时间教室-学生时间教室课程-学生时间教室课程教师-学生时间教室课程教师成绩=U,候选键
2NF:每一个非主属性完全依赖于候选键
非主属性:教室 课程 教师 成绩,就教室完全依赖于时间学生,所以不满足2NF,最高为2NF
R2(学生、课程、成绩),F={学生课程->成绩}
候选键是学生课程
BCNF:FD左部全是候选键,已经满足了,所以可以达到BCNF(不存在主属性对候选键的部分/传递依赖)
不存在多值依赖,不会达到4NF
2.
求候选键:
L:A3,A5
R:A4,A6
LR:A1,A2,
N:
A3A5+=A3A5A6-A1A3A5A6-A1A2A3A5A6-A1A2A3A4A5A6=U,唯一候选键
2NF:每一个非主属性完全依赖于候选键。
不满足2NF要求,可以最高到达2NF
3.
求候选键:
L:学生,时间
R:成绩
LR:培训科目、培训师,教室
N:
学生时间+=学生时间教室-学生时间教室培训科目-学生时间教室培训科目成绩培训师=U,唯一候选键
不满足2NF,可以达到2NF
4.
求候选键:
L:A2,A5,
R:A4
LR:A1,A3,A6
N:
A2A5+=A2A5A6-A1A2A5A6-A1A2A4A5A6-A1A2A3A4A5A6=U,唯一候选键
不存在部分依赖,则为完全依赖
题2-判断第几范式
1.1nf
求候选键:
L:零件号,供应商
R:零件名称,供应商所在地、库存量
LR:N:
零件号供应商+=零件号零件名称供应商-零件号零件名称供应商库存量
-零件号零件名称供应商库存量供应商所在地=U,唯一候选键
2NF:每一个非主属性完全依赖于候选键,
零件号->零件名称=非主属性零件名称部分依赖于零件号,不满足2NF
2.2NF
求候选键:
L:Sno R:city sname LR:zip N;
候选键为Sno
2NF :每一个非主属性对候选键完全依赖。满足
题3判断第几范式外加时是否再分解
1nf :存在冗余,更新异常
题4-4NF
题5
注意A-c,则AB-C
五、关系分解
【回顾】部分函数依赖的规范化:(此时分解后,可能存在传递函数依赖)
若(X,Y)——> Z;X——>A,X——>B,X——>C,Y——>D,Y——>E
1、将所有依赖于X的所有非主属性,加上X,一起移出来。X、A、B、C(原表保留X,为了将原本的函数依赖保持住)
2、将所有依赖于Y的所有非主属性,加上Y,一起移出来。Y、D、E(原表保留Y,为了将原本的函数依赖保持住)
3、(X,Y)——> Z:X、Y、Z;(为了将原本的函数依赖保持住)
【回顾】传递函数依赖,规范化:
若:X——>Y,Y——>Z1,Y——>Z2;(X,Y,Z1,Z2)
将Y和Y决定的属性都移出原表,原表要保留Y
(X,Y)、(Y,Z1,Z2)
1.
员工关系EMP存在以下函数依赖
员工号->姓名、部门、部门电话、部分负责人、家庭住址
员工号,成员关系-》家庭成员
部门号-》部门电话、部门负责人
主键为:员工号、成员关系
判断是否满足2NF(每一个非主属性都完全依赖于候选键)
由员工号->姓名,知道 非主属性 姓名 部分依赖于 主键的员工号,不满足2NF,属于1NF
2.
3.
六、关系分解要无损连接保持函数依赖
题1-保持函数依赖
1.
蓝色笔标注的是,该分解不能实现原依赖集中的依赖
A:R1R2交集为空集
C:同A
D:只实现了C-D,AE-G
题2-判断分解是否满足无损和依赖
1.
自然连接为A1A2A3,少了A4,为有损连接
分解的关系模式保持不了A1A3-A2,A2-A3的依赖
2.
明显的可以保持的依赖有A-B,E-A
3.
W+=WX-WXZ-WXYZ
Y+=YW=WYZX
候选键为W Y
首先无损连接不能为空,排除AB;
D:只能满足W-X,不能保持函数依赖性