
数据结构DB课后题部分答案.doc
3页P175:5. 设有关系模式 R(A,B,C,D),函数依赖 F={ A→C , C→A, B→AC, D→AC,BD→A } 1) 求 R 的所有候选键2) 求出 F 的最小函数依赖集 Fmin3) 根据函数依赖关系,确定关系模式 R 属于第几范式4) 将 R 分解为 3NF,并保持无损连接性和函数依赖性答:1)属性分类为:L 类:B,D ; LR 类:A,C; R 类: 无; N 类:无 因为(BD) +=ABCD ,所以 BD 是唯一候选键. 2) 函数依赖 F={ A→C, C→A, B→AC, D→AC, BD→A }右部分解为单属性为F={ A→C, C→A, B→A, B→C, D→A, D→C , BD→A } 因为 B+=ABC,所欲 BD→A,D 为左部多余的属性.将 D 去掉,则F={ A→C, C→A, B→A, B→C, D→A, D→C } 冗余函数依赖: 因为 B+=ABC,所以 B→A 多余,去掉.因为 D+=ACD,所以 D→A 多余 ,去掉. 所以 Fmin={ A→C , C→A, B→C, D→C }4)根据算法 4.6,以及 Fmin, F 中没有 X→Y ,XY=R 的函数依赖,也没有属性在 F 的函数依赖 中左右都无关。
所以将 Fmin 中的各个函数依赖单独构成一个关系模式,结果为 ρ={AC,BC,DC}因为A B C DAC a1 b12 a3 b14BC b21 a2 a3 b24DC b31 b32 a3 a4对于 Fmin 中每一个函数依赖:A→C:表中数据不改变;C→A:将 A 中所有 b 给为 a1;B→C, D→C:表中数据不改变所以结果为:A B C DAC a1 b12 a3 b14BC a1 a2 a3 b24DC a1 b32 a3 a4表中没有都是 a 的行,所以不是无损连接的因此根据算法 4.7,将候选键作为一个关系模式加入到 ρ 中,所以结果为ρ={AC,BC,DC,BD}6.设有关系模式 R(A,B,C,D),函数依赖 F={ A→C, C→A, B→AC, D→AC } 1) 求(AD) +,B +2) 求出 R 的所有候选键3) 求出 F 的最小函数依赖集 Fmin4) 根据函数依赖关系,确定关系模式 R 属于第几范式5) 将 R 分解为 3NF,并保持无损连接性和函数依赖性6) 略答:1) (AD ) +=ACD, B+=ABC 2) 属性分类为:L 类:B,D ; LR 类:A,C; R 类: 无; N 类:无 因为(BD) +=ABCD ,所以 BD 是唯一候选键. 3) (1)函数依赖 F={ A→C, C→A, B→AC, D→AC } 右部分解为单属性为F={ A→C, C→A, B→A, B→C, D→A, D→C } (2)无左部多余的属性.(3)冗余函数依赖: 因为 B+=ABC,所以 B→A 多余,去掉.因为 D+=ACD,所以 D→A 多余 ,去掉. 所以 Fmin={ A→C , C→A, B→C, D→C }4) 首先 R 是 1NF,因为 BD 为候选码,另 B→C , BD→C, 所以, 存在非主属性对码的部分函数依赖,所以 R 是 1NF,不是 2NF. 5) 同第 5 题。
8.判断关系模式是否保持无损连接性分析方法同第 5 题中的(4)(1)U V W X Y ZWZ b11 b12 a3 b14 b15 a6VY b21 a2 b23 b24 a5 b26WXY b31 b32 a3 a4 a5 b36UV a1 a2 b43 b44 b45 b46分析……修改后的表格数据为:U V W X Y ZWZ b11 b12 a3 b14 b15 a6VY b21 a2 b23 b24 a5 b26WXY b21 a2 a3 a4 a5 a6UV a1 a2 b43 b44 b45 b46所以没有全是 a 的行,所以不保持无损连接注意:Y→U,将 U 列的 b31 修改为 b21 后,U 列将出现相等的行,所以需要重新对 Fmin中的所有函数依赖再进行一次数据修改直到不能修改为止3)A B C DAB a1 b12 a3 b14ACD b21 a2 a3 b24BCD b31 b32 a3 a4分析……修改后的表格数据为:A B C DAB a1 b12 a3 b14ACD b21 a2 a3 b24BCD b31 b32 a3 a4所以没有全是 a 的行,所以不保持无损连接。
P176:17 题:求 Fmin, 函数依赖 F={ E→G ,G→E, F→EG, H→EG, FH→E }右部分解为单属性为F={ E→G,G→E, F→E, F→G,H→E,H→G, FH→E } 对于 FH→E,因为 H+=HEG,所以 FH→E ,F 为左部多余的属性 .将 F 去掉,则 F={ E→G,G→E, F→E, F→G,H→E,H→G} 冗余函数依赖: 因为对 F→E ,F +=FGE,所以 F→E 多余,去掉.因为 H→E ,H +=HGE,所以 H→E 多余,去掉. 所以 Fmin={ E→G,G→E, F→G ,H→G }18 题:(1)求所有候选键属性分类为:L 类:C, E ; LR 类:A, R 类:B,D,P; N 类: 无 因为(CE) +=CEPDAB ,所以 CE 是唯一候选键. P298 页:存储过程和触发器4.自定义存储过程(1)CREATE PROCEDURE Insert_Student(@s_no char(6),@class_no char(6),@s_name varchar(10),@s_sex char(2),@s_birthday datetime)as insert into student(s_no,class_no,s_name,s_sex,s_birthday)values(@s_no,@class_no,@s_name,@s_sex,@s_birthday)(2)EXEC Insert_Student @s_no=’123456’, @class_no=’js9901’,@s_name=’张三’,@s_sex=’男’,@s_birthday=’1981/01/02’(3) CREATE PROCEDURE Insert_Course(@ course_no char(6),@ course_name char(20),@ score numeric(6,2)=2)as insert into course (course_no, course_name, score)values(@course_no, @course_name, @score)(4) a:EXEC Insert_Course @course_no=’010001’, @course_name=’DB’, @score=4b: EXEC Insert_Course @course_no=’010002’, @course_name=’VB’(5) CREATE PROCEDURE Query_Student(@ s_no char(6),)as select s_name,class_no,s_sex,s_birthday from student where s_no=@s_no(6)EXEC Query_Student @s_no=’001101’5 CREATE TRIGGER Display_trigger on student after insert as select * from student。









![2019版 人教版 高中语文 必修 上册《第一单元》大单元整体教学设计[2020课标]](http://img.jinchutou.com/static_www/Images/s.gif)


