第10章 关系数据库事务管理(课件)-《数据库应用技术-SQL Server》同步教学(机械工业版)
2024-01-01
|
54页
|
49人阅读
|
2人下载
普通
内容正文:
第10章 关系数据库事务管理
本单元教学目标
理解事务控制的原理、规则
深入理解解事务的ACID特性
深入认识关系数据库事务级别分类
掌握关系数据库事务控制方法
认识、了解事务的概念、作用
3
事务管理
问题的引入
事务
并发控制
4
问题的引入
多用户同时操作数据库
系统在执行用户的请求时出现故障
例如:帐户A转帐给帐户B10000元。
UPDATE YHZH SET 余额=余额-10000 WHERE 帐号=‘A’
UPDATE YHZH SET 余额=余额+10000 WHERE 帐号=‘B’
5
事务的基本概念
事务(Transaction)
用户定义的一个对数据库读写操作序列
一个不可分割的工作单位
在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。
事务和程序的区别?
程序包含多个事务
6
事务的性质
原子性(Atomicity)
事务中的操作要么都做,要么都不做 (All or None)
一致性(Consistency)
在事务完成或回滚时,必须使所有的数据都保持一致状态,即所有数据必须是完整性的,所有数据都必须是正确的。
隔离性(Isolation)
并发执行的各事务不能相互干扰
持续性/永久性(Durability)
事务一旦提交,它对数据库的更新不再受后继操作或故障的影响
★ DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确。
7
事务的基本概念
事务的开始和结束可以由用户显式控制。
SQL定义事务的语句
Start transaction(事务开始)
Commit (事务提交,正常结束,将更新结果写入磁盘)
Rollback (事务回滚,撤销事务中所有已完成的更新)
8
事务的基本概念
显式定义方式
START TRANSACTION START TRANSACTION
SQL 语句1 SQL 语句1
SQL 语句2 SQL 语句2
。。。。。 。。。。。
COMMIT ROLLBACK
9
COMMIT
事务正常结束
提交事务的所有操作(读+更新)
事务中所有对数据库的更新永久生效
ROLLBACK
事务异常终止
事务运行的过程中发生了故障,不能继续执行,回滚事务的所有更新操作
事务回滚到开始时的状态
事务的基本概念
10
事务的基本概念
隐含事务与自动提交
ALTER INSERT
CREATE DELETE
DROP SELECT
UPDATE TRUNCATE TABEL
11
例:删除仓库“WH1”表,并将职工T表当中所有在“WH1”仓库中职工记录删除
事务案例
BEGIN TRANSACTION MYDEL
DELETE FROM 仓库T
WHERE 仓库号='WH1'
DELETE FROM 职工T
WHERE 仓库号='WH1'
IF @@ERROR<>0
ROLLBACK TRANSACTION MYDEL
ELSE
COMMIT TRANSACTION MYDEL
12
并发控制|干扰问题
丢失更新问题
读“脏”数据问题
不一致分析问题
幻象读问题
13
更新丢失问题
用SQL术语描述丢失更新问题
14
脏读问题|Dirty Read
读“脏”(Dirty Read)数据问题:查询一个已经被其他事务更新、但尚未提交的数据,将会引起脏读问题。
15
不一致分析问题
不一致分析问题也称为不可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。
如,对某个数据(a=10)作两次校验:
1、检查其值是否为 2的倍数,
2、检查其减去20后是否大于0(a-20>0)
如果在第1与第2步之间,这个数据被其它进程更改为25(a=25)则这个不合法的数据将变为合法数据。
16
幻读问题
幻象读问题与不一致分析问题有关
当事务A读数据时
事务B在对同一个关系(事务A的结果集)进行插入或删除操作
这时事务A再遍历结果集时(读同一条件的数据),会发现神秘地多出了一些元组或丢失了一些元组
把这种现象称作幻象读
17
封锁
封锁的基本技术
封锁机制
MySQL中与封锁有
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。