- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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元,并提交。
第一步:查看原来的
您可能关注的文档
- MySQL数据库 授课计划.docx
- MySQL数据库 课程标准、授课计划.docx
- MySQL数据库 课程标准.docx
- MySQL数据库 题库 试题及答案.pdf
- MySQL数据库 题库 试题及答案.docx
- MySQL数据库 课件 1.1 MySQL的安装与配置.pptx
- MySQL数据库 课件 2.1 数据库的创建与数据表的开发.pptx
- MySQL数据库 课件 2.2 数据的操作.pptx
- MySQL数据库 课件 3.1 数据表的基本查询.pptx
- MySQL数据库 课件 3.2 数据表的高级查询.pptx
- 基础知识-土木工程师水利水电公共基础押题密卷4.docx
- 城乡规划相关知识-《城乡规划相关知识》模拟试卷6.docx
- 基础知识-土木工程师(水利水电)《公共基础考试》点睛提分卷1.docx
- 基础知识-土木工程师水利水电公共基础押题密卷1.docx
- 结构基础考试一级-一级注册结构工程师《公共基础考试》点睛提分卷1.docx
- 基础知识-土木工程师(水利水电)《公共基础考试》押题密卷2.docx
- 结构基础考试一级-一级注册结构工程师《公共基础考试》押题密卷1.docx
- 注册环保工程师公共基础-注册环保工程师《公共基础》深度自测卷1.docx
- 结构专业基础考试一级-2021年一级注册结构工程师《专业基础》真题.docx
- 注册环保工程师公共基础-环保工程师《公共基础考试》模拟试卷2.docx
文档评论(0)