数据库练习题.ppt

上传人:夺命阿水 文档编号:271197 上传时间:2023-04-11 格式:PPT 页数:54 大小:282.50KB
返回 下载 相关 举报
数据库练习题.ppt_第1页
第1页 / 共54页
数据库练习题.ppt_第2页
第2页 / 共54页
数据库练习题.ppt_第3页
第3页 / 共54页
数据库练习题.ppt_第4页
第4页 / 共54页
数据库练习题.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《数据库练习题.ppt》由会员分享,可在线阅读,更多相关《数据库练习题.ppt(54页珍藏版)》请在课桌文档上搜索。

1、数据库考试主要题型:,选择题,填空题,判断题;综合设计题(或解答题):写关系代数表达式,求解关系代数表达式的结果;写SQL语句;根据给定的描述信息画E-R图,并转换为相应关系模式;画关系代数语法树和并进行优化;求关系模式的码;求最小函数依赖集;判断范式的级别等;事务并发性的分析等。,下列关系模式属于第几范式?并说明理由。,例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。因

2、为由题目知,候选码是S#,但由于S#SD,SD SL,说明存在传递函数依赖。并且不存在部分函数依赖,故属2NF。,例3.设有关系模式SCT(S,C,Tn),其中S表示学生学号,C表示课程号,Tn表示教师姓名。每个教师只能上一门课,每门课可由多个教师讲授,学生若选定了某教师则选定了某一门固定的课程,学生与课程的关系确定后,教师即可唯一确定。问:(1)该关系模式的候选码是什么?(2)请写出该关系模式中的所有函数依赖。(3)该关系模式是否满足BC范式?若不满足,请确定它满足第几范式,并说明理由。,答:(1)该关系模式的候选码是(S,C),(S,Tn)。(2)该关系模式中的函数依赖如下:(S,C)Tn

3、,(S,Tn)C,Tn C。(3)在Tn C中,决定因素Tn不含有候选码,所以SCT不满足BCNF。该关系模式满足3NF,因为不存在任何非主属性对码的传递函数依赖或部分函数依赖,故满足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)若这三个事务都遵循两段锁协议,请给出一个不产生死锁的可串行化调度。(5)若这三个事务都遵循两段锁协议,请给出一

4、个产生死锁的调度。,(1)若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列出。答:A的最终结果可能是2、4、8、16。因为三个事务的串行执行结果都是正确的,而它们的串行执行顺序有:T1 T2 T3,T1 T3 T2,T2 T1 T3,T2 T3 T1,T3 T1 T2,T3 T2 T1共六种,它们串行执行对应的A的结果依次是16、8、4、2、4、2。,(2)请给出一个可串行化的调度,并给出执行结果。,(3)请给出一个非串行化的调度,并给出执行结果。解答:给出的非串行化调度如下页图所示。最终执行结果是A=0。,(4)若这三个事务都遵循两段锁协议,请给出一个不产生死锁的可串行化调度。,

5、(5)若这三个事务都遵循两段锁协议,请给出一个产生死锁的调度。,例5.教材P275 第2题:对学生课程数据库有如下的查询:,SELECT CnameFROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Student.Sdept=IS;,此查询要求信息系学生选修了的所有课程名称。试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。,答:,该图不需要画出。,关系代数语法树,优化后的语法树,例6.设有如下两个事务:T1:读B;AB1;写回AT2:读A;

6、BA1;写回B1)若这两个事务并发执行,请举例说明一个可能的执行结果(设A和B的初值为2)。2)并发事务执行是否正确的标准是什么?3)请给出一个可串行化的调度,并给出执行结果。,解答:1)T1,T2并发执行的一个可能结果如下图所示,它是不可串行化的调度,执行结果不正确。T1,T2串行执行的可能结果应该是A3、B4,或者是A4、B3,因此该题目中T1、T2 并行执行结果A3、B3是错误的。,2)多个事务并发执行是正确的,当且仅当其结果与按某一次序串行的执行它们时的结果相同。,3)给出一个可串行化的调度如下:,例7.教材P234,19:请设计一个图书馆数据库,此数据库中对每个借阅者保存的记录包括:

7、读者号、姓名、地址、性别、年龄、单位。对每本书保存有:书号、书名、作者、出版社。对每本被借出的书保存有读者号、借出日期和应还日期。要求:1)给出该图书馆数据库的E-R图。2)将E-R图转换为关系模型。,1)该图书馆数据库的E-R图如下:,2)转换后的关系模型为:,读者(读者号,姓名,地址,性别,年龄,单位)图书(书号,书名,作者,出版社)借阅(读者号,书号,借出日期,应还日期),例8.教材P234,1:现有一局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。,解答:E-R图如下

