- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务管理与控制 * 事务控制 * 第9章 事务管理与控制 解决问题: 多个用户同时操作数据库会不会相互干扰,从而导致数据的错误? 系统在执行用户的请求过程中会不会出现故障,从而使数据库处于未知状态? 并发控制问题 恢复问题 9.1 什么是事务 事务(Transaction)是并发控制和恢复的基本单位 完成用户一个特定工作的一组命令看作是事务,事务就是作业或任务 事务是构成单一逻辑工作单元的操作集合。 一个事务可以是一条SQL语句,也可以是多条SQL语句,但一定是一个完整的操作。例如银行转账业务 一个事务完成后应该告知系统,称为事务的提交(COMMIT),此时数据库处于操作后的正确状态;如果一个事务未完成,则必须清除该事务数据的影响,即事务的撤消(RollBack),从而使数据库处于操作前的正确状态。 9.1 什么是事务 事务(Transaction)是并发控制和恢复的基本单位,其是一个操作系列,这些操作具有以下四个属性(ACID): 原子性(Atomicity) 事务中的操作要么执行,要么不执行,整个是一个不可分割的工作单位。 例如银行转账业务:从一个账号扣款和使另一个账号增加款额,这两个操作要么都执行,要么都不执行。所以应该把它们处理成一个事务。 9.1 什么是事务 一致性(Consistent) 必须保证多用户并发操作过程中数据的一致性 帐户甲 帐户乙 T1 T2 T3 X=400,X=X-40 数据的不一致性发生了 Return y 发生故障 Y=1000 银行转账业务 9.1 什么是事务 隔离性(Isolatable) 必须保证多用户并发操作过程中,相互不干扰。 帐户甲 帐户乙 帐户丙 T1 T2 X=400,X=X-40 甲和丙同时在T1时刻向帐户乙转帐,则对Y的值的修改是同时的,那么对于Y的值的修改都是错误的。 甲的操作:Y=Y+40=1040 丙的操作:Y=Y+100=1100 Y=1000 银行转账业务:甲向乙转去40元,丙向乙转去100元。 Z=200,Z=Z-100 2个不同的事务同时执行时交叉在一起,没有有效地进行隔离,从而使得他们之间产生了干扰。 9.1 什么是事务 持续性(Durative) 事务完成之后,它对于系统的影响是永久性的。即使出现了系统故障,那么系统在恢复之后已完成的事务对数据库的修改一直保持,未完成的事务将被回滚。 9.2 并发事务带来的问题 丢失更新问题 ——当多个事务同时选择一个元组,然后基于最初选定的值更新该元组时会发生丢失更新问题。 假设某产品库存量为50,现在购入该产品100个,执行入库操作,库存量加100;用掉40个,执行出库操作,库存量减40。分别用S1和S2表示入库和出库操作任务。同时发生入库(S1)和出库(S2)操作,这就形成并发操作。 丢失更新问题 表1 发生丢失更新的过程 用户A S1 时间 用户B S2 读库存量 T1 读库存量 库存量=50+100 T2 库存量=50-40 写库存量150 T3 写库存量10 例如,S1读取库存后,S2也读取了同一个库存;S1修改库存,回写更新后的值;S2修改库存,也回写更新后的值。此时库存为S2回写的值,S1对库存的更新丢失。如表1所示S1和S2的并发操作执行顺序,发生了“丢失更新”错误。 9.2 并发事务带来的问题 9.2 并发事务带来的问题 未提交依赖问题—称为读“脏数据”,查询一个已经被其他事务更新,但尚未提交的元组,会引起未提交依赖问题。 例:当S1和S2并发执行时,在S1对数据库更新的结果没有提交之前,S2使用了S1的结果,而在S2操作之后S1又回滚,这时引起的错误是S2读取了S1的“脏数据”。 用户A S1 时间 用户B S2 读库存量 T1 库存量=50+100 T2 T3 读库存量150 T4 库存量=150-40 撤消更新操作 T5 T6 写库存量110 表2 发生读“脏数据”的过程 9.2 并发事务带来的问题 不一致分析问题——不可重复读问题,很多应用可能需要校验功能,需要多次读数据,但由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(不一致性的分析)问题。 用户A S1 时间 用户B S2 读库存量A=50,入库量B=100 T1 总库存量=50+100 T2 T3 读入库量B=100 T4 B=B/4 T5 回写B=25 读库存量A=50,入库量B=25 T6 校验总库存量=50+25,不一致 T7 当S1读取数据B后,T2执行了对B的更新,当T1 再次读取
您可能关注的文档
最近下载
- 中储粮油脂有限公司2025年下半年招聘笔试模拟试题及答案解析.docx VIP
- 长庆低渗透油藏描述难点、主要做法及典型案例.pptx VIP
- 安徽省2024_2025学年高二化学上学期第一次月考试题.doc VIP
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘37人笔试备考试题及答案解析.docx VIP
- 学校建筑结构设计计算书.doc VIP
- 《应用文写作》高职完整全套教学课件.pdf
- 【施工】劳动力计划安排.docx VIP
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘补充考试备考题库及答案解析.docx VIP
- 2025年河北保定市莲池区招聘社区工作者80人备考练习试题及答案解析.docx VIP
- 2022-2023年药物制剂期末复习-药物制剂设备与车间工艺设计(药物制剂)考试全真模考卷9(附答案.docx VIP
文档评论(0)