数据库系统课后习题

上传人:博****1 文档编号:569450388 上传时间:2024-07-29 格式:PPT 页数:78 大小:1.56MB
返回 下载 相关 举报
数据库系统课后习题_第1页
第1页 / 共78页
数据库系统课后习题_第2页
第2页 / 共78页
数据库系统课后习题_第3页
第3页 / 共78页
数据库系统课后习题_第4页
第4页 / 共78页
数据库系统课后习题_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《数据库系统课后习题》由会员分享,可在线阅读,更多相关《数据库系统课后习题(78页珍藏版)》请在金锄头文库上搜索。

1、数据数据库系系统课后后习题山东科技大学 信息学院 数据库教学团队崔宾阁副教授http:/ 访问密码 4be42021/6/31供应商表:S(SNO, SNAME, STATUS, CITY);零件表:P(PNO, PNAME, COLOR, WEIGHT);工程项目表:J(JNO, JNAME, CITY);供应情况表:SPJ(SNO, PNO, JNO, QTY);关系模式定关系模式定义2021/6/32(1)求供应工程J1零件的供应商号码SNO;(2)求供应工程J1零件P1的供应商号码SNO;(3)求供应工程J1零件为红色的供应商号码SNO;(4)求没有使用天津供应商生产的红色零件的工程号

2、JNO;(5)求至少用了供应商S1所供应的全部零件的工程号JNO。第二章第二章 习题6 6使用关系代数和使用关系代数和ALPHAALPHA语言完成言完成查询:2021/6/33(1)求供应工程J1零件的供应商号码SNO;关系代数:ALPHA:GET W (SPJ.SNO): SPJ.JNO = J1(2)求供应工程J1零件P1的供应商号码SNO;关系代数:ALPHA:GET W (SPJ.SNO): SPJ.JNO = J1 SPJ.PNO=P1(3)求供应工程J1零件为红色的供应商号码SNO;关系代数:ALPHA:RANGE P PX GET W (SPJ.SNO): SPJ.JNO = J

3、1 PX(PX.PNO=SPJ.PNO PX.COLOR=红)第二章第二章 习题6 62021/6/34(4)求没有使用天津供应商生产的红色零件的工程号JNO;关系代数:ALPHA语言:RANGE S SXRANGE P PXRANGE SPJ SPJXGET W (J.JNO): SPJX( SPJX.JNO=J.JNO SX(SX.SNO=SPJX.SNO SX.CITY=天津) PX(PX.PNO=SPJX.PNO PX.COLOR=红) ) 第二章第二章 习题6 62021/6/35(5)求至少用了供应商S1所供应的全部零件的工程号JNO。关系代数:ALPHA语言:RANGE SPJ

4、SPJXRANGE SPJ SPJYRANGE P PXGET W (J.JNO): PX( SPJX(SPJX.SNO=S1 SPJX.PNO=PX.PNO) SPJY(SPJY.JNO=J.JNO SPJY.PNO=PX.PNO) )第二章第二章 习题6 62021/6/36第三章第三章 习题3 32021/6/37(4)SELECT S.*,T.*FROM S,TWHERE S.C=T.C(5)SELECT S.*,T.*FROM S,TWHERE AE(6)SELECT S.C,S.D,T.*FROM S,T第三章第三章 习题3 32021/6/38(1)求供应工程J1零件的供应商号码

