意歐库发制8的详爱座制萄 10.1事务及并发控制的基本概念 10.2封锁机制 10.3 SQL Server的并发控制机制 2021/1/21
第10章数据库并发控制及SQL Server的并发控制机制 2021/1/21 10.1 事务及并发控制的基本概念 10.2 封锁机制 10.3 SQL Server的并发控制机制
意歐库发制8的详爱座制萄 在多用户和网络环境下,数据库是一个共享资源,多个 用户或应用程序同时对数据库的同一数据对象进行读写操 作,这种现象称为对数据库的并发操作。显然并发操作可 以充分利用系统资源,提高系统效率。虽然如此,但是如 果对并发操作不进行控制会造成一些错误。对并发操作进 行的控制称为并发控制。并发控制机制是衡量一个DBMS的 重要性能指标之 2021/1/21
第10章数据库并发控制及SQL Server的并发控制机制 2021/1/21 在多用户和网络环境下,数据库是一个共享资源,多个 用户或应用程序同时对数据库的同一数据对象进行读写操 作,这种现象称为对数据库的并发操作。显然并发操作可 以充分利用系统资源,提高系统效率。虽然如此,但是如 果对并发操作不进行控制会造成一些错误。对并发操作进 行的控制称为并发控制。并发控制机制是衡量一个DBMS的 重要性能指标之一
意歐库发制8的详爱座制萄 10.1事务及并发控制的基本概念 10.11事务的概念 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要 么全不做,是一个不可分割的工作单位 事务的开始与结束可以由用户显式定义。如果用户没有显式地定义事 务,则由DBMS按默认自动划分事务。 在SQL语言中,定义事务的语句有三条: BEGINTRANSACTION: 事务通常是以 BEGINTRANSACTI0N开始, COMMIT COMMIT的作用是提交事务的所有操作,事务提交是将事务中所有 对数据的更新写回到磁盘上的物理数据库中去,事务正常结束。 ■ ROllbacK; ROLLBACK的作用是回滚,即在事务运行的过程中发生了某种故障, 事务不能继续执行,系统将事务中对数据库的所有已完成的操作全 部撤消,回滚到事务开始时的状态。 2021/1/21
第10章数据库并发控制及SQL Server的并发控制机制 2021/1/21 10.1 事务及并发控制的基本概念 10.1.1 事务的概念 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要 么全不做,是一个不可分割的工作单位。 事务的开始与结束可以由用户显式定义。如果用户没有显式地定义事 务,则由DBMS按默认自动划分事务。 在SQL语言中,定义事务的语句有三条: ▪ BEGINTRANSACTION; 事务通常是以BEGINTRANSACTION开始, ▪ COMMIT; COMMIT的作用是提交事务的所有操作,事务提交是将事务中所有 对数据的更新写回到磁盘上的物理数据库中去,事务正常结束。 ▪ ROLLBACK ; ROLLBACK的作用是回滚,即在事务运行的过程中发生了某种故障, 事务不能继续执行,系统将事务中对数据库的所有已完成的操作全 部撤消,回滚到事务开始时的状态
意歐库发制8的详爱座制萄 10.12事务的特性 事务具有4个特性,即原子性、一致性、隔离性和持续性 令原子性( Atomicity) 事务中包括的诸操作要么都做,要么都不做。也就是说,事务是作为 个整体单位被处理,不可以被分割。 令一致性( Consistency) 事务执行的结果必须使数据库处于一个一致性状态。当数据库中只包 含成功事务提交的结果时,就说数据库处于一致性状态。 令隔离性(1 solation) 个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用 的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干 令持续性( Durability) 持续性也称永久性( Permanence)。持续性指一个事务一旦提交,它对 数据库中数据的改变就是永久性的,接下来的其他操作或故障不应该对 其执行结果有任何影响。 2021/1/21
第10章数据库并发控制及SQL Server的并发控制机制 2021/1/21 10.1.2 事务的特性 事务具有4个特性,即原子性、一致性、隔离性和持续性。 ❖ 原子性(Atomicity) 事务中包括的诸操作要么都做,要么都不做。也就是说,事务是作为 一个整体单位被处理,不可以被分割。 ❖ 一致性(Consistency) 事务执行的结果必须使数据库处于一个一致性状态。当数据库中只包 含成功事务提交的结果时,就说数据库处于一致性状态。 ❖ 隔离性(1solation) 一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用 的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干 扰。 ❖ 持续性(Durability) 持续性也称永久性(Permanence)。持续性指一个事务一旦提交,它对 数据库中数据的改变就是永久性的,接下来的其他操作或故障不应该对 其执行结果有任何影响
意歐库发制8的详爱座制萄 10.1.3并发操作可能产生的问题 并发操作不加以限制,会产生数据不一致性问题,这种问题共 有三类 令丢失更新 假设某产品库存量为50,现在购入该产品100个,执行入库操 作,库存量加10;用掉40个,执行出库操作,库存量减40。分别 用T1和T2表示入库和出库操作任务 例如,同时发生入库(T1)和出库(T2)操作,这就形成并发 操作。∏1读取库存后,T2也读取了同一个库存;T1修改库存,回 写更新后的值;T2修改库存,也回写更新后的值。此时库存为T2 回写的值,T1对库存的更新丢失。如表10.1所示T1和T2的并发操 作执行顺序,发生了“丢失更新”错误。 2021/1/21
第10章数据库并发控制及SQL Server的并发控制机制 2021/1/21 10.1.3 并发操作可能产生的问题 并发操作不加以限制,会产生数据不一致性问题,这种问题共 有三类。 ❖ 丢失更新 假设某产品库存量为50,现在购入该产品100个,执行入库操 作,库存量加100;用掉40个,执行出库操作,库存量减40。分别 用T1和T2表示入库和出库操作任务。 例如,同时发生入库(T1)和出库(T2)操作,这就形成并发 操作。T1读取库存后,T2也读取了同一个库存;T1修改库存,回 写更新后的值;T2修改库存,也回写更新后的值。此时库存为T2 回写的值,T1对库存的更新丢失。如表10.1所示T1和T2的并发操 作执行顺序,发生了“丢失更新”错误