数据库系统原理考试必背-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、数据库的保护分为哪四个子系统?

安全性检查、完整性检查、并发控制子系统、恢复管理子系统。