网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库技术与应用——SQLServer2008课件作者胡国胜第12章节事务和锁.ppt

数据库技术与应用——SQLServer2008课件作者胡国胜第12章节事务和锁.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 事务和锁 数据库是可供多个用户共享的信息资源。允许多个用户同时 使用数据库的系统成为多用户数据库系统。当多个用户并发地存 取数据库时,就会产生多个事务同时存取同一数据的情况。数据 库的并发控制就是控制数据库,防止多用户并发使用数据库时造 成数据错误和程序运行错误,保证数据的完整性。事务是多用户 系统的一个数据操作基本单元。封锁是使事务对它要操作的数据 有一定的控制能力。 12.1 事务 多用户并发存取同一数据可能会引起数据的不一致性问题。正确地使用事务可以有效地控制这类问题发生的频度甚至能避免这类问题的发生。 事务(Transaction),是指一个操作序列,这些操作序列要么都被执行,要么都不被执行,它是一个不可分割的工作单元。事务中任何一条语句执行时出错,都必须取消或回滚该事务,即撤销该事务已做的所有动作,系统返回到事务开始前的状态。事务是并发控制的基本单元,是数据库维护数据一致性的单位。在每个事务结束时,都能保持数据一致性。例如,银行转账工作,从一个账号扣款并使另一个账号增款,这两个操作要么都被执行,要么都不被执行。因此,应该把它们看成一个事务。 12.1.1 事务的特性及管理 1. 事务的特性 当事务处理系统创建事务时,将确保事务有某些特性。这些特性称为ACID特性。ACID就是:原子性(Atomicity )、一致性(Consistency)、隔离性(Isolation)和持久性(Durabilily)。 (1) 原子性 原子性属性用于标识事务是否完全地完成,一个事务的任何更新要在系统上完全完成,如果由于某种原因出错,事务不能完成它的全部任务,系统将返回到事务开始前的状态。 例如,银行转帐时,如果在转帐的过程中出现错误,整个事务将会回滚。只有当事务中的所有部分都成功执行了,才将事务写入磁盘并使变化永久化。 12.1.1 事务的特性及管理 (2) 一致性 事务在系统完整性中实施一致性,这通过保证系统的任何事务最后都处于有效状态来实现。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。因为事务开始时系统处于一致状态,所以现在系统仍然处于一致状态。 例如,银行转帐时,在帐户转换和资金转移前,帐户处于有效状态。如果事务成功地完成,并且提交事务,则帐户处于新的有效的状态。如果事务出错,终止后,帐户返回到原先的有效状态。 12.1.1 事务的特性及管理 (3) 隔离性 在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。 例如,在银行系统中,其他过程和事务在我们的事务完成前看不到我们的事务引起的任何变化,这对于终止的情况非常重要。如果有另一个过程根据帐户余额进行相应处理,而它在我们的事务完成前就能看到它造成的变化,那么这个过程的决策可能建立在错误的数据之上,因为我们的事务可能终止。这就是说明了为什么事务产生的变化,直到事务完成,才对系统的其他部分可见。 12.1.1 事务的特性及管理 (4) 持久性 持久性意味着一旦事务执行成功,在系统中产生的所有变化将是永久的,接下来的其他操作或故障不应该对其结果产生任何影响。 2. 事务的管理 在SQL Server 2008中,对事务的管理包含3个方面: ? 事务控制语句:控制事务执行的语句。包括将一系列操作定义为一个工作单元来处理; ? 锁机制:封锁正被一个事务修改的数据,防止其他用户访问到“不一致”数据; ? 事务日志:使事务具有可恢复性。 12.1.2 事务控制语句 SQL Server 2008为每个独立的SQL语句都提供了隐含的事务控制,使得每个DML的数据操作得以完整提交或回滚,但是SQL Server 2008还提供了显式事务控制语句。 在SQL Server2008中,对事务的管理是通过事务控制语句和几个全局变量结合起来实现的。 12.1.2 事务控制语句 1. 事务控制语句 ? BEGIN TRANSACTION [tran_name]:标识一个用户定义的事务的开始。tran_name为事务的名字,标识一个事务开始。 ? COMMIT TRANSACTION [tran_name]:表示提交事务中的一切操作,结束一个用户定义的事务,使得对数据库的改变生效; ? ROLLBACK TRANSACTION

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档