多事务执行方式
串行执行、交叉并发方式、同时并发方式
为什么要进行并发控制?
当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏是事务的一致性和数据库的一致性。所以数据库管理系统必须提供并发控制机制。
数据库管理系统中并发控制机制的责任:
保证事务的隔离性和一致性,DBMS需要对并发操作进行正确调度。
并发操作带来的数据不一致性主要有:
丢失修改、不可重复读、读“脏”数据。
并发控制技术:
封锁。
基本的封锁类型有两种:
排它锁(写锁、X锁),共享锁(读锁、S锁)。
封锁类型的相容矩阵:
三级封锁协议:
1级封锁协议:
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
正常结束(COMMIT) 非正常结束(ROLLBACK)
1级封锁协议可防止丢失修改
在1级封锁协议中,如果是读数据,不需要加锁的,所以它不能保证可重 复读和不读“脏”数据。

本文详细介绍了数据库并发控制的重要性,阐述了并发操作可能引发的数据不一致性问题,如丢失修改、不可重复读和读“脏”数据。重点讲解了封锁机制,包括排它锁和共享锁,以及三级封锁协议。同时,讨论了死锁的概念、预防方法和诊断解除策略,如超时法和等待图法。最后,提到了两段锁协议在确保并发调度可串行性方面的作用,以及封锁粒度的选择原则和多粒度封锁协议的应用。
最低0.47元/天 解锁文章
896

被折叠的 条评论
为什么被折叠?



