文档详情

数据库原理第11章并发控制.pptx

发布:2022-02-17约1.12千字共45页下载文档
文本预览下载声明
第十一章 并发控制;11.1 数据库的并发操作带来的问题;并发操作过程;举例: 银行转帐:事务Ti从帐户A过户100¥到帐户B 。 T: read(A); A := A – 100; write(A); read(B); B := B + 100; write(B); read(X):从数据库传送数据项X到事务的工作区中。 write(X):从事务的工作区中将数据项X写回数据库。;1、丢失更新问题;2、不可重复读问题;3、“脏数据”的读出;并发控制需要靠数据库的并发控制子系统来解决。如;11.2 封锁; 1、封锁类型; 排他型封锁(X封锁);共享型封锁(S封锁);封锁类型对比:; 2、封锁粒度;2、封锁粒度;3、封锁协议;举例:;SQL Server的锁定方式 ;SQL Server的各种物理锁粒度 ;; 可串行化调度;调度1:串行调度,T2跟在T1之后 执行后 A:¥855, B:¥2145 调度2:串行调度,T1跟在T2之后 执行后 A:¥850, B:¥2150 ;调度3:并发调度 等价于调度1,执行后 A:¥855, B:¥2145;调度4:并发调度 不等价于任何串行调度, 执行后 A:¥950, B:¥2100 ;11.4 两段封锁法;示例 Slock(A)…Slock(B)…Xlock(C)…unlock(A)… unlock(C)…unlock(B)遵从两段锁协议。 Slock(A)…unlock (A)…Slock(B)…Xlock(C)… unlock(C)…unlock(B)不遵从两段锁协议。 遵从两段锁协议仍可能发生死锁; 两段封锁法和可串行化调度的关系;举例:;封锁转换;11.5 活锁与死锁;11.5 活锁与死锁;11.5 活锁与死锁; 11.5 活锁与死锁;发生死锁的条件: ① 互斥条件:事务请求对资源的独占控制。 ② 等待条件:事务已持有一定资源,又去申请并等待其它资源。 ③ 非抢占条件:直到资源被持有它的事务释放之前,不可能将该资源强制从持有它的事务夺去。 ④ 循环等待条件:存在事务相互等待的等待圈。 ;11.5 活锁与死锁;11.5 活锁与死锁;11.5 活锁与死锁;死锁解除:发现死锁时,系统采取行动从死锁中解除。 选择牺牲者 应使事务回滚带来的代价最小。 回滚 彻底回滚,或只回滚到可以解除死锁处。 ;举例:;练习;练习;时间;时间;时间;时间
显示全部
相似文档