安徽工业大学数据库第十一章习题解答.doc

安徽工业大学数据库第十一章习题解答.doc

ID:56718437

大小:21.00 KB

页数:4页

时间:2020-07-06

安徽工业大学数据库第十一章习题解答.doc_第1页
安徽工业大学数据库第十一章习题解答.doc_第2页
安徽工业大学数据库第十一章习题解答.doc_第3页
安徽工业大学数据库第十一章习题解答.doc_第4页
资源描述:

《安徽工业大学数据库第十一章习题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章并发控制1.并发操作可能会产生哪几类数据不一致性?用什么方法能避免各种不一致性的情况。答:数据库的并发操作所带来的数据不一致性有三类:丢失更新问题、不一致性分析问题和读“脏”数据问题。对于并发操作带来的问题,通常采用并发控制的方法调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其他事务的干扰。2.为什么DML锁只能提供解除S封锁的操作,而不提供解除X封锁的操作。答:为防止由事务的ROLLBACK操作引起的丢失更新操作,X封锁必须保留到事务终点。即X封锁不是用UNLOCK操作解

2、除的,而是在事务结束的语义中包含了对X封锁的解除,因此,DML不提供解除X封锁的操作。而为增加事务并发操作的程度,未到事务终点时,用户可以使用DML提供的专门解除S封锁的操作,随时解除事务的S封锁,这是因为被S封锁的数据不可能是未提交的修改。3.为什么有些封锁需保留到事务终点,而有些封锁可随时解除。答:为防止由事务的ROLLBACK操作引起的丢失更新操作,X封锁必须保留到事务终点。而被S封锁的数据不可能是未提交的修改,因此可以随时解除事务的S封锁,达到增加事务并发操作的程度。4.设T1、T2、T3

3、是如下的三个事务:T1:A:=A+2;T2:A:=A*2;T3:A:=A**2(A←A2)设A的初值为0。⑴若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列举出来;⑵请给出一个可串行化的调度,并给出执行结果;⑶请给出一个非串行化的调度,并给出执行结果;⑷若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;⑸若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。解:⑴A的最终结果可能有2、4、8、16。因为串行执行次序有T1→T2→T3、T1→T3→T2、T2→T1→T3

4、、T2→T3→T1、T3→T1→T2、T3→T2→T1,对应的执行结果是16、8、4、2、4、2。⑵T1T2T3SlockAY=A=0UnlockAXlockASlockAA=Y+2等待写回A(=2)等待UnlockA等待Y=A=2UnlockAXlockASlockAA=Y*2等待写回A(=4)等待UnlockA等待Y=A=4UnlockAXlockAA=Y**2写回A(=16)UnlockA最后结果A为16,是可串行化的调度。⑶T1T2T3SlockAY=A=0UnlockASlockAY=A

5、=0XlockA等待UnlockAA=Y+2写回A(=2)SlockAUnlockA等待Y=A=2UnlockAXlockAXlockA等待A=Y**2等待写回A(=16)等待UnlockAA=Y*2写回A(=0)UnlockA最后结果A为0,为非串行化的调度。⑷T1T2T3SlockAY=A=0XlockAA=Y+2SlockA写回A(=2)等待UnlockA等待Y=A=2XlockAUnlockA等待SlockAA=Y*2等待写回A(=4)等待UnlockA等待Y=A=4UnlockAXloc

6、kAA=Y**2写回A(=16)UnlockAUnlockA⑸T1T2T3SlockAY=A=0SlockAY=A=0XlockA等待XlockA等待SlockAY=A=0XlockA等待

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。