《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第1张图片

目录

 知识点:封锁+活锁+死锁+可串行化调度

考题1:可串行化调度

 考题2:调度正确判断&共享锁+写锁

考题3: 事务调度+死锁


知识点:封锁+活锁+死锁+可串行化调度

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第2张图片

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第3张图片

考题1:可串行化调度

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第4张图片 《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第5张图片

 考题2:调度正确判断&共享锁+写锁

现在有两个事务,分别包含以下操作:
事务T1:读A: B=A+200;写回B。
事务T2:读B: A=B+100; 写回A。
设A和B的初始值分别是100和200。如下调度是
否是正确的调度?说明理由。

在按照图中顺序运行时,其运行结果为:A=300,B=300。与
情况1:T1 -> T2次序运行,结果A=400,B=300。
情况2:T2 -> T1次序运行,结果A=300, B=500。都不相同。故,错误。 

     《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第6张图片

考题3: 事务调度+死锁

给定A和B两个事务,设i和j的初始值分别是20和80。

事务A             事务B

读i;                   读i;

i:=i*i;                读j;

写i;                   j:=i*j;     

                        写j;

(1)请问如下调度是否是正确的调度,并说明理由。

(2)请问事务A和事务B在执行过程中,是否会发生死锁?为什么?      

  1. 正确。考虑B -> A次序执行,i=400,j=1600。与图中结果相符合。
  2. 不会死锁。因为事务A仅对i封锁和释放
    事务B中封锁和释放j,不会有
    A领B锁住的数据,同时
    B锁A已经封锁过的数据

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第7张图片

    

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】_第8张图片

你可能感兴趣的:(数据库系统概论,笔记,数据库,mysql,sql,database)