网站大量收购闲置独家精品文档,联系QQ:2885784924

MySQL数据库 4.4 事务的开发教案 .docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE6

教案首页

课程名称

MySQL数据库开发

本节课题

任务4.4事务的开发

授课方式

理实一体化

教学参考及教具

姜云桥主编.MySQL数据库开发.临科院:教务处,2023

计算机MySQL数据库软件多媒体教学系统资料包

教学目标及基本要求

理解事务

掌握事务的启动、提交、回滚。

理解事务不同隔离级别存在的问题

通过示例展示事务不同隔离级别存在的问题

培养自主学习能力

教学重点

教学难点

事务的启动、提交、回滚以及保存点设置

实例操作每一种隔离级别存在的问题

教学小结

作业及要求

按照任务书做好预习任务

实例操作每一种隔离级别存在的问题

教后反思

注意:用微课视频每个典型操作做示范

教案用纸

教学内容、方法和过程

附记

任务4.4事务的开发

【任务要求】

本任务将从认识事务开始,学习事务的启动、提交、回滚以及保存点设置等基本方法。设置事务的隔离级别,实例操作每一种隔离级别存在的问题。

【任务必备知识】

4.4.1认识事务

事务是一组数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位,不会出现只完成了部分操作的情况。正如同游戏里面的关卡,要么成功进入下一关,要么回到关卡的起点。

那么我们不禁要问,什么情况下需要使用事务呢?,假设用户A需要给用户B转账,基本流程如下:

如果步骤1刚执行完,恰好程序崩了,此时用户A的账户已经减少了1000元,但用户B的账户却没有增加1000元,这1000元凭空消失了,对双方来说都是无法接受的,那该如何解决该问题呢,我们发现出现该问题的关键在于减和加是两个独立的操作,如果我们能够确保这两个操作要么都执行,要么都不执行,便不会有该问题,这正是事务可以实现的功能。

MySQL中事务分为两种:隐式事务和显式事务。隐式事务没有开启和结束标记,它们都是由系统自动完成提交,如DML语句(insert、update、delete)就是隐式事务;而显示事务有专有标记,只能手动提交。本文重点讲述的便是显示事务。

4.4.2事务的特点(ACID)

在对事务有了基本的认识后,我们进一步看一下事务的特点,也即事务必须包含的基本特征。

一、原子性(atomicity)

原子性指的是事务中的语句作为一个整体不可分隔,要么都执行,要么都不执行。原子性主要通过undolog日志实现,该日志会记录被修改之前的数据,当发生事务回滚时,会从undolog日志里面取出原来的数据,重新对数据进行回退。

二、一致性(consistency)

一致性指的是在事务提交前后数据的状态始终正确有效,比如,A原来有1000元,B有200元,A转给B300元,有效的状态为A剩余700元,B剩余500元。一致性不仅需要数据库层面的保障,同时也需要业务层面的保障。

三、隔离性(isolation)

隔离性指的是多个事务之间是相互隔离的,在其提交前对于其他事务而言是不可见的。隔离性的实现主要借助于锁机制和多版本并发控制(MVCC)。

四、持久性(durability)

持久性指的是事务一旦提交完成,对数据库做出永久的改变,不会因后面的其他操作或故障对其产生影响。持久性主要通过redolog日志实现,该日志会记录修改的数据,出现问题时可以通过读取redolog中的数据对数据库进行恢复。

从上面描述中我们可以看出一致性是目的,原子性、隔离性和持久性都是为达成一致性的手段。

4.4.3事务的控制

创建需要用的表account:

mysqlcreatetableaccount

-(

-namevarchar(20)primarykey,

-depositdecimal(8,2)

-);

插入数据:

mysqlinsertintoaccount(name,deposit)

-values(A,1000),(B,200);

MySQL中的事务分为两种:隐式事务和显式事务。隐式事务由系统自动添加启动和提交事务的语句,如insert、update、delete等语句默认都是隐式事务。而显式事务需要手动添加启动事务、提交事务、回滚事务的语句。因Innodb引擎默认式隐式事务,可通过查看变量autocommit的来确认:

mysqlshowvariableslikeautocommit;

需要显示关闭隐式事务,可通过SET命令完成:

mysqlsetautocommit=off;

mysqlshowvariableslikeautocommit;

一、提交事务

【任务4.4.1】创建事务,完成账户A到账户B转账300元,并提交。

第一步:查看原来的

文档评论(0)

balala11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档