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