数据库系统原理考试必背-10 数据库的并发控制
1、数据库的并发控制可能带来的问题有?
①丢失修改:比如事物A和B同时提交订票订单,但是余票的数量没有同步更新。
②不可重复读:事物T1两次读取到的数据不一致,则称为不可重复读,也就是两次数据求和验证错误
③读“脏”数据:数据还没来得回滚(RollBack)撤回被另一事物读取到了。
1.1、死锁的基本概念(稍微记忆即可):
死锁的诊断方法:超时法,等待图法。
死锁的预防方法:一次封锁法,顺序封锁法。
4、叙述一下封锁的概念
封锁是指,当事物T对一个数据对象例如表或记录进行访问以前,先向系统发出请求,对其加锁,这样事物T就对该数据对象有了一定的控制权,在事物T释放它的锁之前,其他对事物都不能更新该数据对象。封锁是实现并发控制的一个重要技术。
2、什么是死锁?
死锁是指事物T1对数据R1封锁,事物T2又对数据R2封锁,此时事物T1又向数据R2申请封锁,但是事物T2也向数据R1申请封锁,于是两个锁一直在等待对方释放锁,相互谦让,于是事物T1和事物T2均处于等待状态而不能结束,这就形成了死锁。
3、什么是活锁?活锁的避免方法是什么?
事物T1封锁了数据R,事物T2又申请加锁数据R,于是等待着T1的释放,此时T3又申请加锁数据R,当T1释放了R上的封锁后首先批准了T3,接着可能又批准T4申请的封锁,T2可能一直等待下去,一直都对数据R上不了锁,避免活锁的方法是采用先来先服务的策略。
4、叙述数据库中产生死锁的原因?如何解决死锁?
⑴封锁会引起死锁的产生,死锁是指事物T1对数据R1封锁,事物T2又对数据R2封锁,此时事物T1又向数据R2申请封锁,但是事物T2也向数据R1申请封锁,于是两个锁一直在等待对方释放锁,相互谦让,比如事物T1和T2均处于等待状态而不能结束,这就形成了死锁。
⑵解决死锁的方法:
⑴一类方法是采用采取一定的措施来预防死锁的发生
⑵另一类方法是允许产生死锁,但采用一定手段定期诊断系统中有无死锁,若有则解除之。
3、基本封锁的类型有哪两种?试述他们的含义。(记忆+理解)★
⑴排他锁(X锁,写锁):当事物T对数据对象A加X锁时,此时T对A既可读,又可写,但是其他事物则不允许对该数据对象加任何锁
⑵共享锁(S锁,读锁):当事物T对数据对象A加S锁时,此时T对A只能读,其他事物也能对A加S锁,而不能加X锁,直到T释放A上的锁。
4、数据库的保护分为哪四个子系统?
安全性检查、完整性检查、并发控制子系统、恢复管理子系统。