文档详情

MySQL数据库应用与开发技术课件:关系数据库事务管理.pptx

发布:2025-05-23约6.58千字共54页下载文档
文本预览下载声明

MySQL数据库应用与开发技术关系数据库事务管理

本单元教学目标理解事务控制的原理、规则深入理解解事务的ACID特性深入认识关系数据库事务级别分类掌握关系数据库事务控制方法认识、了解事务的概念、作用

3事务管理问题的引入事务并发控制

4问题的引入多用户同时操作数据库系统在执行用户的请求时出现故障例如:帐户A转帐给帐户B10000元。UPDATEYHZHSET余额=余额-10000WHERE帐号=‘A’UPDATEYHZHSET余额=余额+10000WHERE帐号=‘B’

5事务的基本概念事务(Transaction)用户定义的一个对数据库读写操作序列一个不可分割的工作单位在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。事务和程序的区别?程序包含多个事务

6事务的性质原子性(Atomicity)事务中的操作要么都做,要么都不做(AllorNone)一致性(Consistency)在事务完成或回滚时,必须使所有的数据都保持一致状态,即所有数据必须是完整性的,所有数据都必须是正确的。隔离性(Isolation)并发执行的各事务不能相互干扰持续性/永久性(Durability)事务一旦提交,它对数据库的更新不再受后继操作或故障的影响★DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确。

7事务的基本概念事务的开始和结束可以由用户显式控制。SQL定义事务的语句Starttransaction(事务开始)Commit(事务提交,正常结束,将更新结果写入磁盘)Rollback(事务回滚,撤销事务中所有已完成的更新)

8事务的基本概念显式定义方式STARTTRANSACTIONSTARTTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2。。。。。。。。。。COMMITROLLBACK

9COMMIT事务正常结束提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效ROLLBACK事务异常终止事务运行的过程中发生了故障,不能继续执行,回滚事务的所有更新操作事务回滚到开始时的状态事务的基本概念

10事务的基本概念隐含事务与自动提交ALTERINSERTCREATEDELETEDROPSELECTUPDATETRUNCATETABEL

11例:删除仓库“WH1”表,并将职工T表当中所有在“WH1”仓库中职工记录删除事务案例BEGINTRANSACTIONMYDELDELETEFROM仓库TWHERE仓库号=WH1DELETEFROM职工TWHERE仓库号=WH1IF@@ERROR0ROLLBACKTRANSACTIONMYDELELSECOMMITTRANSACTIONMYDEL

12并发控制|干扰问题丢失更新问题读“脏”数据问题不一致分析问题幻象读问题

13更新丢失问题用SQL术语描述丢失更新问题

14脏读问题|DirtyRead读“脏”(DirtyRead)数据问题:查询一个已经被其他事务更新、但尚未提交的数据,将会引起脏读问题。

15不一致分析问题不一致分析问题也称为不可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。如,对某个数据(a=10)作两次校验:1、检查其值是否为2的倍数,2、检查其减去20后是否大于0(a-200)如果在第1与第2步之间,这个数据被其它进程更改为25(a=25)则这个不合法的数据将变为合法数据。

16幻读问题幻象读问题与不一致分析问题有关当事务A读数据时事务B在对同一个关系(事务A的结果集)进行插入或删除操作这时事务A再遍历结果集时(读同一条件的数据),会发现神秘地多出了一些元组或丢失了一些元组把这种现象称作幻象读

17封锁封锁的基本技术封锁机制MySQL中与封锁有关的命令封锁粒度意向锁

18封锁的基本原理当需要查询或更新数据时,先对数据进行封锁,以避免来自其他事务的干扰。针对不同的干扰问题可以有不同的封锁机制。

19封锁的基本原理(更新

显示全部
相似文档