《数据库练习题.ppt》由会员分享,可在线阅读,更多相关《数据库练习题.ppt(54页珍藏版)》请在优知文库上搜索。
1、数据库考试主要题型:数据库考试主要题型:选择题,填空题,判断题;选择题,填空题,判断题;综合设计题(或解答题):写关系代数表达式,求综合设计题(或解答题):写关系代数表达式,求解关系代数表达式的结果;写解关系代数表达式的结果;写SQL语句;根据给语句;根据给定的描述信息画定的描述信息画E-R图,并转换为相应关系模式;图,并转换为相应关系模式;画关系代数语法树和并进行优化;求关系模式的画关系代数语法树和并进行优化;求关系模式的码;求最小函数依赖集;判断范式的级别等;事码;求最小函数依赖集;判断范式的级别等;事务并发性的分析等。务并发性的分析等。下列关系模式属于第几范式?并说明理由。下列关系模式属
2、于第几范式?并说明理由。例例1. R(A,B,C,D, (A,C)B, A D)答:由题目可知,关系的候选码为答:由题目可知,关系的候选码为(A,C) 。由于。由于存在存在A D,说明存在非主属性,说明存在非主属性D对码对码(A,C)的的部分函数依赖,不符合部分函数依赖,不符合2NF,则属于,则属于1NF。例例2.R(S#,SD,SL,SN,S# SD, S# SN, S# SL, SD SL)答:属答:属2NF。因为由题目知,候选码是。因为由题目知,候选码是S#,但由于,但由于S# SD, SD SL,说明存在传递函数依赖。并说明存在传递函数依赖。并且不存在部分函数依赖,故属且不存在部分函数
3、依赖,故属2NF。例例3. 设有关系模式设有关系模式SCT(S, C, Tn),其中),其中S表示学表示学生学号,生学号,C表示课程号,表示课程号,Tn表示教师姓名。每个表示教师姓名。每个教师只能上一门课,每门课可由多个教师讲授,教师只能上一门课,每门课可由多个教师讲授,学生若选定了某教师则选定了某一门固定的课程,学生若选定了某教师则选定了某一门固定的课程,学生与课程的关系确定后,教师即可唯一确定。学生与课程的关系确定后,教师即可唯一确定。问:问:(1)该关系模式的候选码是什么?)该关系模式的候选码是什么?(2)请写出该关系模式中的所有函数依赖。)请写出该关系模式中的所有函数依赖。(3)该关系
4、模式是否满足)该关系模式是否满足BC范式?若不满足,请范式?若不满足,请确定它满足第几范式,并说明理由。确定它满足第几范式,并说明理由。|答:(答:(1)该关系模式的候选码是()该关系模式的候选码是(S, C),(),(S, Tn)。)。|(2)该关系模式中的函数依赖如下:()该关系模式中的函数依赖如下:(S, C)Tn, (S, Tn)C,Tn C。|(3)在)在Tn C中,决定因素中,决定因素Tn不含有候选码,不含有候选码,所以所以SCT不满足不满足BCNF。|该关系模式满足该关系模式满足3NF,因为不存在任何非主属性,因为不存在任何非主属性对码的传递函数依赖或部分函数依赖,故满足对码的传
5、递函数依赖或部分函数依赖,故满足3NF。 例例4. P306 第第9题:题:设设T1、T2、T3是如下三个事务,是如下三个事务,A的初值为的初值为0。T1:A=A+2 ; T2:A=A*2 ; T3:A=A*2(1)若这三个事务允许并发执行,则有多少种可能的)若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列出。正确结果,请一一列出。(2)请给出一个可串行化的调度,并给出执行结果。)请给出一个可串行化的调度,并给出执行结果。(3)请给出一个非串行化的调度,并给出执行结果。)请给出一个非串行化的调度,并给出执行结果。(4)若这三个事务都遵循两段锁协议,请给出一个不)若这三个事务都遵循两
6、段锁协议,请给出一个不产生死锁的可串行化调度。产生死锁的可串行化调度。(5)若这三个事务都遵循两段锁协议,请给出一个产)若这三个事务都遵循两段锁协议,请给出一个产生死锁的调度。生死锁的调度。(1)若这三个事务允许并发执行,则有多少种可能的)若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列出。正确结果,请一一列出。答:答:A的最终结果可能是的最终结果可能是2、4、8、16。因为三个事务的串行执行结果都是正确的,而它们的串因为三个事务的串行执行结果都是正确的,而它们的串行执行顺序有:行执行顺序有: T1 T2 T3,T1 T3 T2,T2 T1 T3, T2 T3 T1, T3 T1
7、T2, T3 T2 T1共六种,它们串行共六种,它们串行执行对应的执行对应的A的结果依次是的结果依次是16、8、4、2、4、2。(2)请给出一个可串行化的调度,并给出执行结果。)请给出一个可串行化的调度,并给出执行结果。T1T2T3Slock A, R(A)=0Unlock AXlock AA=A+2, W(A)=2Unlock ASlock A等待等待等待等待获得获得Slock AR(A)=2, Unlock AXlock AA=A*2, W(A)=4Unlock ASlock A等待等待等待等待获得获得Slock AR(A)=4, Unlock AXlock AA=A*2, W(A)=16
8、Unlock A(3)请给出一个非串行化的调度,并给出执行结果。)请给出一个非串行化的调度,并给出执行结果。解答:解答: 给出的非串行化调度如下页图所示。最终执行结果是给出的非串行化调度如下页图所示。最终执行结果是A=0。T1T2T3Slock A, R(A)=0Unlock AXlock A等待等待获得获得Xlock AA=A+2, W(A)=2Unlock ASlock AR(A)=0Unlock AXlock A等待等待等待等待获得获得Xlock AA=A*2, W(A)=0Unlock ASlock A等待等待获得获得Slock AR(A)=2, Unlock AXlock AA=A*
9、2, W(A)=4Unlock A(4)若这三个事务都遵循两段锁协议,请给出一个不产生死锁的若这三个事务都遵循两段锁协议,请给出一个不产生死锁的可串行化调度。可串行化调度。T1T2T3Slock A, R(A)=0Xlock AA=A+2, W(A)=2Unlock AUnlock ASlock A等待等待获得获得Slock AR(A)=2Xlock A等待等待获得获得Xlock AA=A*2, W(A)=4Unlock AUnlock ASlock A等待等待等待等待等待等待获得获得Slock AR(A)=4Xlock AA=A*2, W(A)=16Unlock AUnlock A(5)若这
10、三个事务都遵循两段锁协议,请给出一个产生死锁)若这三个事务都遵循两段锁协议,请给出一个产生死锁的调度。的调度。T1T2T3Slock AR(A)=0Xlock A等待等待等待等待Slock AR(A)=0Xlock A等待等待等待等待Slock AR(A)=0Xlock A等待等待例例5. 教材教材P275 第第2题:对学生课程数据库有如下题:对学生课程数据库有如下的查询:的查询:SELECT CnameFROM Student,SC,CourseWHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Student.Sdept=IS;此查
11、询要求信息系学生选修了的所有课程名称。此查询要求信息系学生选修了的所有课程名称。试画出用关系代数表示的语法树,并用关系代数表试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。出优化后的标准语法树。答:答:Join(Student.Sno=SC. Sno)SCStudentProject(Cname)Join(SC.Cno=Course.Cno) Select(Student.Sdept=IS)Course结果结果该图不需要画出。该图不需要画出。CnameSC.Cno=Course.Cno Stu
12、dent.Sdept=ISStudent.Sno=SC. SnoCourseSCStudent关系代数语法树关系代数语法树CnameSC.Cno=Course.Cno Student.Sno=SC. SnoCourseSCStudent.Sdept=ISStudent优化后的语法树优化后的语法树例例6. 设有如下两个事务:设有如下两个事务:T1:读:读B;AB1;写回;写回AT2:读:读A;BA1;写回;写回B1)若这两个事务并发执行,请举例说明一个可能的)若这两个事务并发执行,请举例说明一个可能的执行结果(设执行结果(设A和和B的初值为的初值为2)。)。2)并发事务执行是否正确的标准是什么?
13、)并发事务执行是否正确的标准是什么?3)请给出一个可串行化的调度,并给出执行结果。)请给出一个可串行化的调度,并给出执行结果。解答:解答:1)T1,T2并发执行的一个可能结果如下图所示,并发执行的一个可能结果如下图所示,它是不可串行化的调度,执行结果不正确。它是不可串行化的调度,执行结果不正确。T1,T2串行执行的可能结果应该是串行执行的可能结果应该是A3、B4,或者是或者是A4、B3,因此该题目中,因此该题目中T1、T2 并行并行执行结果执行结果A3、B3是错误的。是错误的。T1T2Slock B ,Y=B=2Unlock BXlock A ,A=B+1写回写回A = 3Unlock ASl
14、ock A ,X=A=2Unlock AXlock B ,B=A+1写回写回B = 3Unlock B2)多个事务并发执行是正确的,当且仅当其结果与)多个事务并发执行是正确的,当且仅当其结果与按某一次序串行的执行它们时的结果相同。按某一次序串行的执行它们时的结果相同。3)给出一个可串行化的调度如下:)给出一个可串行化的调度如下:T1T2Slock B ,Y=B=2Unlock BXlock A A=B+1, 写回写回A = 3Unlock ASlock A 等待等待等待等待X=A=3Unlock AXlock B ,B=A+1写回写回B = 4Unlock B例例7. 教材教材P234,19:
15、 请设计一个图书馆数据库,请设计一个图书馆数据库,此数据库中对每个借阅者保存的记录包括:读者此数据库中对每个借阅者保存的记录包括:读者号、姓名、地址、性别、年龄、单位。对每本书号、姓名、地址、性别、年龄、单位。对每本书保存有:书号、书名、作者、出版社。对每本被保存有:书号、书名、作者、出版社。对每本被借出的书保存有读者号、借出日期和应还日期。借出的书保存有读者号、借出日期和应还日期。要求:要求:1)给出该图书馆数据库的)给出该图书馆数据库的E-R图。图。2)将)将E-R图转换为关系模型。图转换为关系模型。1)该图书馆数据库的)该图书馆数据库的E-R图如下:图如下:读者读者姓名姓名图书图书借阅借
16、阅读者号读者号地址地址性别性别出版社出版社应还日期应还日期借出日期借出日期1m年龄年龄单位单位书号书号书名书名作者作者2)转换后的关系模型为:)转换后的关系模型为:|读者(读者(读者号读者号,姓名,地址,性别,年龄,单位),姓名,地址,性别,年龄,单位)|图书(图书(书号书号,书名,作者,出版社),书名,作者,出版社)|借阅(借阅(读者号,书号读者号,书号,借出日期,应还日期),借出日期,应还日期)例例8.教材教材P234,1:现有一局部应用,包括两个实:现有一局部应用,包括两个实体:体:“出版社出版社”和和“作者作者”,这两个实体是多对,这两个实体是多对多的联系,请设计适当的属性,画出多的联系,请设计适当的属性,画出E-R图,再将图,再将其转换为关系模型(包括关系名、属性名、码和其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。完整性约束条件)。解答:解答:E-R图如下页图所示:图如下页图所示:E-R图如下:图如下:出版社出版社出版社号出版社号作者作者出版出版联系电话联系电话电话电话联系方式联系方式出书数量出书数量nm地址地址作者号作者号性别性别年龄年龄地址地址出版社名称出