8、页图所示:,E-R图如下:,转化后的关系模型如下:出版社(出版社号,出版社名称,地址,联系电话)作者(作者号,姓名,性别,年龄,电话,地址)出版(出版社号,作者号,出书数量,联系方式)出版关系的主码(出版社号,作者号)分别参照出版社关系的主码出版社号和作者关系的主码作者号。,例9.已知关系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(AB)F+。,解:设X(0)=AB;(1)计算X(1):逐一的扫描 F 集合中各个函数依赖,找左部为A,B或AB的函数依赖。得到两个:ABC,BD。于是X(1)=ABCD=ABCD。,(2)因为X(0)X(1),所以再找出左部为A

9、BCD子集的那些函数依赖,又得到:ABC,BD,CE,ACB,于是X(2)=X(1)BCDE=ABCDE。(3)因为X(2)=U,算法终止。所以(AB)F+=ABCDE。,【例10】设F=ABC,BAC,CA,对F进行极小化处理。,解:1)根据分解规则把F中的函数依赖转换成右部都是单属性的函数依赖集合,分解后的函数依赖集仍用F表示:,2)去掉F中冗余的函数依赖。,F=AB,AC,BA,BC,CA,判断AB是否冗余。设:G1=AC,BA,BC,CA,得:AG1+=AC BAG1+AB不冗余,【例10】设F=ABC,BAC,CA,对F进行极小化处理。,判断AC是否冗余。设:G2=AB,BA,BC,

10、CA,得:AG2+=ABC CAG2+AC冗余。,判断BA是否冗余。设:G3=AB,BC,CA,得:BG3+=BCA ABG3+BA冗余,【例10】设F=ABC,BAC,CA,对F进行极小化处理。,判断BC是否冗余。设:G4=AB,CA,得:BG4+=B CBG4+BC不冗余。,判断CA是否冗余。设:G5=AB,BC,得:CG5+=C ACG5+CA不冗余。,3)由于该题中函数依赖表达式的左部均为单属性,因而不需进行第三步检查。最小函数依赖为:Fm=AB,BC,CA,【例11】求F=ABC,AB,BA的最小函数依赖集Fm。,解:(1)将F中函数依赖都分解为右部为单属性的函数依赖,显然F满足该条

11、件。,(2)去掉F中冗余的函数依赖。判断ABC是否冗余。设:G1=AB,BA,得:(AB)G1+=AB C(AB)G1+ABC不冗余。判断AB是否冗余。设:G2=ABC,BA,得:AG2+=A BABG2+AB不冗余。,【例11】求F=ABC,AB,BA的最小函数依赖集Fm。,判断BA是否冗余。设:G3=ABC,AB,得:BG3+=B ABG3+BA不冗余。,经过检验后的函数依赖集仍然为:F=ABC,AB,BA。,(3)去掉各函数依赖左部冗余的属性。本题只需考虑ABC的情况。,【例11】求F=ABC,AB,BA的最小函数依赖集Fm。,方法1:在决定因素中去掉B,若CAF+,则以AC代替ABC。

12、求得:AF+=ABC,CAF+以AC代替ABC。故:Fm=AC,AB,BA,方法2:在决定因素中去掉A,若CBF+,则以BC代替ABC。求得:BF+=ABC,CBF+以BC代替ABC。故:Fm=BC,AB,BA。,例12,设关系模式R(A,B,C,D,E,F),函数依赖集F=ABE,ACF,ADB,BC,CD。1)证明AB、AC、AD均是候选码。2)证明主属性C部分函数依赖于候选码AB,传递依赖于AD。,证明:1)(AB)F+=ABCDEF,ABCDEF(AB)F+AB为码。(AC)F+=ABCDEF,ABCDEF(AC)F+AC为码。(AD)F+=ABCDEF,ABCDEF(AD)F+AD为

13、码。,例12,例13,设关系模式R(A,B,C,D)函数依赖集FAC,CA,BAC,DAC,BDA。1)求出R 的候选码。2)求出R的最小函数依赖集。,解:1)AF+=AC,CF+=AC,BF+=BAC,DF+=DAC,(BD)F+=BDAC,R的候选码是BD。,2)求最小函数依赖集。(1)将F中函数依赖的右部分解为单属性:FAC,CA,BA,BC,DA,DC,BDA(2)去掉F中冗余的函数依赖:判断AC是否冗余。设:G1=CA,BA,BC,DA,DC,BDA,得:AG1+=A,CAG1+AC不冗余。判断CA是否冗余。设:G2=AC,BA,BC,DA,DC,BDA,得:CG2+=C,ACG2+

