sqlserver 教程 第12讲.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 数据库并发控制及实现 学 习 目 标 1、了解事务的概念和特性。 2、掌握事务创建和提交的简单方法。 3、理解并发操作及并发操作引发的问题。 4、理解数据库中各种锁如何实现控制并发引出的问题。 任务引入 在多用户和网络环境下,数据库是一个共享资源,多个用户或应用程序同时对数据库的同一数据对象进行读写操作,这种现象称为对数据库的并发操作。显然并发操作可以充分利用系统资源,提高系统效率。虽然如此,但是如果对并发操作不进行控制会造成一些错误。 对并发操作进行的控制称为并发控制。并发控制机制是衡量一个DBMS的重要性能指标之一。 12.1事务Transaction 事务的概念和特性 事务是数据库的逻辑工作单位,它是用户定义的一组操作序列。一个事务可以是一组SQL语句、一条SQL语句或整个程序。   事务的开始和结束都可以由用户显示的控制,如果用户没有显式地定义事务,则由数据库系统按缺省规定自动划分事务。 12.1事务Transaction 事务应该具有4种属性:原子性、一致性、隔离性和持久性。 (1) 原子性 事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分的完成。 (2) 一致性 一致性要求事务执行完成后,将数据库从一个一致状态转变到另一个一致状态。 12.1事务Transaction (3) 隔离性 隔离性意味着一个事务的执行不能被其他事务干扰。 (4) 持久性 系统提供的持久性保证要求一旦事务提交,那么对数据库所做的修改将是持久的,无论发生何种机器和系统故障都不应该对其有任何影响。 例如,自动柜员机( ATM)在向客户支付一笔钱时,就不用担心丢失客户的取款记录。 12.1事务Transaction 事务操作 1、事务类型 SQL Server中的事务以3种模式运行,分别如下: (1) 自动提交事务 每条单独的T-SQL语句都是一个事务。 (2) 显示事务 在显示事务总,事务在语句BEGIN TRANSACTION和COMMIT子句间组成一组。 (3) 隐式事务 在隐式事务中,无须使用BEGIN TRANSACTION标记事务的开始,每个T-SQL语句(如INSERT,UPDATE,DELETE语句)都作为一个事务执行。 12.1事务Transaction 2、定义事务 【例1】从学生表Student中删除一个学生时要启动一个事务,删除这个学生在Student,Score表总的所有相关记录。 USE CJGL GO BEGIN TRANSACTION --开始事务 delete from Student where StuNo=2007230317 delete from Score where StuNo=2007230317 COMMIT TRANSACTION --提交事务 12.1事务Transaction 【例2】从Employee表中删除一个员工要启动一个事务, USE AdventureWorks GO BEGIN TRANSACTION DELETE FROM HumanResources.Employee WHERE EmployeeID=2 DELETE FROM HumanResources.EmployeeAddress WHERE EmployeeID=2 DELETE FROM HumanResources.EmployeeDepartmentHistory WHERE EmployeeID=2 DELETE FROM HumanResources.EmployeePayHistory WHERE EmployeeID=2 COMMIT TRANSACTION 12.2 并发控制 1并发操作与数据的不一致性 一个最常见的并发操作的例子是火车/飞机订票系统中的订票操作。例如,在该系统中的一个活动序列: 1、甲售票员读出某航班的机票张数余额A,设A=16; 2、乙售票员读出同一航班的机票张数余额A,也是16; …… 并发操作带来的数据库不一致性可以分为四类:丢失或覆盖更新、脏读、不可重复读和幻像读,上例只是并发问题的一种。 12.2 并发控制 1、丢失更新 2、读“脏数据” 3、不可重复读 4、幻像读 12.2 并发控制 2、 SQL Server 2005中的锁 封锁机制是并发控制的主要手段。封锁是使事务对它要操作的数据有一定的控制能力。

文档评论(0)

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

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

1亿VIP精品文档

相关文档