收藏 分享(赏)

SQL+Server+2008基础教程+(13).ppt

上传人:jinchen 文档编号:4740646 上传时间:2019-01-10 格式:PPT 页数:24 大小:150.50KB
下载 相关 举报
SQL+Server+2008基础教程+(13).ppt_第1页
第1页 / 共24页
SQL+Server+2008基础教程+(13).ppt_第2页
第2页 / 共24页
SQL+Server+2008基础教程+(13).ppt_第3页
第3页 / 共24页
SQL+Server+2008基础教程+(13).ppt_第4页
第4页 / 共24页
SQL+Server+2008基础教程+(13).ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、2019年1月10日,第1页,第13章 事务,本章概述 本章要点 本章内容,2019年1月10日,第2页,本章概述,对于一个有大量用户使用的分布式数据库管理系统来说,必须很好地解决多用户使用过程中出现的并发性问题。提高数据库的处理速度,仅依靠提高计算机的物理速度是不够的,还必须充分考虑和解决数据库系统的并发性问题,提高数据库并发操作的效率。 在Microsoft SQL Server 2008系统中,通过采用事务和锁机制,解决了数据库系统的并发性问题。 本章将全面阐述Microsoft SQL Server的事务技术。,2019年1月10日,第3页,本章要点,并发性的概念和并发性问题的特点 事

2、务的概念、类型和特点 事务管理技术 理解锁的作用 掌握定制锁技术 掌握查看和理解锁信息技术,2019年1月10日,第4页,本章内容,13.1 概述 13.2 事务的特点、类型和管理 13.3 使用锁 13.4 本章小结,13.1 概述,经常有许多用户同时访问和使用数据库。并发性就是两个或两个以上的用户同时对数据执行的操作。并发性问题就是并发操作时遇到的各种问题。在Microsoft SQL Server 2008系统中,解决并发性问题采取了事务和锁机制。,2019年1月10日,第5页,事务和锁,事务和锁是两个紧密联系的概念。 事务就是一个单元的工作,包括一系列的操作,这些操作要么全部成功,要么

3、全部失败。事务确保多个数据的修改作为一个单元来处理。例如,在银行业务中有一条记账原则,即有借必有贷、借贷必相等。为了保证这种原则,就必须确保借和贷的记录要么同时成功,要么同时失败。如果出现只记录了借方,或只记录了贷方,违反了记账原则,就会出现记错账的情况。Microsoft SQL Server通过支持事务机制管理多个事务,保证事务的一致性。 通过在事务中使用锁,可以防止其他用户修改还没有完成的事务中的数据。对于多用户系统来说,锁机制是必须的。在Microsoft SQL Server系统中,使用事务日志来保证修改的完整性和可恢复性。,2019年1月10日,第6页,13.2 事务的特点、类型和

4、管理,事务是Microsoft SQL Server系统的重要特征,一方面保证了系统的备份和恢复,另一方面实现了数据一致性机制。下面将详细描述事务的概念、工作原理、事务的类型等内容。,2019年1月10日,第7页,事务的概念,事务是指一个单元的工作。作为一个逻辑单元,它必须具备4个属性:自动性、一致性、独立性和持久性。 自动性是指事务必须是一个自动的单元工作,要么执行全部数据的修改,要么全部数据的修改都不执行。 一致性是指当事务完成时,必须使所有数据都具有一致的状态。 独立性是指并行事务的修改必须与其他并行事务的修改相互独立。 持久性是指当一个事务完成之后,它的影响永久性地产生在系统中,也就是

5、这种修改写到了数据库中。,2019年1月10日,第8页,事务的工作原理,事务确保数据的一致性和可恢复性。事务开始之后,事务所有的操作都陆续写到事务日志中。 写到事务日志中的操作一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作,这些操作的对象是大量的数据。有些操作是针对任务的,例如创建索引,这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。当取消这种事务时,系统自动执行这种操作的反操作,保证系统的一致性。 系统自动生成一个检查点机制,这个检查点周期地发生,2019年1月10日,第9页,使用事务时的考虑,在使用事务时,原则上应该使事务尽可能短并且要避免事务嵌套。事

6、务应该尽可能短,这是因为比较长的事务增加了事务占用数据的时间,使其他必须等待访问该事务锁定数据的事务延长了等待访问数据的时间。在使用事务时,为了使事务尽可能短,应该采取一些相应的方法。,2019年1月10日,第10页,事务的类型,根据系统的设置,可以把事务分成两种类型。一种是系统提供的事务,另一种是用户定义的事务。系统提供的事务是指在执行某些语句时,一条语句就是一个事务。这时,一条语句的对象既可以是表中的一行数据,也可以是表中的多行数据,甚至是表中的全部数据。因此,只有一条语句构成的事务也可能包含了对多行数据的处理。,2019年1月10日,第11页,分布式事务,还有一种特殊的用户定义的事务,这

