数据库原理与应用
第 9 章 数据库并发控制与封锁
第 9 章
数据库并发控制与封锁
多个用户同时操作数据库时会出现什么问题,事务、隔离级别和封锁怎样保证数据的一致性。
1
第一节 并发与事务
5 页
数据库并发性的含义,事务的概念、事务语句和四个性质
01
章首
02
并发性
03
事务的概念
04
转账事务
05
ACID
实验一
事务的提交与回滚
5 个实验
在一个窗口中练习事务:先看自动提交模式,再用 START TRANSACTION、ROLLBACK、COMMIT 控制事务,最后执行一次完整的转账事务。
1-1
自动提交模式
1-2
回滚事务
1-3
提交事务
1-4
转账事务
1-5
连接断开时的事务
2
第二节 数据的不一致性
4 页
并发操作不加控制时,会出现的四种数据不一致性
06
并发控制
07
丢失更新与脏读
08
不可重复读与幻象读
09
小结
3
第三节 事务的隔离级别
5 页
SQL 标准的四种隔离级别,查看和设置隔离级别,以及例 9-2 到例 9-4
10
四种级别
11
读未提交
12
读已提交
13
可重复读
14
串行化
实验二
事务的隔离级别
5 个实验
用两个窗口模拟两个并发的事务,按课件例 9-2 到例 9-4,比较四种隔离级别下读到的数据。
2-1
查看和设置隔离级别
2-2
读未提交:读到脏数据
2-3
读已提交:不可重复读
2-4
可重复读
2-5
串行化
4
第四节 封锁及封锁协议
8 页
封锁粒度,X 锁和 S 锁,LOCK TABLES,三级封锁协议,死锁与活锁
15
封锁与粒度
16
X 锁和 S 锁
17
LOCK TABLES
18
封锁协议
19
死锁
20
判断死锁
21
活锁
22
小结
实验三
封锁与死锁
5 个实验
用两个窗口观察行级锁和表级锁:同时修改同一行、给表加写锁和读锁、让读锁保持到事务结束,最后制造一次死锁。
3-1
同时修改同一行
3-2
表级写锁
3-3
表级读锁
3-4
读锁保持到事务结束
3-5
死锁
保山学院
·
人工智能教研室
·
曹鼎鼎