早教吧作业答案频道 -->其他-->
sqlsever并发控制思考题1.设T1、T2、T3是如下的三个事务:T1:A=A+3T2:A=A*2T3:A=A^2(A的平方)设A的初值为0:(1)若这三个事务允许并发执行,则有多少种可能的正确调度结果,请一一列举出来;(2)写
题目详情
sql sever 并发控制思考题
1.设T1、T2、T3是如下的三个事务:
T1:A=A+3
T2:A=A*2
T3:A=A^2(A的平方)
设A的初值为0:
(1)若这三个事务允许并发执行,则有多少种可能的正确调度结果,请一一列举出来;
(2)写出一个可串行化的并发调度和结果;
(3)写出一个非可串行化的并发调度和结果;
(4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;
(5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
2.考虑下列两个事务:
T1:READ(A) T2:READ(B)
READ(B) READ(A)
IF A=0 THEN B:=B+1 IF B=0 THEN A:=A+1;
WRITE(B) WRITE(A)
设数据库的一致性要求是A=0 or B=0,A、B的初值为0。
(1)写出这两个事务的所有串行操作及其执行结果;
(2)写一个遵守两段锁协议的且不发生死锁的并发调度策略;
(3)写一个遵守两端锁协议的发生死锁的并发调度策略。
1.设T1、T2、T3是如下的三个事务:
T1:A=A+3
T2:A=A*2
T3:A=A^2(A的平方)
设A的初值为0:
(1)若这三个事务允许并发执行,则有多少种可能的正确调度结果,请一一列举出来;
(2)写出一个可串行化的并发调度和结果;
(3)写出一个非可串行化的并发调度和结果;
(4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;
(5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
2.考虑下列两个事务:
T1:READ(A) T2:READ(B)
READ(B) READ(A)
IF A=0 THEN B:=B+1 IF B=0 THEN A:=A+1;
WRITE(B) WRITE(A)
设数据库的一致性要求是A=0 or B=0,A、B的初值为0。
(1)写出这两个事务的所有串行操作及其执行结果;
(2)写一个遵守两段锁协议的且不发生死锁的并发调度策略;
(3)写一个遵守两端锁协议的发生死锁的并发调度策略。
▼优质解答
答案和解析
当多个用户同时更新同一数据的时候,由于更新可能导致数据的不一致性,使得程序的业务数据发生错误,这种情况可以称之为并发。在ADO .NET中,并发的处理可以通过三种方式来控制:保守式并发控制、开发式并发控制以及最后更新生效方式。
— 保守式并发控制:数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕之后,用户才能取出该数据进行操作。此种控制方式对于性能和资源占用得很多,由于只能同时有一个用户对数据享用操作权,所以可能会在正常业务中,影响其他用户的处理进程。但此控制方式可以完全保证数据的完整性。该方式可以通过.NET提供的事务机制来实现,前提是数据源需要支持事务。
— 开发式并发控制:数据在更新之前都是可以被其他用户使用的,只有在更新的时候,才锁定记录。但更新的时候,会比对与查询之初的数据是否吻合,如果不一致,则不运行修改。此种控制方式也可以完全保证数据的完整性,其优点是不会占用其他用户访问该数据的权限,其缺点是由于其他用户可能已经更新了这些数据,导致本次更新可能不会完成。对于此种控制方式,多以开发人员通过程序本身的业务逻辑来实现。
— 最后更新生效方式:此种方式同上,只有在数据更新的时候,其他用户才不可使用,但更新的时候不检查是否与开始数据一致,而直接对其更新。此种方式对于更新的并发性有很大的支持,但缺点是可能引发前后数据的不一致。此种方式适合可以满足此需求的业务场景使用。
注意:数据库的并发处理并不是一成不变的,不同的业务场景对数据库的并发要求是不一样的,可以根据具体情况具体分析
— 保守式并发控制:数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕之后,用户才能取出该数据进行操作。此种控制方式对于性能和资源占用得很多,由于只能同时有一个用户对数据享用操作权,所以可能会在正常业务中,影响其他用户的处理进程。但此控制方式可以完全保证数据的完整性。该方式可以通过.NET提供的事务机制来实现,前提是数据源需要支持事务。
— 开发式并发控制:数据在更新之前都是可以被其他用户使用的,只有在更新的时候,才锁定记录。但更新的时候,会比对与查询之初的数据是否吻合,如果不一致,则不运行修改。此种控制方式也可以完全保证数据的完整性,其优点是不会占用其他用户访问该数据的权限,其缺点是由于其他用户可能已经更新了这些数据,导致本次更新可能不会完成。对于此种控制方式,多以开发人员通过程序本身的业务逻辑来实现。
— 最后更新生效方式:此种方式同上,只有在数据更新的时候,其他用户才不可使用,但更新的时候不检查是否与开始数据一致,而直接对其更新。此种方式对于更新的并发性有很大的支持,但缺点是可能引发前后数据的不一致。此种方式适合可以满足此需求的业务场景使用。
注意:数据库的并发处理并不是一成不变的,不同的业务场景对数据库的并发要求是不一样的,可以根据具体情况具体分析
看了sqlsever并发控制思考题...的网友还看了以下:
下列说法中可以充分说明反应:P(气)+Q(气)⇌R(气)+S(气),在恒温下已达平衡状态的是()A 2020-04-26 …
下列说法中可以充分说明反应:P(气)+Q(气)⇌R(气)+S(气),在恒温下已达平衡状态的是()A 2020-04-26 …
猴子选大王问题 Free Pascal提示202堆栈溢出错type arr=array[1..10 2020-05-17 …
急,几道高中数学题(命题及其关系)!1、如果A是B的充分条件,则B是A的()条件;非A是非B的() 2020-06-03 …
(¬(p→(((¬q)∧r))∨((¬p∨r)∧(q∧s))))(¬(p→(((¬q)∧r))∨( 2020-06-06 …
为什么要用这个减法S(n)-q*S(n)?是为了求什么因为x^n这是一个等比数列,首项为x,公比也 2020-07-11 …
C中求三角形面积问题#include#includevoidmain(){doublea,b,c, 2020-07-23 …
C语言求三角形面积问题#include#includevoidmain(){doublea,b,c 2020-07-23 …
关于不等式的数学题1.P、Q、R、S四人,S比P重,P和R比Q和S重,Q和R、P和S一样重,求四个人 2020-12-14 …
小张称P、O、R、S四个砝码在天平上的重量如下图,这四个砝码的重量是:可看出这四位小朋友的体重是() 2020-12-21 …