7、就是分布式事务。前面提到的事务都是在一个服务器上的操作,其保证的数据完整性和一致性是指一个服务器上的完整性和一致性。但是如果在一个比较复杂的环境中可能有多台服务器,那么要保证在多服务器环境中事务的完整性和一致性,就必须定义一个分布式事务。在这个分布式事务中,所有的操作都可以涉及对多个服务器的操作。,2019年1月10日,第12页,管理事务,BEGIN TRANSACTION BEGIN DISTRIBUTED TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION SET IMPLICIT_TRANSACTION

8、,2019年1月10日,第13页,使用SAVE TRANSACTION语句,2019年1月10日,第14页,13.3 使用锁,锁是实现事务的手段。实际上锁是保护事务和数据的方式,这种保护方式类似于日常生活中使用的锁。下面介绍Microsoft SQL Server系统中锁的特点。,2019年1月10日,第15页,锁的概念,锁是防止其他事务访问指定资源的手段。锁是实现并发控制的主要方法,使多个用户能够同时操纵同一个数据库中的数据而避免发生数据不一致现象的重要保障。 一般来说,锁可以防止脏读、不可重复读和幻觉读。,2019年1月10日,第16页,SQL Server的空间特点,在Microsoft

9、 SQL Server系统中,最小的空间管理单位是页,一个页有8K。所有的数据、日志、索引都存放在页上。另外,使用页还有一个限制,表中的一行数据必须在同一个页上,不能跨页。页上面的空间管理单位是Extent,一个Extent是8个连续的页。表和索引的最小占用单位是Extent。数据库是由一个或多个表或索引组成的,即是由多个Extent组成。,2019年1月10日,第17页,可以锁定的资源,为了优化系统的并发性,应该根据事务的大小和系统活动的程度锁定不同的资源。也就是说,既可以锁定比较大的资源,也可以锁定比较小的资源。在Microsoft SQL Server系统中,已经非常完善地实现了这些要求

10、。 在Microsoft SQL Server中可以锁定的资源有多种,这些可以锁定的资源分别是行、页、Extent、表和数据库,它们对应的锁分别是行级锁、页级锁、Extent级锁、表级锁和数据库级锁。数据行存放在页上,页存放在Extent上,一个表由若干个Extent组成,而若干个表组成了数据库。在这些可以锁定的资源中,最基本的资源是行、页和表,2019年1月10日,第18页,锁的类型和其兼容性,锁定资源的方式有两种基本形式,一种形式是读操作要求的共享锁,另一种形式是写操作要求的排他锁。除了这两种基本类型的锁,还有一些特殊情况的锁,例如意图锁、修改锁和模式锁。在这些各种类型的锁中,某些类型的锁

11、之间是可以兼容的,但多数类型的锁之间是不兼容的。 有些锁之间是兼容的,例如共享锁和修改锁。有些锁之间是不兼容的,例如排他锁和共享锁。表13-1列出了Microsoft SQL Server系统提供的各种锁之间的兼容性。,2019年1月10日,第19页,死锁问题,死锁是一个很重要的话题。在事务和锁的使用过程中,死锁是一个不可避免的现象。在下面两种情况下会发生死锁。第一种情况是当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时就发生了死锁。这种是最典型的死锁形式。 死锁的第二种情况是在一个数据库中,有

12、若干个长时间运行的事务执行并行的操作,当查询分析器处理一种非常复杂的查询,例如连接查询时,由于不能控制处理的顺序,有可能发生死锁现象。,2019年1月10日,第20页,会话级锁和表级锁,一般地,锁是由系统自动提供的。但是在有些情况下,用户也可以定制锁。也就是说,用户可以对会话级锁和表级锁进行定制。 会话级锁的定制包括两个方面,事务隔离等级和锁超时限制。事务隔离等级保护指定的事务,该事务隔离允许对一个会话中的全部事务设置隔离等级。当设置隔离等级时,就为会话中的全部语句指定了默认的锁定行为。Microsoft SQL Server系统支持5种事务隔离等级,2019年1月10日,第21页,设置事务隔

13、离等级,2019年1月10日,第22页,13.4 本章小结,本章全面讲述了事务技术。首先,分析了并发性的概念和特点。其次,对事务的概念、类型、特点以及管理技术进行了全面研究。事务作为一个重要的数据库技术基本概念,在保护数据库的可恢复性和多用户、多事务方面具有基础性的作用。最后,对锁技术进行了全面介绍,包括锁的类型、锁资源的特点、会话级锁的特点、表级锁的特点以及死锁的特点等。,2019年1月10日,第23页,【思考和练习】,1. 什么是并发性? 2. 试述并发性和并行性的区别。 3. 为什么说采用事务和锁机制可以解决数据库系统中的并发性问题? 4. 事务的作用是什么? 5. 为什么在Microsoft SQL Server中引入锁的机制? 6. 幻觉读是如何产生的? 7. 锁的类型是什么? 8. 意图锁的作用和特点是什么? 9. 为什么会出现死锁?如何解决死锁现象? 10. 如何查看系统的锁信息? 11. 锁是由系统自动提供的,还是由用户定义的?,2019年1月10日,第24页,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报