数据库原理:第十一章作业

1.设T1、T2、T3,是如下的三个事务,设A的初值为0。
T1:A:=A+2;
T2:A:=A*2:
T3:A:=A**2; (即 A←A^2)
(1)若这三个事务允许并发执行,则有多少种可能的正确结果?请一一列举出来。

设A初始为 A=0;

当并行的结果和某一个串行的结果一致时,证明并行结果正确。

则有以下几种情况

1.T1T2T3 ------A=16

2.T1T3T2 ------A=8

3.T2T1T3 ------A=4

4.T2T3T1 ------A=2

5.T3T1T2 ------A=4

6.T3T2T1 ------A=2

即可能的结果有:16 8 4 2

(2)请给出一个可串行化的调度,并给出执行结果。

数据库原理:第十一章作业_第1张图片

(3)请给出一个非串行化的调度,并给出执行结果。

数据库原理:第十一章作业_第2张图片
(4)若这三个事务都遵守两段锁协议,请给出一一个不产生死锁的可串行化调度。

数据库原理:第十一章作业_第3张图片
(5)若这三个事务都遵守两段锁协议。请给出一个产生死锁的调度.

数据库原理:第十一章作业_第4张图片

2.今有三个事务的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?为什么?

数据库原理:第十一章作业_第5张图片

3.考虑T1和T2两个事务。
T1: R(A); R(B);B=A+B; W(B) T2:R(B); R(A);A=A+B; W(A)
(1)改写T1和T2,增加加锁操作和解锁操作, 并要求遵循两阶段封锁协议。
(2)说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度并说明之。

数据库原理:第十一章作业_第6张图片

数据库原理:第十一章作业_第7张图片

你可能感兴趣的:(DB实验,mysql)