5、SNO;(2)求供应工程J1零件P1的供应商号码SNO;(3)求供应工程J1零件为红色的供应商号码SNO;(4)求没有使用天津供应商生产的红色零件的工程号JNO;(5)求至少用了供应商S1所供应的全部零件的工程号JNO。第三章第三章 习题4 4使用使用SQLSQL语句建立句建立4 4个表,并完成个表,并完成查询:2021/6/39创建供应商表S:CREATE TABLE S (SNO CHAR(2) PRIMARY KEY,SNAME VARCHAR(10),STATUS CHAR(2),CITY VARCHAR(10) );创建零件表P:CREATE TABLE P (PNO CHAR(2)

6、 PRIMARY KEY,PNAME VARCHAR(10),COLOR CHAR(2),WEIGHT INT );创建表建表2021/6/310创建工程项目表J:CREATE TABLE J (JNO CHAR(2) PRIMARY KEY,JNAME VARCHAR(10),CITY VARCHAR(10);创建表建表2021/6/311创建供应情况表SPJ:CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT,PRIMARY KEY (SNO, PNO, JNO),FOREIGN KEY (SNO) REFERENCES

7、 S(SNO),FOREIGN KEY (PNO) REFERENCES P(PNO),FOREIGN KEY (JNO) REFERENCES J(JNO);创建表建表2021/6/312(1)求供应工程J1零件的供应商号码SNO;SELECT SNOFROM SWHERE JNO = J1(2)求供应工程J1零件P1的供应商号码SNO;SELECT SNOFROM SWHERE JNO = J1 AND PNO = P1第(3)-(5)题的答案参照“SQL难题解疑”。第三章第三章 习题4 42021/6/313(1)查询所有供应商的姓名和所在城市;SELECT SNAME, CITYFRO

8、M S(2)查询所有零件的名称、颜色和重量;SELECT PNAME, COLOR, WEIGHTFROM P(3)查询使用供应商S1所供应零件的工程号码;SELECT JNOFROM SPJWHERE SNO=S1第三章第三章 习题5 52021/6/314(4)查询工程项目J2使用的零件的名称及其数量;SELECT PNAME, QTYFROM SPJ, PWHERE SPJ.PNO=P.PNO AND SPJ.JNO=J2(5)找出上海厂商供应的所有零件号码;SELECT DISTINCT PNOFROM SPJ, SWHERE SPJ.SNO=S.SNO AND S.CITY=上海第三

9、章第三章 习题5 52021/6/315(6)找出使用上海产的零件的工程名称;SELECT DISTINCT JNAMEFROM SPJ, S, JWHERE SPJ.SNO=S.SNO AND SPJ.JNO=J.JNO AND S.CITY=上海(7)找出没有使用天津产的零件的工程号码;SELECT JNOFROM JWHERE JNO NOT IN (SELECT JNOFROM SPJ, SWHERE SPJ.SNO = S.SNO AND S.CITY = 天津 )第三章第三章 习题5 52021/6/316(8)把全部红色零件的颜色改成蓝色;UPDATE PSET COLOR=蓝W

10、HERE COLOR=红(9)将供应商S5供给工程J4的零件P6改成由供应商S3供应,请做必要的修改;UPDATE SPJSET SNO=S3WHERE SNO=S5 AND JNO=J4 AND PNO=P6第三章第三章 习题5 52021/6/317(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;DELETE FROM SPJ WHERE SNO=S2;DELETE FROM S WHERE SNO=S2;(11)将(S2, J6, P4, 200)插入SPJ表中。INSERTINTO SPJ(SNO,JNO,PNO,QTY)VALUES(S2,J6,P4,200)

11、;第三章第三章 习题5 52021/6/318请为“三建”工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW SANJIAN_SPJ(SNO,PNO,QTY)ASSELECT SNO,PNO,QTYFROM SPJ, JWHERE SPJ.JNO=J.JNO AND J.JNAME=三建第三章第三章 习题9 92021/6/319针对该视图完成下列查询:(1)找出“三建”工程项目使用的各种零件代码及其数量;1.SELECT PNO, QTY FROM SANJIAN_SPJ;2.SELECT PNO, SUM(QTY) AS

12、 QTY FROM SANJIAN_SPJ GROUP BY PNO;(2)找出供应商S1的供应情况。SELECT *FROM SANJIAN_SPJWHERE SNO=S1第三章第三章 习题9 92021/6/320(1)授予用户U1对两个表的所有权限,并可给其他用户授权。GRANT ALL PRIVILEGESON TABLE 学生, 班级TO U1WITH GRANT OPTION(2)授予用户U2对学生表具有查询权限,对家庭住址具有更新权限。GRANT SELECT, UPDATE(家庭住址)ON TABLE 学生TO U2第四章第四章 习题6 62021/6/321(3)将对班级表的

13、查询权限授予所有用户。GRANT SELECTON TABLE 班级TO PUBLIC(4)将对学生表的查询、更新权限授予角色R1。GRANT SELECT, UPDATEON TABLE 学生TO R1(5)将角色R1授予用户U1,U1可继续授权给其他用户。GRANT R1TO U1WITH ADMIN OPTION第四章第四章 习题6 62021/6/322(1)用户王明对两个表有SELECT权限。GRANT SELECTON TABLE 部门, 职工TO 王明(2)用户李勇对两个表有INSERT和DELETE权限。GRANT INSERT, DELETEON TABLE 部门, 职工TO

14、 李勇(3)每个职工只对自己的记录有SELECT权限。无答案,仅仅使用GRANT语句无法做到第四章第四章 习题7 72021/6/323(4)用户刘星对职工表有SELECT权限,对工资字段有更新权限。GRANT SELECT, UPDATE(工资)ON TABLE 职工TO 刘星(5)用户张新具有修改这两个表的结构的权限。GRANT ALTERON TABLE 职工, 部门TO 张新第四章第四章 习题7 72021/6/324(6)用户周平具有对这两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限;GRANT SELECT, INSERT, UPDATE, DELETEON T

15、ABLE 职工, 部门TO 周平WITH GRANT OPTION第四章第四章 习题7 72021/6/325(7)用户杨兰具有查询每个部门职工的最高工资、最低工资、平均工资的权限,他不能查看每个人的工资;CREATE VIEW 部门工资统计(部门号, 部门名, 最高工资, 最低工资, 平均工资)ASSELECT 部门.部门号, 部门名, MAX(工资), MIN(工资), AVG(工资)FROM 部门, 职工WHERE 部门.部门号 = 职工.部门号GROUP BY 部门.部门号, 部门名GRANT SELECTON 部门工资统计TO 杨兰第四章第四章 习题7 72021/6/326假设有下

16、面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,部门名,经理名,电话),部门号为主码。用SQL语言定义这两个关系模式,要求:1)定义每个关系模式的主码;2)定义参照完整性约束;3)定义职工年龄不得超过60岁。第五章第五章 习题6 62021/6/327CREATE TABLE 部门(部门号 CHAR(4) PRIMARY KEY,部门名 VARCHAR(40),经理名 VARCHAR(10),电话 VARCHAR(11);CREATE TABLE 职工(职工号 CHAR(10) PRIMARY KEY,姓名 VARCHAR(10),年龄 INT

17、CHECK(年龄 =SELECT COUNT(*)FROM (SELECT * FROM MaleUNIONSELECT * FROM Female)AS Guest );第五章第五章 习题8 82021/6/329学生(学号,姓名,出生年月,系名,班号,宿舍区)班级(班号,专业名,系名,人数,入校年份)系(系名,洗好,系办公室地点,人数)学会(学会名,成立年份,地点,人数)函数依赖:学号姓名,学号出生年月,学号系名,学号班号,学号宿舍区。班号专业名,班号系名,班号人数,班号入校年份。系名系号,系号系名,系名办公地点,系名人数。学会名成立年份,学会名地点,学会名人数。专业名系名,(专业名,入校

18、年份)班号,系名宿舍区,(学号,学会名)入会年份第六章第六章 习题2 22021/6/330学生关系模式的极小函数依赖集为:学号姓名,学号出生年月,学号班号,班号系名,系名宿舍区。 学号班号,班号系名, 存在学号系名的传递函数依赖。 学号系名,系名宿舍区, 存在学号宿舍区的传递函数依赖。 班号系名,系名宿舍区, 存在班号宿舍区的传递函数依赖。候选码:学号,外部码:班号,系名。极小函数依极小函数依赖集及关系的集及关系的码2021/6/331班级关系模式的极小函数依赖集为:班号专业名,班号系名,班号人数,班号入校年份,专业名系名,(专业名,入校年份)班号。 班号专业名,专业名系名, 存在班号系名的

19、传递函数依赖。候选码:班号,(专业名,入校年份),外部码:系名。极小函数依极小函数依赖集及关系的集及关系的码2021/6/332系关系模式的极小函数依赖集为:系名系号,系号系名,系名办公地点,系名人数。不存在传递函数依赖。候选码:系名,系号,无外部码。学会关系模式的极小函数依赖集为:学会名成立年份,学会名地点,学会名人数。不存在传递函数依赖。候选码:学会名,无外部码。极小函数依极小函数依赖集及关系的集及关系的码2021/6/333试由ArmStrong公理系统推导出下面三条推理规则:(1)合并规则:若X Y,X Z,则有X YZ;设R的任一关系r中任意的两个元组t、s:若tX = sX,由X

20、Y,可得tY = sY;由X Z,可得tZ = sZ;因为tY = sY,tZ = sZ,所以tYZ = sYZ。所以X YZ成立,合并规则得证。第六章第六章 习题3 32021/6/334(2)伪传递规则:若X Y,WYZ,则有XWZ;设R的任一关系r中任意的两个元组t、s:若tXW = sXW,则有tX = sX,tW = sW; 由X Y,可得tY = sY;因为tW = sW,tY=sY ,所以tWY=sWY。由WYZ,可得tZ = sZ;所以XWZ成立,伪传递规则得证。第六章第六章 习题3 32021/6/335(3)分解规则:XY,Z Y,有XZ。设R的任一关系r中任意的两个元组t

21、、s:若tX = sX,由X Y,可得tY = sY;由Z Y,可得tZ = sZ;所以XZ成立,分解规则得证。第六章第六章 习题3 32021/6/336假设有关系模式R(A, B, C, D, E),回答下面问题:(1)若A是R的候选码,具有函数依赖BCDE,那么在什么条件下R是BCNF? 当属性组BC也是关系模式R的候选码时,R是BCNF。此时有:A BC,BC A成立。(2)如果存在函数依赖A B,BC D,DE A,列出R的所有码。 R的候选码包括:ACE,BCE,CDE。(3)如果(2)中的函数依赖成立,R属于3NF还是BCNF? 因为不存在传递函数依赖,所以R属于3NF。因为每个

22、函数依赖的决定因素都不包含码,所以R不属于BCNF。第六章第六章 习题6 62021/6/337(1)任何一个二目关系是属于3NF的。(2)任何一个二目关系是属于BCNF的。(3)任何一个二目关系是属于4NF的。(4)当且仅当函数依赖AB在R上成立,关系R(A, B, C)等于其投影R1(A, B)和R2(A, C)的连接。X(5)若R.AR.B, R.BR.C,则R.AR.C 。(6)若R.AR.B, R.AR.C,则R.AR.(B, C) 。(7)若R.BR.A, R.CR.A,则R.(B, C)R.A。(8)若R.(B, C)R.A,则R.BR.A, R.CR.A。X第六章第六章 习题7

23、 7,判,判错2021/6/338(1)如果R是BCNF关系模式,则R是3NF关系模式,反之则不然。 证明RBCNF,则R3NF(反证法)假设RBCNF,但R3NF。根据3NF的定义,可以得出:R中存在码X,属性组Y和非主属性Z,YX,ZY,使得XY,YZ成立。 YX, Y不是R的候选码。(R的任一候选码都能够完全函数确定R的每个属性) R中存在函数依赖YZ,ZY,而Y不包含码, RBCNF,与已知RBCNF矛盾,故假设不成立,R3NF。第六章第六章 习题8 8,证明明2021/6/339第六章第六章 习题8 8,证明明2021/6/340(2)如果R是3NF关系模式,则R一定是2NF关系模式

24、。证明:反证法。假设R3NF,但R2NF。根据2NF的定义,可以得出:R中存在非主属性Z部分函数依赖于候选码X,即根据部分函数依赖的定义,R中存在X的真子集X X,使得X Z成立。 R中存在码X,属性组X及非主属性Z, X X,ZX ,使得XX , XZ成立, R3NF,与已知R3NF矛盾,故假设不成立,R2NF。第六章第六章 习题8 8,证明明2021/6/341已知关系模式R中,U = A, B, C, D, E, G,F=ABC, CA, BCD, ACDB, DEG, BEC, CGBD, CEAG,求属性组BD关于函数依赖集F的闭包(BD)F+,并判断BDAC是否属于F+。 令X(0

25、)=AB; 计算X(1):逐一扫描F集合中的各个函数依赖,找左部为A、B或AB的函数依赖,得到一个:ABC。于是X(1)=ABC=ABC。 因为X(0) X(1),再找出左部为ABC子集的那些函数依赖,得到:CA, BCD。于是X(2)=ABCAD=ABCD。 因为X(1) X(2),再找出左部为ABCD子集的那些函数依赖,得到: ACDB, DEG。于是X(3)=ABCDBEG=ABCDEG。 因为X(3)已等于全部属性集合U,所以(BD)F+ =ABCDEG。 AC (BD)F+, BDAC属于F+。第六章第六章 附加附加题1 12021/6/342已知关系模式R中,U=A, B, C,

26、D, E, F=ABC, DE, CD,R的第一个分解为:R1(A, B, C),R2(C, D, E),第二个分解为:R1(A, B),R2(A, C, D, E)。判断这两个分解是否具有无损连接性。针对第一个分解,构造初始表,如下图所示。使用ABC:因为两个元组第一列的分量不相同,所以表不改变。使用DE :因为两个元组第四列的分量不相同,所以表不改变。由CD,可以把b14改成a4。再次使用DE :可以把b15改成a5。表中第一行已经全部变成a,所以此分解具有无损连接性。第六章第六章 附加附加题2 2ABCDER1a1a2a3b14b15R2b21b22a3a4a5a4a52021/6/34

27、3已知关系模式R中,U=A, B, C, D, E, F=ABC, DE, CD,R的第一个分解为:R1(A, B, C),R2(C, D, E),第二个分解为:R1(A, B),R2(A, C, D, E)。判断这两个分解是否具有无损连接性。针对第二个分解,构造初始表,如下图所示。由ABC,可以把b22改成a2,把b13改成a3。表中第二行已经全部变成a,所以此分解具有无损连接性。第六章第六章 附加附加题2 2ABCDER1a1a2b13b14b15R2a1b22a3a4a5a2a32021/6/344系包含班级包含学生包含教研室包含教员选修课程指导学校中有若干系,每个系有若干班级和教研室,

28、每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课可以由若干学生选修。请用E-R图画出此学校的概念模型。第七章第七章 习题7 71111nnnnnnm12021/6/345教员学生选修课程nm教授副教授研究生本科生指导指导系包含班级包含教研室11nn包含包含1n1n扩展的E-R图11nn2021/6/346产品组成零件存放仓库制成原材料某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按照所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请

29、用E-R图画出此工厂产品、零件、材料、仓库的概念模型。第七章第七章 习题8 8mnnm存放mnm12021/6/347试把习题7和习题8中的E-R图转换为关系模型。习题7:关系模式系(系号,系名,);班级(班号,班名,系号,);教研室(教研室号,教研室名,系号,);教员(教员号,教员名,职称,教研室号,);研究生(研究生号,研究生名,教员号,);学生(学号,姓名,班号,);课程(课程号,课程名,先修课,学分);选修(学号,课程号,成绩);实体的主码用下划线标出,实体的外码用深红色字体标出。第七章第七章 习题10102021/6/348试把习题7和习题8中的E-R图转换为关系模型。习题8:关系模

30、式产品(产品号,产品名,);零件(零件号,零件名,);组成(产品号,零件号,数量);原材料(材料号,材料名,仓库号);制成(零件号,材料号,数量);仓库(仓库号,仓库名,);零件存放(零件号,仓库号,数量);实体的主码用下划线标出,实体的外码用深红色字体标出。第七章第七章 习题10102021/6/349使用嵌入式SQL对学生-课程数据库中的表完成下述功能:(1)查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定,放在主变量中。(2)查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中指定,放在主变量中,然后根据用户的要求修改其中某些记录的成绩字段。答案参照“嵌入式SQ

31、L.c”文件。第八章第八章 习题1 12021/6/350对学生课程数据库编写存储过程,完成下述功能:(1)统计离散数学的成绩分布情况,即按照各分数段统计人数。CREATE PROCEDURE GradeStatistics(outA INT, outB INT, outC INT, outD INT, outE INT)BEGINSELECT COUNT(*)INTO outAFROM SC, CourseWHERE SC.Cno=Course.Cno AND Cname=离散数学 AND Grade=90 AND Grade=90 AND Grade=100END第八章第八章 习题2 2完

32、整代完整代码码参照参照ChangeGrade.sqlChangeGrade.sql2021/6/353假设关系R(A, B)和S(B, C, D)的数据分布情况如下:R有20 000个元组,S有1200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。(1)R上没有索引,SELECT *FROM R;500块(2)R中A为主码,A有3层B+树索引,SELECT * FROM R WHERE A = 10;3+1=4块(3)嵌套循环连接 ;因为不知道内存缓冲区的块数K和存放连接结果的块因子Mrs,所以此题无解。第九章第九章 习题2 22021/6/354第九

33、章第九章 习题2 22021/6/355对学生课程数据库,查询信息系学生选修了的所有课程名称。SELECT CnameFROM Student, Course, SCWHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Student.Sdept = IS试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。第九章第九章 习题3 32021/6/356关系代数语法树优化选择与选择的交换选择与笛卡尔积的交换选择与选择的交换选择与笛卡尔积的交换2021/6/357关系代数语法树优化投影与选

34、择操作的交换投影与笛卡尔积的分配投影与选择操作的交换投影与笛卡尔积的分配选择与笛卡尔积的组合2021/6/358优化后的关系代数语法树优化后的关系代数语法树优化后的关系代数语法树优化后的关系代数语法树2021/6/359说明下列查询语句的一种较优的处理方法(1)SELECT * FROM Teacher WHERE Tsex=女最优策略:全表扫描(2)SELECT * FROM Department WHERE Dno301最优策略:全表扫描(3)SELECT * FROM Work WHERE Year2000最优策略:全表扫描(4)SELECT * FROM Work WHERE Year

35、 2000 AND Salary 5000 最优策略:利用Year属性上的B+树索引(5)SELECT * FROM Work WHERE Year 2000 AND Salary 5000 画出查询语法树及用关系代数表示的语法树,并对关系代数语法树进行优化,画出优化后的语法树。第九章第九章 习题5 52021/6/361查询语法树2021/6/362初始的关系代数语法树2021/6/363优化后的关系代数语法树2021/6/364考虑下图所示的日志记录:第十章第十章 习题4 4序号日志序号日志1T1:开始8T3:开始2T1:写A,A=109T3:写A,A=83T2:开始10T2:回滚4T2:

36、写B,B=911T3:写B,B=75T1:写C,C=1112T4:开始6T1:提交13T3:提交7T2:写C,C=1314T4:写C,C=122021/6/365(1)如果系统故障发生在14之后,说明那些事务需要重做,那些事务需要回滚。T1和T3需要重做,T4需要回滚;(2)如果系统故障发生在10之后呢?T1需要重做,T3需要回滚;(3)如果系统故障发生在9之后呢?T1需要重做,T2和T3需要回滚;(4)如果系统故障发生在7之后呢?T1需要重做,T2需要回滚。第十章第十章 习题4 42021/6/366假设开始时A、B、C的值都是0;(1)如果系统故障发生在14之后,写出系统恢复后A、B、C的

37、值。A = 8,B = 7,C = 11;(2)如果系统故障发生在12之后呢?A = 10,B = 0,C = 11;(3)如果系统故障发生在10之后呢?A = 10,B = 0,C = 11;第十章第十章 习题5 52021/6/367(4)如果系统故障发生在9之后呢?A = 10,B = 0,C = 11;(5)如果系统故障发生在7之后呢?A = 10,B = 0,C = 11;(6)如果系统故障发生在5之后呢?A = 0,B = 0,C = 0。第十章第十章 习题5 52021/6/368第十一章第十一章 习题9 92021/6/369T1SLock AY=A=0Unlock AXLoc

38、k AA=Y+2写回A(=2)Unlock AT2SLock A等待等待等待Y=A=2Unlock AXLock AA=Y*2写回A(=4)Unlock AT3SLock A等待等待等待Y=A=4Unlock AXLock AA=Y*2写回A(=16)Unlock A最后结果:A=162请给出一个可串行化的调度2021/6/3703请给出一个非串行化的调度T1SLock AY=A=0Unlock AXLock A等待A=Y+2写回A(=2)Unlock AT2SLock AY=A=0Unlock AXLock A等待等待等待A=Y*2写回A(=0)Unlock AT3SLock A等待Y=A=

39、2Unlock AXLock AA=Y*2写回A(=4)Unlock A最后结果:A=02021/6/371(4 4)若这)若这3 3个事务都遵守两段锁协议,请给出一个不个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。产生死锁的可串行化调度。T1SLock AY=A=0XLock AA=Y+2写回A(=2)Unlock AT2SLock A等待等待Y=A=2XLock AA=Y*2写回A(=4)Unlock AT3SLock A等待等待等待Y=A=4XLock AA=Y*2写回A(=16)Unlock A最后结果:A=162021/6/372(5 5)若这)若这3 3个事务都遵守两

