第3部分:关系数据库管理系统原理part3

第3部分:关系数据库管理系统原理part3

 

第11章:并发控制

要求

  • 准确掌握基本概念

  • 熟练判断调度是否冲突等价,是否为冲突可串⾏化调度

  • 熟练运⽤两阶段锁协议和锁管理器的原理来产⽣并发事务调度

  • 熟练判断是否产⽣死锁

 

事务:

  • 事务的定义、事务的表示、事务的ACID性质

事务的定义

img

事务的表示

img

事务的ACID性质

  • 原子性:全部或者不执行

  • 一致性:事务成功执行,数据库的规则不会被违反

  • 隔离性:不受干扰

  • 持久性:永久写入

img

原子性

img

持久性

img

一致性

img

隔离性

img

事务和DBMS的联系

img

调度:

  • 调度的定义、串⾏调度、⾮串⾏调度、可串⾏化调度、冲突、冲突等价、冲突可串⾏化调度、冲突可串⾏化调度的判定⽅法

调度的定义

  • 事务的序列就是调度

img

串行调度

img

非串行调度

img

调度的正确性分析

img

 

img

 

img

 

img

异常

img

脏写

  • 一个事务在提交之前,被另一个事务修改同一个属性值(污染了写的属性)

img

脏读

  • 一个事务读取了另一个事务未提交的写入,读取了dirty的值

img

幻读

  • 一项事务正在查找,别的事务插入了新的数据,这时第一个事务就会出现幻觉(发现没有被查询到的新事务);

img

 

 

不可重复读

  • 读的第二变发现已经被修改了

img

等价调度

img

可串行化调度

img

 

img

 

img

隔离级别

img

读未提交

  • 未提交的事务的修改被可见

img

 

img

读提交

  • 已提交才能可见

img

 

  • 提交后还是可能出现幻读和不可重复读

 

img

可重复读

img

 

img

可串行话

img

冲突可串行化

img

操作冲突的定义

img

写写冲突

img

写读冲突

img

读写冲突

  • 写之前被读了

img

可串行化调度的判断

冲突等价

img

通过冲突等价判断

img

通过交换不冲突的对判断

  • 交换两个不冲突的对

img

非冲突可串行化调度

img

可串行化调度的测试判定

img

 

img

 

img

基于锁的并发控制协议:

  • 锁的作⽤、锁的类型(共享锁、互斥锁)、封锁协议、锁管理器(锁的兼容矩阵、锁的请求、锁的释放)、两阶段锁协议、死锁、死锁检测⽅法、死锁解除⽅法、死锁预防⽅法

并发控制协议

img

并发控制协议分类

img

锁的定义

img

锁的并发事务执行举例

img

锁的类型

img

锁的相容矩阵

img

共享锁和互斥锁的并发事务执行举例

  • 任然可能有问题,加锁解锁有空隙,被人更改了

img

二阶段锁协议

  • 先加锁再解锁

img

 

img

  • 可能级联中止,一个终止其它都要终止(后面的读了一个写了个值)

  • 可能死锁,一个请求A,有B锁;一个请求B,有A锁

img

级联中止

img

 

严格调度

img

强两阶段锁

  • 最后才解锁

img

 

img

 

img

死锁的定义

img

死锁的处理

img

死锁检测

img

等待图

img

死锁的解除

img

 

img

死锁的预防

img

wait-Die规则

img

wound-wait规则

img

第12章:故障恢复

要求

  • 准确掌握基本概念

  • 熟练掌握Undo、Redo、Undo/Redo⽇志的原理

 

故障恢复:

  • 故障的类型、故障恢复的作用

 

img

 

img

事务故障

img

系统故障

img

存储介质故障

img

数据库⽇志:

  • ⽇志⽂件、⽇志记录、记录⽇志的规则

     

img

  • 缓冲池是否覆盖到磁盘上的问题

img

关于steal

img

关于FORCE

img

四种缓冲池策略

  • 系统运⾏时的⼯作过程、故障恢复时的⼯作过程

  • steal不管是不是提交,都写;no steal 已提交的才能写,缓冲区效率低

  • FORCE提交后才能写

  • NOFORCE 脏页直接写,无所谓,IO效率更高

img

NO-STEAL FORCE

  • 缺点,缓冲区得很大

img

预写式日志

img

wal协议

img

 

img

 

img

 

img

WAL的分类

img

Undo⽇志:

  • 系统运⾏时的⼯作过程、故障恢复时的⼯作过程

     

img

运行时的行为

img

 

img

故障恢复

img

从后往前扫描

 

img

 

img

 

 

 

Redo⽇志:

 

img

正常运行行为

steal 无所谓写不写

nosteal 只有提交了才能写

no force 无所谓顺序

force 一定要在提交之前写

img

 

img

故障恢复行为

img

从前往后扫描

img

 

img

 

Undo/Redo⽇志:

  • 系统运⾏时的⼯作过程、故障恢复时的⼯作过程

 

img

谁都可能在前面

正常运行行为

img

 

img

故障恢复

img

 

img

 

img

 

 

img

 

img

检查点:

  • 检查点的作⽤

检查点作用

img

 

img

 

img

 

img

Redo

  • 找完整的

  • 从bigin之后找到最后

img

 

img

 

img

 

img

undo

从最后找到begin中最早的事务记录

img

 

img

 

例子

 

img

 

 

posted @ 2022-05-20 02:25  我不是k  阅读(363)  评论(0编辑  收藏  举报