第8章事务与并发控制.ppt
《第8章事务与并发控制.ppt》由会员分享,可在线阅读,更多相关《第8章事务与并发控制.ppt(47页珍藏版)》请在优知文库上搜索。
1、第第8 8章章 事务与并发控制事务与并发控制v8.1 8.1 事务事务 8.1.1 8.1.1 事务的基本概念事务的基本概念 8.1.2 8.1.2 事务的特征事务的特征 8.1.3 8.1.3 事务处理模型事务处理模型v8.2 8.2 并发控制并发控制8.1.1 8.1.1 事务的基本概念事务的基本概念v事务是用户定义的数据操作系列,这些事务是用户定义的数据操作系列,这些操作作为一个完整的工作单元,一个事操作作为一个完整的工作单元,一个事务内的所有语句被作为一个整体,要么务内的所有语句被作为一个整体,要么全部执行,要么全部不执行。全部执行,要么全部不执行。v例如:对于一个转帐活动:例如:对于
2、一个转帐活动:A A帐户转帐给帐户转帐给B B帐户帐户n n元钱,这个活动包含两个动作:元钱,这个活动包含两个动作:第一个动作:第一个动作:A A帐户帐户 n n 第二个动作:第二个动作:B B帐户帐户 n n说明说明v假设第一个操作成功了,第二个操作由于某假设第一个操作成功了,第二个操作由于某种原因没有成功种原因没有成功,在系统恢复在系统恢复正常正常后,后,A A账账户的金额户的金额应应是是多少多少?v如果如果B B账户的金额没有变化,则正确的情况账户的金额没有变化,则正确的情况是是A A账户的金额也应该账户的金额也应该没有变化没有变化。v怎样保证在系统恢复之后,怎样保证在系统恢复之后,A
3、A账户中的金额账户中的金额没有减少没有减少?这就要用到事务的概念。?这就要用到事务的概念。v事务可以保证在一个事务中的全部操作或者事务可以保证在一个事务中的全部操作或者全部成功,或者全部失败。全部成功,或者全部失败。8.1.2 8.1.2 事务的特征事务的特征 v 原子性原子性(AtomicityAtomicity):指事务是数据库的逻辑工:指事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。作单位,事务中的操作要么都做,要么都不做。v 一致性一致性(ConsistencyConsistency):指事务执行的结果必须:指事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性
4、状是使数据库从一个一致性状态变到另一个一致性状态。态。v 隔离性隔离性(IsolationIsolation):指数据库中一个事务的执:指数据库中一个事务的执行不能被其它事务干扰。行不能被其它事务干扰。v 持久性持久性(Durability Durability):也称为永久性。指事务:也称为永久性。指事务一旦提交,其对数据库数据的改变就是永久的。一旦提交,其对数据库数据的改变就是永久的。v保证事务的保证事务的ACIDACID特性是事务处理的重要特性是事务处理的重要任务。任务。v事务的事务的ACIDACID特性可能遭到破坏的因素有:特性可能遭到破坏的因素有:多个事务并行运行时,不同事务的操多个
5、事务并行运行时,不同事务的操作有交叉情况;作有交叉情况;事务在运行过程中被强迫停止。事务在运行过程中被强迫停止。8.1.3 8.1.3 事务处理模型事务处理模型 v隐式事务隐式事务:隐式事务是每一条数据操:隐式事务是每一条数据操作语句都自动地成为一个事务。作语句都自动地成为一个事务。v显式事务显式事务:有显式的开始和结束标记:有显式的开始和结束标记的事务。的事务。ISOISO事务处理模型事务处理模型 T-SQLT-SQL事务处理模型事务处理模型(SQL Server(SQL Server采用采用)T-SQLT-SQL事务处理模型事务处理模型v每个事务都有显式的开始和结束标记。每个事务都有显式的
6、开始和结束标记。v事务的开始标记是:事务的开始标记是:BEGIN TRANSACTION|TRANBEGIN TRANSACTION|TRANv事务的结束标记为:事务的结束标记为:COMMIT COMMIT TRANSACTIONTRANSACTIONTRANTRANROLLBACK ROLLBACK TRANSACTIONTRANSACTIONTRANTRAN示例示例BEGIN TRANSACTIONBEGIN TRANSACTION UPDATE UPDATE 支付表支付表 SET SET 帐户总额帐户总额 =帐户总额帐户总额 -n-nWHERE WHERE 帐户名帐户名 =A=AUPDA
7、TE UPDATE 支付表支付表 SET SET 帐户总额帐户总额 =帐户总额帐户总额 +n+nWHERE WHERE 帐户名帐户名 =B=BCOMMITCOMMIT8.2 8.2 并发控制并发控制 v8.2.1 8.2.1 并发控制概述并发控制概述 v8.2.2 8.2.2 并发控制措施并发控制措施v8.2.3 8.2.3 封锁协议封锁协议v8.2.4 8.2.4 活锁和死锁活锁和死锁v8.2.5 8.2.5 并发调度的可串行性并发调度的可串行性 v8.2.6 8.2.6 两段锁协议两段锁协议 8.2.1 8.2.1 并发控制概述并发控制概述v数据库中的数据是一个共享的资源,因此数据库中的数
8、据是一个共享的资源,因此会有很多用户同时使用数据库中的数据,会有很多用户同时使用数据库中的数据,v在多用户系统中,可能同时运行着多个事在多用户系统中,可能同时运行着多个事务,而事务的运行需要务,而事务的运行需要时间时间,并且事务中,并且事务中的操作是在一定的的操作是在一定的数据数据上进行的。上进行的。v当系统中同时有多个事务在运行时,特别当系统中同时有多个事务在运行时,特别是当这些事务是对同一段数据进行操作时,是当这些事务是对同一段数据进行操作时,彼此之间就有可能产生彼此之间就有可能产生相互干扰相互干扰的情况。的情况。v如:订票、银行如:订票、银行不同的多事务执行方式不同的多事务执行方式v串行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 事务 并发 控制