三种事务执行方式:
(1)串行执行:每个时刻只有一个事务运行,以事务为单位,每次执行完一个事务才能执行下一个事务。
(2)轮流交叉执行:在单处理机系统中,每个事务交叉执行,每次处理机只处理一个事务。当一个事务没执行完,可以执行下一个事务。
(3)同时并发执行:在多处理机系统中,多处理机同时运行多个事务,使得事务之间真正的实现并发运行。
(注:后面讨论的并发处理都是以单处理机为基础的)
一.并发控制概述
引言:事务之间的并发处理可能导致事务的ACID特性遭到破坏。所以引入并发控制的概念以保证事务的隔离性和一致性。
并发操作破坏了事务的隔离性导致数据不一致:
• 丢失修改:两个事务T1,T2同时读入同一数据后,T2提交的结果破坏了T1提交的结果。
• 读 “ 脏 ”数据:T1修改了一个数据并将数据写入磁盘,T2读入这个数据,之后T1又将修改的数据恢复为初始值,此时T2读的数据与数据库中的数据不一致。
• 不可重复读:T1读入一个数据,T2对T1读的数据进行修改,T1无法再现前一次读的结果。
解决办法: 封锁,时间戳,乐观控制法,多版本并发控制。