- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第七章 数据库管理系统新
第7章 数据库管理系统 7.2 事务管理 例:设想网上购物的一次交易,至少包括以下数据库操作: 保存客户付款信息(可能包括与银行系统交互) 更新客户所购商品的库存信息 生成订单并且保存到数据库中 更新用户相关信息,例如购物数量等等 正常情况:所有操作顺利进行,交易成功,与交易相关的所 有数据库信息也成功地更新。 异常情况:交易失败(例如,生成订单失败),使数据库中信息将会不可预测。此时该怎么办? 如何在交易失败时,使数据库中的数据库恢复到交易前的状态? 例2:考虑飞机订票系统中的一个活动序列: (1) 甲售票点读出某航班的机票余额(设=16); (2) 乙售票点读出同一航班的机票余额也为16; (3) 甲售票点卖出一张机票,修改余额为15,并把A写回数据库; (4) 乙售票点也卖出一张机票,也修改余额为15,并把A写回数据库。 结果:卖出两张票,数据库中机票余额只减少1。 如何解决出现的这些问题,以保证数据库中的数据是一致的? —数据库中,事务就是解决这些问题的技术手段。 7.2.1 事务的基本概念 何为数据库事务? “一荣俱荣,一损俱损” 很能体现事务的思想。 很多复杂的事物要分步进行,但它们组成一个整体,要么整体生效,要么整体失效。这种思想反映到数据库上,就是多个SQL语句,要么所有执行成功,要么所有执行失败。 事务的定义:是用户定义的一个数据库操作序列,且操作序列中的所有操作要么全做,要么全不做,是一个不可分割的整体。 注意:在关系数据库中,一个事务可以是一条SQL语句,也可以是一组SQL语句,甚至是一个程序。事务中的SQL语句必须按逻辑次序执行。 例:现规定:网上购物的一次交易的所有操作要么全做,要么全不做。则可以定义为一个事务。 需要事务的原因: (1)数据恢复的需要 误操作或系统崩溃时恢复数据 (2)并发控制的需要 多个事务同时操作时保证对数据的一致性 事务的应用背景 例1:某公司在银行中有A,B两个帐号,现在公司想从帐号A中转帐1万元到帐号B。 分析:要转帐正确,必须保证A中取出1万元的操作和在B中增加1万元的操作要么都成功完成,要么都不做。如何实现? 把这二个操作定义在一个事务中。 银行转帐:事务T从A帐户过户1万元到B帐户。 T: read(A); A := A – 1; write(A); read(B); B := B + 1; write(B); 7.2.2 事务的特性 事务具有四个特性: 原子性(Atomicity)、 一致性(Consistency)、 分离性(Isolation)、 持久性(Durability)。 这四个特性也简称为ACID特性。 例:下列语句定义了一个事务 begin transaction Update 库存 set 库存量=库存量-2 where 产品编号=‘C001’ Insert into 付款 values (‘5122000000’,300,’建行’,’ C001’ ,’2007.07.2.03’) Insert into 订购单 values(‘5122000000’,’ C001’ ,2,’已付’) commit 7.2.3 事务处理语句 事务的开始 显示开始: begin transaction 隐式开始:首次执行alter 、 create 、 insert 、open等T-SQL语句会自动定义一个事务。 事务的结束 COMMIT transaction :事务正常结束,提交事务的所有操作(读+更新),事务中所有对数据库的更新永久生效 ROLLBACK transaction :事务异常终止,事务运行的过程中发生了故障,不能继续执行,回滚整个事务或是存储点定义以后所发生的所有更新操作,事务滚回到开始时的状态 注意: ① 组成一个事务的SQL语句由用户根据情况而定。 ② 定义事务时,BEGIN TRANSACTION语句与COMMIT TRANSACTION( ROLLBACK TRANSACTION)语句必须成对出现。 ③ROLLBACK TRANSACTION应该在COMMIT TRANSACTION语句之前调用。一旦提交就不能再撤销。 3、 定义、提交和回滚事务示例 7.2.4 SQL Server的事务模式 SQL Server的事务模式可分为三种: 显式事务 隐式事务 自动事务模式。 1、显式事务模式 在SQL Server中,事务模式的设置方法: SET IMPLI
您可能关注的文档
最近下载
- 北师大版(2024新版)七年级上册数学第一章《丰富的图形世界》大单元整体教学设计.pdf VIP
- 悬挑脚手架监理细则-定稿.doc VIP
- 康复护理学肠道护理.pptx VIP
- 马工程党内法规学教学课件11.pptx VIP
- 学术规范与科研伦理.pptx VIP
- 马工程党内法规学教学课件5.pptx VIP
- 《太平天国运动》课件.pptx VIP
- 第二单元 第4课《数据分包灵活传》课件 2024-2025学年人教版(2024)初中信息科技七年级全一册.pptx VIP
- 课件:小儿雾化吸入护理.ppt
- 11.2.1.1 三角形的内角和(分层练习)-2023-2024学年八年级数学上册同步精品课堂(人教版)解析版.pdf VIP
文档评论(0)