第八章并发控制 本章内容提要 保证数据一致性是对数据库的最基本的要求。薮据库 的重要特征是它能为多个用户提供数据共享。因此 DBMS必须提供并发控制杋制來保证数据库的一致性。 数据库的并发控制以事务为单位,通常使用封锁技 术实现并发控制。 ·本章介绍两类最常用的封锁和三级封锁协议。不同 的封锁和不同级别的封锁协议所提供的系统一致性保证 是不同的,提供数据共享度也是不同的。 对数据对象施加封锁,会带来活锁和死锁冋题,并 发控制杋制必须提供适合数据库特点的解决方法
本章内容提要 • 保证数据一致性是对数据库的最基本的要求。数据库 的重要特征是它能为多个用户提供数据共享。因此, DBMS必须提供并发控制机制来保证数据库的一致性。 • 数据库的并发控制以事务为单位,通常使用封锁技 术实现并发控制。 • 本章介绍两类最常用的封锁和三级封锁协议。不同 的封锁和不同级别的封锁协议所提供的系统一致性保证 是不同的,提供数据共享度也是不同的。 • 对数据对象施加封锁,会带来活锁和死锁问题,并 发控制机制必须提供适合数据库特点的解决方法。 第八章 并发控制
第八章并发控制 本章量点 数据库并发控制的基本原理与技术 封锁协议 两段锁协议 本章难痕: 封锁协议 两段锁协议
本章重点: 数据库并发控制的基本原理与技术 封锁协议 两段锁协议 本章难点: 封锁协议 两段锁协议 第八章 并发控制
第八章并发控制 ·数据库是一个共享资源,可以供多个用户使用。允许 多个用户同时使用的数据库系统称为多用户数据库系 统 为了充分利用系统资源,发挥数据库共享资源的特点, 应该允许多个事务并行的执行。 当多个用户并发地存取数据库时就会产生多个事务同 时存取同一数据的情况。若对并发操作不加控制就可 能会存取和存储不正确的数据,破坏数据库的一致性 所以DBMS必须提供并发控制机制。 ·并发控制机制是衡量一个数据库管理系统性能的重要 标志之一
• 数据库是一个共享资源,可以供多个用户使用。允许 多个用户同时使用的数据库系统称为多用户数据库系 统。 • 为了充分利用系统资源,发挥数据库共享资源的特点, 应该允许多个事务并行的执行。 • 当多个用户并发地存取数据库时就会产生多个事务同 时存取同一数据的情况。若对并发操作不加控制就可 能会存取和存储不正确的数据,破坏数据库的一致性。 所以DBMS必须提供并发控制机制。 • 并发控制机制是衡量一个数据库管理系统性能的重要 标志之一。 第八章 并发控制
第八章并发控制 8并控制概迷 ·例:考虑飞机订票系统中的一个活动序列 λ甲售票点(甲事务)读出某航班的机票余额设A76 2乙售票点(乙事务)读出同一航班的机票余额也为 76 3甲售票点卖出一张机票修改余额4A所以A为1把H 写回数据库 f乙售票点也卖出一张机票修改余额←A所以为5 把泻回数据库 结果明明卖出两张机票,数据库中机票余额只减少〃
• 例1:考虑飞机订票系统中的一个活动序列: 1.甲售票点(甲事务)读出某航班的机票余额A,设A=16. 2.乙售票点(乙事务)读出同一航班的机票余额A,也为 16. 3.甲售票点卖出一张机票,修改余额A←A-1.所以A为15,把A 写回数据库. 4.乙售票点也卖出一张机票,修改余额A←A-1.所以A为15, 把A写回数据库. 结果明明卖出两张机票,数据库中机票余额只减少1 。 第八章 并发控制 8.1 并发控制概述
第八章并发控制 8并发控制概迷 ·并发操作带来的数据不一致性包括三类: (A)丢失修改(atha) (b)不可重复读(mhan (a)读“脏”数据(a乡~ah)
• 并发操作带来的数据不一致性包括三类: (A)丢失修改(lost update) (B)不可重复读(non-repeatable read) (C)读“脏”数据(dirty read) 第八章 并发控制 8.1 并发控制概述
第八章并发控制 8并控制概迷 件丢失修改 两个事务亐和读入同一数据并修改,7提交的结果破坏 了提交的结果,导致行的修改被丢失
第八章 并发控制 8.1 并发控制概述 (A)丢失修改 两个事务T1和T2读入同一数据并修改,T2提交的结果破坏 了T1提交的结果,导致T1的修改被丢失
第八章并发控制 8并发控制概迷 TI T2 (1)读A=16 (2 读A=16 (A<A-1 写回A=15 A<A-1 (A)丢失修改 写回A=15
第八章 并发控制 8.1 并发控制概述 T1 T2 ⑴ 读A=16 ⑵ 读A=16 ⑶ A A-1 写回A=15 ⑷ A A-1 写回A=15 (A)丢失修改
第八章并发控制 8并发控制概迷 (B)不可重复读 ·不可重复读是指事务读取数据后,事务T2执行更新 操作,使无法再现前一次读取结果
第八章 并发控制 8.1 并发控制概述 (B)不可重复读 • 不可重复读是指事务T1读取数据后,事务T2执行更新 操作,使T1无法再现前一次读取结果
第八章并发控制 8并发控制概迷 T1 T2 (1)读A=50 读B=100 求和=150 读B=100 B<B×2 写回B=200 (3读A=50 读B=200 求和=250
第八章 并发控制 8.1 并发控制概述 T1 T2 ⑴ 读A=50 读B=100 求和=150 ⑵ ⑶ 读A=50 读B=200 求和=250 读B=100 BB×2 写回B=200
第八章并发控制 8并控制概迷 ·(C)读“脏”数据 TI T2 (1)读C=100 C<C×2 写回C=200 读C=200 (3)ROLLBACK C恢复为100
第八章 并发控制 8.1 并发控制概述 • (C)读“脏”数据 T1 T2 ⑴ 读C=100 CC×2 写回C=200 ⑵ ⑶ ROLLBACK C恢复为100 读C=200