第四节 数据库的并发控制技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四节 数据库的并发控制技术

第四节 数据库的并发控制技术 数据库是一个共享资源,可以供许多用户使用。各个用户程序(通常为一个事务)可以一个一个地串行执行,即每个时刻只有一个用户程序运行,执行数据库的存取操作,其它用户程序必须等到这个用户程序结束后方能对数据库存取。但是,由于用户程序在执行过程中随着时间的不同需要不同的资源,有时需要CPU,有时需要访问磁盘,有时需要I/O,有时需要通讯等,如果只让一个用户程序运行,而其它用户闲置等待,则导致许多系统资源在大部分时间内处于闲置状态。 因此,为了充分利用系统资源,发挥数据库共享资源的特点,应该允许各个用户并行地存取数据。但这样就会产生多个用户程序并发存取同一数据的情况。若对并发操作不加控制就可能导致存取和存储不正确的数据,从而破坏数据库的一致性。 所以DBMS必须提供并发控制机制,且并发控制机制的好坏是衡量一个DBMS性能的重要指标之一。 一.事务及其特性 DBMS的并发控制是以事务(transaction)为单位进行的,因此,本节先介绍事务的概念及其特性。 在多用户环境中用户程序不断访问数据库中的数据,构成了若干操作序列,在这些操作序列中,有些操作必须作为一个整体来执行,这些作为一个整体来执行的操作序列称为一个事务(Transaction)。即事务是用户定义的一组操作序列的集合,是数据恢复和并发控制的基本单位。数据库系统在执行事务时,要么执行事务中全部操作,要么一个操作都不执行。一个应用程序往往由若干个独立的事务组成。在应用程序中,事务的开始与结束可以由用户显示地控制。如果用户没有显示地定义事务,则由DBMS自动地按照缺省方式划分事务。在SQL中,用户显示定义事务的语句有如下3条: 1、BEGIN TRANSACTION,该语句显示地定义一个事务的开始。 2、COMMIT,该语句显示地提交一个事务,并表示该事务已正常结束。 3、ROLLBACK,该语句显示地回滚一个事务,且表示事务因执行失败而结束。 所谓提交事务,就是将该事务对数据库的所有更新操作结果永久地保存到磁盘上的物理数据库中去。 所谓回滚事务,就是撤消该事务对数据库的所有更新操作,使数据库恢复到该事务开始时的状态。 由以上可知,用户若要显示地定义事务,必须以BEGIN TRANSATION开始,而以COMMIT 或 ROLLBACK结束。 事务具有四个特性,即原子性、一致性、隔离性和持续性,又常简称为ACID特性: 1、原子性 :即一个事务是不可分割的数据库逻辑工作单位。 2、一致性 :事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。 3、隔离性 :一个事务的执行不能被其它事务干扰。 4、持续性 :持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,其它操作或故障不对其产生任何影响。 二.数据库的并发控制 DBMS的并发控制是以事务为单位进行的。数据库在执行事务时,要么执行事务中的全部操作,要么一个操作都不执行。 当有多个事务对数据库进行操作时,如果对数据库进行操作的各个事务按顺序执行,即一个事务执行完全结束后,另一个事务才开始,则称这种执行方式为串行访问(Serial access)。 如果DBMS可以同时接纳多个事务,事务可以在时间上重叠执行,则称这种执行方式为并发访问(Concurrent access)。 在单CPU系统中,同一时间只能有一个事务占用CPU,若各个事务交叉使用CPU,则称这种并发方式为交叉并发。 在多CPU系统中,可以允许多个事务同时占用CPU,这种并发方式称为同时并发。 三.并发的目的 在数据库管理系统中对事务采用并发机制的主要目的有两个: 1、改善系统的资源利用率 对于一个事务来讲,在不同的执行阶段需要的资源不同,有时需要CPU,有时需要访问磁盘,有时需要I/O、有时需要通信如果事务串行执行,有些资源可能会空闲;如果事务并发执行,则可以交叉利用这些资源,有利于提高系统资源的利用率 2、改善短事务的响应时间 设有两个事务T1 和T2,其中T1是长事务,交付系统在先;T2是短事务,交付系统比T1稍后。如果串行执行,则须等T1执行完毕后才能执行T2。而T2的响应时间会很长。一个长事务的响应时间长一些还可以得到用户的理解,而一个短事务的响应时间过长,用户一般难以接受。 如果T1 和T2并发执行,则T2可以和T1重叠执行,可以较快地结束,明显地改善其响应时间。 四.并发所引起的问题 数据库中的数据是共享的,即多个用户可以同时使用数据库中的数据,这就是并发操作。 但是当多个用户存取同一组数据时,由于相互的干扰和影响,并发操作可能引发错误的结果,从而导致数据的不一致性问题我们将用下面的例子予以说明。 例5.5 设有一个飞机机票订票系统,考虑如下售票活动的并发操作问

文档评论(0)

vr7743178 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档