事务管理——实践与练习答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 事务管理 实践与练习 单选题: B C B C D 简答题: 事务的开启、回滚和提交命令是什么? 使用命令“start transaction;”可以开启一个事务,该命令开启事务的同时会隐式地关闭MySQL自动提交。 当MySQL关闭自动提交后,可以使用COMMIT命令来完成事务的提交。 使用rollback命令可以完成事务的回滚,事务的回滚可以撤销未提交的事务所做的各种修改操作,并结束当前这个事务。 事务的四大特性及其含义? 数据库中的事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持永性(Durability)。 原子性意味着每个事务都必须被认为是一个不可分割的单元,事务中的操作必须同时成功事务才是成功的。如果事务中的任何一个操作失败,则前面执行的操作都将回滚,以保证数据的整体性没有受到影响。 事务的一致性保证了事务完成后,数据库能够处于一致性状态。如果事务执行过程中出现错误,那么数据库中的所有变化将自动地回滚,回滚到另一种一致性状态。在MySQL中一致性主要由MySQL的日志机制处理,它记录了数据库的所有变化,为事务恢复提供了跟踪记录。如果系统在事务处理中发生错误,MySQL恢复过程将使用这些日志来发现事务是否已经完全成功地执行,是否需要返回。一致性保证了数据库从不返回一个未处理完的事务。 事务的隔离性确保多个事务并发访问数据时,各个事务不能相互干扰。系统中的每个事务在自己的空间执行,并且事务的执行结果只有在事务执行完才能看到。即使系统中同时执行多个事务,事务在完全执行完之前,其他事务是看不到结果的。在多数事务系统中,可以使用页级锁定或行级锁定来隔离不同事务的执行。 事务的持久性意味着事务一旦提交,其改变会永久生效,不能再被撤销。即使系统崩溃,一个提交的事务仍然存在。MySQL通过保存所有行为的日志来保证数据的持久性,数据库日志记录了所有对于表的更新操作。 事务的隔离级别及其含义? 事务的隔离级别是事务并发控制的整体解决方案,是综合利用各种类型的锁机制解决并发问题。每个事务都有一个隔离级,它定义了事务彼此之间隔离和交互的程度。在MySQL中提供了4种隔离级别:read uncommitted(读取未提交的数据)、read committed(读取提交的数据)、repeatable read(可重复读)和serializable(串行化)。其中,read uncommitted的隔离级别最低,serializable的隔离级别最高, 4种隔离级别逐渐增加。 read uncommitted(读取未提交的数据):提供了事务之间的最小隔离程度,处于这个隔离级别的事务可以读到其他事务还没有提交的数据。 read committed(读取提交的数据):处于这一级别的事务可以看见已经提交事务所做的改变,这一隔离级别要低于repeatable read(可重复读)。 repeatable read(可重复读):这是MySQL默认的事务隔离级别,它确保在同一事务内相同的查询语句其执行结果总是相同的。 serializable(串行化):这是最高级别的隔离,它强制事务排序,使事务一个接一个地顺序执行。 什么是脏读、不可重复读和幻读? 一个事务可以读到另一个事务未提交的数据则为脏读。如果将事务的隔离级别设置为read uncommitted,则可能出现脏读、不可重复读和幻读等问题。将事务的隔离级别设置为read committed则可以避免脏读,但可能出现不可重复读以及幻读等问题。 在同一个事务中,两条相同的查询语句其查询结果不一致。当一个事务访问数据时,另一个事务对该数据进行修改并提交,导致第一个事务两次读到的数据不一样。当事务的隔离级别设置为read committed时可以避免脏读,但可能会出现不可重复读。将事务的隔离级别设置为repeatable read,则可以避免脏读和不可重复读。 幻读是指当前事务读不到其他事务已经提交的修改。将事务的隔离级别设置为repeatable read可以避免脏读和不可重复读,但可能会出现幻读。将事务的隔离级别设置为serializable,可以避免幻读。

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档