欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数据库软专题 6.2-关系模式范例

最编程 2024-10-08 16:10:37
...

一、判断部分函数依赖(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-判断第几范式

在这里插入图片描述

求候选键:
L:零件号,供应商
R:零件名称,供应商所在地、库存量
LR:N:
零件号供应商+=零件号零件名称供应商-零件号零件名称供应商库存量
-零件号零件名称供应商库存量供应商所在地=U,唯一候选键
2NF:每一个非主属性完全依赖于候选键,
零件号->零件名称=非主属性零件名称部分依赖于零件号,不满足2NF

题3判断第几范式外加时是否再分解-

1nf :存在冗余,更新异常

五、关系分解

【回顾】部分函数依赖的规范化:(此时分解后,可能存在传递函数依赖)
若(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.

在这里插入图片描述

2.

在这里插入图片描述

3.

在这里插入图片描述

六、关系分解要无损连接保持函数依赖

题1-保持函数依赖

在这里插入图片描述

蓝色笔标注的是,该分解不能实现原依赖集中的依赖

题2-判断分解是否满足无损和依赖

在这里插入图片描述

自然连接为A1A2A3,少了A4,为有损连接
分解的关系模式保持不了A1A3-A2,A2-A3的依赖

在这里插入图片描述

明显的可以保持的依赖有A-B,E-A