- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库教学第六章
第六章 数据库控制技术 2、如何定义事务 显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 …… …… COMMIT ROLLBACK 隐式方式 当用户没有显式地定义事务时, DBMS按缺省规定自动划分事务 3、事务结束 COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 事务滚回到开始时的状态 4、事务的ACID特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ) 原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做 银行转帐:从帐号A中取出一万元,存入帐号B。 定义一个事务,该事务包括两个操作 这两个操作要么全做,要么全不做 全做或者全不做,数据库都处于一致性状态。 如果只做一个操作,数据库就处于不一致性状态。 隔离性(Isolation) 对并发执行而言 一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰 持续性(Durability ) 持续性也称永久性(Permanence) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。 事务的特性 保证事务ACID特性是事务处理的任务 破坏事务ACID特性的因素 多个事务并行运行时,不同事务的操作交叉执行 事务在运行过程中被强行停止 事务内部故障 事务在运行至正常终止点(commit或rollback)前被终止 包括 能由事务所在程序处理的,如条件不满足等 不能由事务所在程序处理的,如运算溢出等 系统故障(system) 系统重启、OS故障、DBMS代码错误、掉电等 介质故障(medium) 磁盘损坏等 计算机病毒(virus) 数据库由于某些故障发生可能会导致数据库被破坏或影响数据库中数据的一致性(或完整性、正确性) 当系统运行过程中发生故障时,数据库恢复技术将数据库从错误状态恢复到某个一致状态,它是数据库可靠性的保证。 数据库恢复机制是衡量某DBMS系统性能的指标之一,对系统可靠性起决定作用,对运行效率有很大影响 2、日志文件的作用 日志文件在数据库的恢复中起着非常重要的作用 3、登记日志文件 登记日志文件必须遵循两条原则: ① 登记的次序严格按并发事务执行的时间次序 ② 必须先写日志文件,后写数据库 写日志文件和写数据库是两个不同的概念,有可能在这两个操作之间发生故障。如果先写数据库修改,而没有登记这个修改,一旦发生故障,以后就无法恢复这个修改了;如果先写日志文件,后写数据库,只不过是多做了一次不必要的UNDO操作。 数据库系统一般可以分为单用户系统和多用户系统。 单用户系统 在任何时刻只允许一个用户使用的数据库系统。 多用户系统 允许多个用户同时使用数据库的系统。 并行 Vs 串行 基本比较 并行事务会破坏数据库的一致性。 串行事务效率低。 并行的优点 一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量。 系统中存在着周期不等的各种事务,串行会导致难于预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。 并发控制的必要性 对数据库的并发操作可能导致下列问题: 丢失修改(Lost Update) 两个事务T1和T2读入同一数据并修改, T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。 不可重复读(Non-Repeatable Read) 指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取的结果。具体的讲,不可重复读包括三种情况: 事务T1读取某一数据后,事务T2对其作了修改,当事务T1再次读取该数据时,得到与前一次不同的值。 事务T1按
原创力文档


文档评论(0)