40、段锁协议,请给出一个会个事务都遵守两段锁协议,请给出一个会产生死锁的调度。产生死锁的调度。T1SLock AY=A=0XLock A等待T2SLock AY=A=0XLock A等待T3SLock AY=A=0XLock A等待2021/6/373今有三个事务的一个调度:r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?为什么?该调度是冲突可串行化的调度。证明如下:(1)交换r1(A)和其后若干操作的顺序,得到:r3(B)w3(B)r2(B)r2(A)w2(B)r1(B)r1(A)w1(A);(2)三个事务执行顺序变为:T3T2T1

41、,这是一个串行调度,因此原调度是冲突可串行化调度。第十一章第十一章 习题10102021/6/374考虑如下的调度,说明这些调度之间的包含关系。(1)正确的调度;(2)可串行化的调度;(3)遵守两阶段封锁(2PL)的调度;(4)串行调度。包含关系如下:串行调度 遵守两阶段封锁的调度 可串行化的调度 正确的调度。第十一章第十一章 习题13132021/6/375考虑T1和T2两个事务:T1:R(A);R(B);B=A+B;W(B)T2:R(B);R(A);A=A+B;W(A)(1)改写T1和T2,增加加锁操作和解锁操作,并要求遵守两阶段封锁协议。T1:Slock A; R(A); Slock B

42、; R(B); B=A+B; Xlock B; W(B); Unlock A; Unlock B;T2:Slock B; R(B); Slock A; R(A); A=A+B; Xlock A; W(A); Unlock B; Unlock A。第十一章第十一章 习题14142021/6/376(2 2)说明)说明T1T1和和T2T2的执行是否会引起死锁,给出的执行是否会引起死锁,给出T1T1和和T2T2的一个调度并说明之。的一个调度并说明之。会的,示例如下:会的,示例如下:T1SLock AR(A)Slock BR(B)B=A+BXLock B等待等待T2SLock BR(B)Slock AR(A)A=A+BXLock A等待2021/6/377 用于科普,若有不用于科普,若有不当之处,请指正,感当之处,请指正,感谢您的下载。谢您的下载。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号