14、CA不冗余。,例13,判断BA是否冗余。设:G3=AC,CA,BC,DA,DC,BDA,得:BG3+=BCA,A BG3+BA冗余。判断BC是否冗余。设:G4=AC,CA,DA,DC,BDA,得:BG4+=B,CBG4+BC不冗余。判断DA是否冗余。设:G5=AC,CA,BC,DC,BDA,得:DG5+=DCA,A DG5+=DA冗余。,例13,判断DC是否冗余。设:G6=AC,CA,BC,BDA,得:DG6+=D,C DG6+DC不冗余。判断BDA是否冗余。设:G7=AC,CA,BC,DC,得:(BD)G7+=BDCA,A(BD)G7+BDA冗余。,所以:F=AC,CA,BC,DC。,3)由

15、于F的左部均为单属性,所以:最小函数依赖集F=AC,CA,BC,DC。,例13,第三章部分习题答案,(2)SELECT PNAME,COLOR,WEIGHT FROM P;,5.(1)SELECT SNAME,CITY FROM S;,(3)SELECT JNO FROM SPJ WHERE SNO=S1;,(4)SELECT P.PNAME,SPJ.QTY FROM P,SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2,(5)SELECT SPJ.PNO FROM S,SPJ WHERE S.SNO=SPJ.SNO AND S.CITY=上海;,(7)SELECT

16、 JNO FROM J WHERE JNO NOT IN(SELECT JNO FROM S,SPJ WHERE S.SNO=SPJ.SNO AND S.CITY=天津);,(6)SELECT J.JNAME FROM SPJ,J,S WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY=上海;,(8)UPDATE J SET COLOR=蓝 WHERE COLOR=红;,(9)UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6;,(10)DELETE FROM SPJ WHERE SNO

17、=S2;,DELETEFRPM SWHERE SNO=S2;,注意:先删表中的相应元组,然后再删除表中的相应元组。,(11)INSERT INTO SPJ(SNO,JNO,PNO,QTY)VALUES(S2,J6,P4,200);,或者:INSERT INTO SPJ VALUES(S2,P4,J6,200);,11 创建视图:Create view v-spj AS select sno,pno,qty from spj where jno=(select jno from j where jname=三建)(1)Select pno,qty from v-spj(2)Select pno,

18、qty from v-spj where sno=s1,第章148,第8题,(a)grant select on 职工,部门 to 王明(b)grant insert,delete on 职工,部门 to 李勇(c)grant select on 职工when user()=name to all(该题超出范围,只做参考)(d)Grant select,update(工资)on 职工 to 刘星(e)Grant alter table on 职工,部门 to 张新(f)Grant all privileges 职工,部门 to 周平 with grant option,(g)首先建立视图,然后

19、对视图定义杨兰的存取权限:Create view 部门工资asselect 部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM 职工,部门WHERE 职工.部门号=部门.部门号GROUP BY 职工.部门号Grant select on 部门工资 to 杨兰,第章148,第9题,(a)revoke select on 职工,部门 from 王明(b)revoke insert,delete on 职工,部门 from 李勇(c)revoke select on 职工when user()=name from all(该题超出范围,只做参考)(d)revoke select,up

20、date on 职工 from 刘星(e)revoke alter table on 职工,部门 from 张新(f)revoke all privileges 职工,部门 from 周平(g)Revoke select on 部门工资 from 杨兰 drop view 部门工资,第二章 5.关系代数表达式:,(1)SNO(JNO=J1(SPJ)=S1,S2,S3,S4,S5,(3)SNO(JNO=J1COLOR=红(PSPJ)=S1,S3,(2)SNO(JNO=J1PNO=P1(SPJ)=S1,S3,(4)JNO(J)-JNO(CITY=天津 COLOR=红(S SPJ P)=J2,J4,

21、(5)JNO,PNO(SPJ)PNO(SNO=S1(SPJ)=,第5章 习题6,Create table dept(deptno number(2),deptname varchar(10),manager varchar(10),phonenumber char(12),constraint PK_DEPT primary key(deptno)说明:本例是假设先定义部门表dept。那么职工表中的“部门号”属性就要参考部门表dept中的属性“deptno”。,Create table emp(empno number(4)primary key,ename varchar(10),age number(2)constraint c1 check(age=60)job varchar(9),sal number(7,2),deptno number(2)constraint FK_DEPTNO forgign key(deptno)reference dept(deptno),说明:假设本题目先定义职工表emp,则外码约束关系要发生变化。在实际数据库开发中,根据应用需求决定表的定义顺序。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号