第十章数据库并发控制及SQL Server并发控制.ppt

第十章数据库并发控制及SQL Server并发控制.ppt

ID:48146740

大小:135.50 KB

页数:23页

时间:2020-01-17

第十章数据库并发控制及SQL Server并发控制.ppt_第1页
第十章数据库并发控制及SQL Server并发控制.ppt_第2页
第十章数据库并发控制及SQL Server并发控制.ppt_第3页
第十章数据库并发控制及SQL Server并发控制.ppt_第4页
第十章数据库并发控制及SQL Server并发控制.ppt_第5页
资源描述:

《第十章数据库并发控制及SQL Server并发控制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、10.1事务及并发控制的基本概念10.2封锁机制10.3SQLServer的并发控制机制8/31/2021在多用户和网络环境下,数据库是一个共享资源,多个用户或应用程序同时对数据库的同一数据对象进行读写操作,这种现象称为对数据库的并发操作。显然并发操作可以充分利用系统资源,提高系统效率。虽然如此,但是如果对并发操作不进行控制会造成一些错误。对并发操作进行的控制称为并发控制。并发控制机制是衡量一个DBMS的重要性能指标之一。8/31/202110.1事务及并发控制的基本概念10.1.1事务的概念所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可

2、分割的工作单位。事务的开始与结束可以由用户显式定义。如果用户没有显式地定义事务,则由DBMS按默认自动划分事务。在SQL语言中,定义事务的语句有三条:BEGINTRANSACTION;事务通常是以BEGINTRANSACTION开始,COMMIT;COMMIT的作用是提交事务的所有操作,事务提交是将事务中所有对数据的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK;ROLLBACK的作用是回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤消,回滚到事务开始时的状态。8/31/202110.1.2事务的

3、特性事务具有4个特性,即原子性、一致性、隔离性和持续性。原子性(Atomicity)事务中包括的诸操作要么都做,要么都不做。也就是说,事务是作为一个整体单位被处理,不可以被分割。一致性(Consistency)事务执行的结果必须使数据库处于一个一致性状态。当数据库中只包含成功事务提交的结果时,就说数据库处于一致性状态。隔离性(1solation)一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性(Durability)持续性也称永久性(Permanence)。持续性指一个事务一旦提交,它对

4、数据库中数据的改变就是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。8/31/202110.1.3并发操作可能产生的问题并发操作不加以限制,会产生数据不一致性问题,这种问题共有三类。丢失更新假设某产品库存量为50,现在购入该产品100个,执行入库操作,库存量加100;用掉40个,执行出库操作,库存量减40。分别用T1和T2表示入库和出库操作任务。例如,同时发生入库(T1)和出库(T2)操作,这就形成并发操作。T1读取库存后,T2也读取了同一个库存;T1修改库存,回写更新后的值;T2修改库存,也回写更新后的值。此时库存为T2回写的值,T1对库存的更新丢失。

5、如表10.1所示T1和T2的并发操作执行顺序,发生了“丢失更新”错误。8/31/2021顺序任务操作库存量1T1读库存量502T2读库存量503T1库存量=50+1004T2库存量=50-405T1写库存量1506T2写库存量10表10.1 发生丢失更新的过程8/31/2021读“脏数据”当T1和T2并发执行时,在T1对数据库更新的结果没有提交之前,T2使用了T1的结果,而在T2操作之后T1又回滚,这时引起的错误是T2读取了T1的“脏数据”。表10.2发生读“脏数据”的过程顺序任务操作库存量1T1读库存量502T1库存量=50+1003T1写库存量1504T2读库存量1

6、505T2库存量=150-407T1ROLLBACK7T2写库存量108/31/2021不可重复读当T1读取数据A后,T2执行了对A的更新,当T1再次读取数据A(希望与第一次是相同的值)时,得到的数据与前一次不同,这时引起的错误称为“不可重复读”。表10.3发生“不可重复读”的过程顺序任务操作库存量A入库量B1T1读A=50501002T1读B=1003T1求和=50+1004T2读B=100505T2执行B=B*46T2回写B=400504007T1读A=50508T1读B=4004009T1求和=450(验算不对)8/31/2021并发操作之所以产生错误,是因为任务

7、执行期间相互干扰造成的。当将任务定义成事务,事务具有的特性(特别是隔离性)得以保证时,就会避免上述错误的发生。但是,如果只允许事务串行操作会降低系统的效率。所以,多数DBMS采用事务机制和封锁机制进行并发控制,既保证了数据的一致性,又保障了系统效率。8/31/202110.2封锁机制10.2.1封锁及锁的类型封锁机制是并发控制的主要手段。封锁具有3个环节:第一个环节是申请加锁;第二个环节是获得锁;第三个环节是释放锁。为了达到封锁的目的,在使用时事务应选择合适的锁,并要遵从一定的封锁协议。基本的封锁类型有两种:排它锁(ExclusiveLo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。