《事务和锁》PPT课件

《事务和锁》PPT课件

ID:39385314

大小:425.10 KB

页数:40页

时间:2019-07-02

《事务和锁》PPT课件_第1页
《事务和锁》PPT课件_第2页
《事务和锁》PPT课件_第3页
《事务和锁》PPT课件_第4页
《事务和锁》PPT课件_第5页
资源描述:

《《事务和锁》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第09章事务和锁内容提要事务是由一系列的数据操作命令组成,是数据库应用程序的基本逻辑单元。SQLServer2005在对数据库进行操作时,通过事务来保证数据的一致性和完整性。用户访问数据库时,经常出现并发的情况。数据库系统的并发处理能力是衡量其性能的重要标志之一。数据库系统通过适当的并发控制机制协调并发操作,保证数据的一致性。在SQLServer2005中,以事务为基本操作单位,使用锁来实现并发控制。第09章事务和锁9.1事务概述9.2管理事务9.3管理并发数据访问9.4管理锁9.5小结9.1事务概述在计算机系统设计过程中,与一个商业事务相关的数

2、据必须保证可靠性、一致性和完整性,以符合实际的商业过程。在SQLServer2005中,通常由事务来完成相关操作,以确保多个数据的修改作为一个单元来处理。事务(Transaction)是单个的工作单元。如果某一事务执行成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被还原。9.1事务概述9.1.1事务的特点定义事务必须符合如下的典型特征。原子性(Atomicity):事务包含的一系列数据操作是是一个整体。执行部分操作则数据会回滚到原来的状态。一致性(Consistency

3、):事务执行完成后,将数据库从一个一致状态转变到另一个一致状态,事务不能违背定义在数据库中的任何完整性检查。隔离性(Isolation):一一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰持久性(Durability):要求一旦事务提交,那么对数据库所做的修改将是持久的,无论发生何种机器和系统故障,都不应该对其有任何影响。9.1事务概述9.1.2事务的分类任何对数据的修改都是在事务环境中进行的。按照事务定义的方式可以将事务分为系统定义事务和用户定义事务。SQLServer2005支持3种事务模式分别对应上

4、述两类事务:自动提交事务、显式事务和隐式事务。(1)自动提交事务。SQLServer2005将一切操作作为事务处理,它不会在事务以外更改数据。如果没有用户定义事务,SQLServer会自己定义事务,称为自动提交事务。每条单独的语句都是一个事务。(2)显式事务。显式事务是指显式定义了启动和结束的事务。在实际应用中,大多数的事务是由用户来定义的。事务结束分为提交(COMMIT)和回滚(ROLLBACK)两种状态。9.1事务概述9.1.2事务的分类(3)隐式事务。在隐式事务中,SQLServer在没有事务定义的情况下会开始一个事务,但不会像在自动提交模

5、式中那样自动执行COMMIT或ROLLBACK语句,事务必须显式结束。Transact-SQL脚本使用SETIMPLICIT_TRANSACTIONSON/OFF语句可以启动/关闭隐式事务模式。(4)分布式事务。一个比较复杂的环境,可能有多台服务器,那么要保证在多服务器环境中事务的完整性和一致性,就必须定义一个分布式事务。在分布式事务中,所有的操作都可以涉及对多个服务器的操作,当这些操作都成功时,那么所有这些操作都提交到相应服务器的数据库中,如果这些操作中有一条操作失败,那么这个分布式事务中的全部操作都被取消。9.1事务概述9.1.2事务的分类跨

6、越两个或多个数据库的单个数据库引擎 实例中的事务实际上也是分布式事务。该实例对分布式事务进行内部管理;对于用户而言,其操作就像本地事务一样。对于应用程序而言,分布式提交必须由事务管理器管理,以尽量避免出现因网络故障而导致事务由某些资源管理器成功提交,另一些资源管理器回滚的情况。通过准备阶段和提交阶段管理提交进程可避免这种情况,这称为两阶段提交。9.2管理事务事务的基本操作包括启动、保存、提交或回滚等。9.2.1启动事务1.显式事务的定义显式事务需要明确定义事务的启动。显式事务的定义格式如下:BEGIN{TRAN

7、TRANSACTION}[{tra

8、nsaction_name

9、@tran_name_variable}[WITHMARK['description']]]例9.1定义一个事务,将teaching数据库的score表中所有选了c05109号课程的学生的分数加5分,并提交该事务。程序代码如下:USEteachingGODECLARE@TranNameVARCHAR(20);SELECT@TranName='Add_Score';BEGINTRAN@TranName;UPDATEscoreSETfinal=final+5WHEREcourseno='c05109';COMMITTRAN

10、@TranName;GO例9.2定义一个事务,将teaching数据库的score表中所有选了c05109号课程的学生的分数减5分,并提

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

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

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