niusouti.com

设T1,几,几是如下的3个事务:  T1:A : = A + 2 ;  T2:A : = A * 2 ;  T3:A : = A **2 ; ( A<-A*A) 设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。

题目

设T1,几,几是如下的3个事务:   T1:A : = A + 2 ;   T2:A : = A * 2 ;   T3:A : = A **2 ; ( A<-A*A)  设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。


相似考题
更多“设T1,几,几是如下的3个事务:   T1:A : = A + 2 ;   T2:A : = A * 2 ;   T3:A : = A **2 ; ( A<-A*A)  设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。”相关问题
  • 第1题:

    阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

    [说明]

    现有一个事务集{T1,T2,T3,T4},其中这4个事务在运行过程中需要读写表X、Y和 Z。设Ti对X的读操作记作TiR(X),Ti对X的写操作记作Tiw(X)。

    事务对XYZ的访问情况如下:

    T1:T1R(X)

    T2:T2R(Y),T2w(X)

    T3:T3w(Y),T3w(X),T3w(2)

    T4:T4R(Z),T4w(X)

    试述事务并发调度的正确性准则及其内容。


    正确答案:事务的可串行化调度。多个事务的并发执行是正确的当且仅当其结果与按某一次序串行执行它们时的结果相同。
    事务的可串行化调度。多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同。 解析:本题考查事务并发调度的知识。
    一次并发调度与某一串行调度的执行结果相同,称该调度是可串行化调度,是并发调度正确性的准则。
    调度信赖图的箭头所指事务必须在箭尾事务执行结束后才可执行。如调度序列中的 T3w(X)是T3事务对数据X加写锁,而些之前有T1事务对X加了读锁,因此T3,事务等到T1事务释放了X上的读锁之后才能加写锁,即T3事务依赖于T1事务的执行结束。
    根据事务依赖有向图,如果有一条包含所有事务结点的简单路径,则该路径上的结点序列即为并发调度等价的串行调度序列。从该图可得路径:Tl->T3->T2->T4,因此,题目给定的调度是正确的。
    事务的提交是随机的,事务程序使用加锁可以实现并发事务的隔离性,使用两段锁协议可以保证事务调度的可串行化。

  • 第2题:

    阅读下列说明,回答问题。

    【说明】

    现有事务T1,T2、L3它们对数值型数据A执行的操作分别如下:

    T1;将A加1。

    T2:将A加倍。

    T3:输出A的值,并将A置为1。

    假设T1、T2、T3可以并发执行。若A的初值为0,那么存在多少种可能的正确结果?


    正确答案:根据排列组合原理三个事务一共有6种排列结果: T1→T2→T3 A的值为1 T1→T3→T2 A的值为2 T2→T1→T3 A的值为1 T2→T3→T1 A的值为2 T3→T1→T2 A的值为4 T3→T2→T1 A的值为3
    根据排列组合原理,三个事务一共有6种排列结果: T1→T2→T3 A的值为1 T1→T3→T2 A的值为2 T2→T1→T3 A的值为1 T2→T3→T1 A的值为2 T3→T1→T2 A的值为4 T3→T2→T1 A的值为3

  • 第3题:

    阅读以下说明和关系表,回答问题1~2,将解答填入对应的解答栏内。

    [说明]

    设T1、T2是如下两个事务:

    T1:A=B+2

    T2:B=A*B

    A、B的初值分别是2和2。

    假设T1和T2可以并发执行,且对T1、T2的调度不加限制,它们的并发执行可能产生哪几种结果?


    正确答案:第一种调度:①读A=2B=2: (T1) ②A=B+2=4        (T1) ③写回A=4B=2 (T1) ④读A=4B=2 (T2) ⑤B=A*B=8 (T2) ⑥写回A=4B=8 (T2) 结果:A=4B=8 第二种调度:①读A=2B=2 (T2) ②B=A*B=4 (T2) ③写回A=2B=4 (T2) ④读A=2B=4 (T1) ⑤A=B+2=4 (T1) ⑥写回A=4B=4 (T2) 结果:A=4B=4 第三种调度:①读A=2B=2 (T1) ②读A=2B=2 (T2) ③A=B+2=4 (T2) ④B=A*B=4 (T2) ⑤写回A=4B=2 (T1) ⑥写回A=2B=4 (T2) 结果:A=2B=4 第四种调度:①读A=2B=2 (T2) ②读A=2B=2 (T1) ③B=A*B=4 (T2) ④A=B+2=4 (T1) ⑤写回A=2B=4 (T2) ⑥写回A=4B=2 (T1) 结果:A=4B=2 第五种调度:①读A=2B=2 (T1) ②A=B+2=4 (T1) ③读A=2B=2 (T2) ④B=A*B=4 (T2) ⑤写回A=4B=2 (T1) ⑥写回A=2B=4 (T2) 结果:A=2B=4 第六种调度:①读A=2B=2 (T2) ②B=A*B=4 (T2) ③读A=2B=2 (T1) ④A=B+2=4 (T1) ⑤写回A=2B=4 (T2) ⑥写回A=4B=2 (T1) 结果:A=4B=2
    第一种调度:①读A=2,B=2: (T1) ②A=B+2=4        (T1) ③写回A=4,B=2 (T1) ④读A=4,B=2 (T2) ⑤B=A*B=8 (T2) ⑥写回A=4,B=8 (T2) 结果:A=4,B=8 第二种调度:①读A=2,B=2 (T2) ②B=A*B=4 (T2) ③写回A=2,B=4 (T2) ④读A=2,B=4 (T1) ⑤A=B+2=4 (T1) ⑥写回A=4,B=4 (T2) 结果:A=4,B=4 第三种调度:①读A=2,B=2 (T1) ②读A=2,B=2 (T2) ③A=B+2=4 (T2) ④B=A*B=4 (T2) ⑤写回A=4,B=2 (T1) ⑥写回A=2,B=4 (T2) 结果:A=2,B=4 第四种调度:①读A=2,B=2 (T2) ②读A=2,B=2 (T1) ③B=A*B=4 (T2) ④A=B+2=4 (T1) ⑤写回A=2,B=4 (T2) ⑥写回A=4,B=2 (T1) 结果:A=4,B=2 第五种调度:①读A=2,B=2 (T1) ②A=B+2=4 (T1) ③读A=2,B=2 (T2) ④B=A*B=4 (T2) ⑤写回A=4,B=2 (T1) ⑥写回A=2,B=4 (T2) 结果:A=2,B=4 第六种调度:①读A=2,B=2 (T2) ②B=A*B=4 (T2) ③读A=2,B=2 (T1) ④A=B+2=4 (T1) ⑤写回A=2,B=4 (T2) ⑥写回A=4,B=2 (T1) 结果:A=4,B=2

  • 第4题:

    事务T1,T2,T3分别对数据D1,D2,D3并发操作如下图所示,其中T1与T2问的并发操作存在的问题是 (1) 。T2与T3问的并发操作存在的问题是 (2) 。

    1.


    正确答案:不能重复读
    不能重复读

  • 第5题:

    设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的县( )


    正确答案:D
    事务的并发执行可能出现3个主要问题:①丢失更新。即两个事务对同一数据进行读取并修改,先做的那个修改动作被后面的修改掩盖了。又称为丢失修改;②对未提交更新的依赖。即事务T1读取了一个事务T2正在更新但尚未提交的数据,这个数据是一个数据库中并不存在的值。也就是俗称的读“脏”数据。③不一致的分析。假设事务T1要对账户求和,先读了账户1余额,此时事务T2将钱从账户1转到账户2,事务T2提交后事务T1继续执行,读取账户2的余额加到总数中,显然转走的钱被算了两次。这就是不一致的分析,又称不可重复读。在本题中,T2在T1更新数据的过程中读取了数据,但之后T1执行了回滚操作,因此T2读到了脏数据。

  • 第6题:

    事务T1、T2和T3对相同的一组数据A、B和C进行操作,对于如下的一个并发调度,其中T1与T2间并发操作(45),T2与T3间并发操作 (46)。

    A.正确

    B.不能重复读

    C.将丢失修改

    D.将读“脏”数据


    正确答案:B
    解析:本题考查数据库并发控制方面的基础知识。所谓并发操作,是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。并发操作带来的问题是数据的不一致性,主要有三类:丢失更新、不可重复读和读脏数据。其主要原因是事务的并发操作破坏了事务的隔离性。
      事务T1、T2分别对数据A、B和C进行读写操作,在t4时刻,事务T1将A、B和C相加存入X1,X1等于180。在t8时刻,事务T2将C减去B存入B,B等于40。在t13时刻,事务T1将A、B和C相加存入X1,X1等于160,验算结果不对。这种情况称之为“不能重复读”。可见,试题(45)的正确答案是B。
      事务T2、T3分别对数据B和C进行读写操作,在t8时刻,事务T2将C减去B存入B,B等于40。在t14时刻,事务T3将B加50存入B,B等于90。这种情况丢失了事务T2对B的修改,将这种情况称之为“丢失修改”。

  • 第7题:

    某系统中事务T1从账户A转出资金到账户B中,在此事务执行过程中,另一事务T2要进行所有账户余额统计操作。在T1和T2事务成功提交后,数据库服务器突然掉电重启。为保证T2事务的统计结果及重启后A、B两账户余额正确,需要利用到的事务性质分别是()。

    A.一致性和隔离性

    B.原子性和一致性

    C.隔离性和持久性

    D.原子性和持久性


    参考答案:C

  • 第8题:

    试题五(共15分)

    阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

    【说明】

    假设有两项业务对应的事务T1、T2与存款关系有关:

    (1)转帐业务:T1(A,B,50),从帐户A向帐户B转50元;

    (2)计息业务:T2,对当前所有帐户的余额计算利息,余额为X*1.01。

    针对上述业务流程,回答下列问题:

    【问题1】(3分)

    假设当前帐户A余额为100元,帐户B余额为200元。有两个事务分别为T1 (A,B,50),T2,一种可能的串行执行为:

    T1(A, B, 50) ->T2结果:A= 50.5 B=252.5 A+B=303

    请给出其它的串行执行次序和结果。

    【问题2】(8分)

    若上述两个事务的一个并发调度结果如下:

    (1)上述调度是否正确,为什么?(3分)

    (2)引入共享锁指令Slock()、独占锁指令Xlock()和解锁指令Unlock(),使上述调度满足两段锁协议,并要求先响应T1的请求。请给出一个可能的并发调度结果。(5分)

    【问题3】(4分)

    若将计息业务T2改为对单个帐户的余额计算利息,即T2 (A)余额为A*1.01,请给出串行调度T1 (A,B,50) ->T2 (A) ->T2 (B)和串行调度T2 (A) ->T1 (A,B,50) ->T2 (B)的执行结果。

    若将计息业务设计为对单个帐户的余额计算利息,这种方案是否正确,为什么?


    正确答案:
    【问题1】(3分)
    T2->T1 (A,B,50) 结果:A= 51 B=252 A+B = 303
    【问题2】(8分)
    (1)调度不正确
    结果为:A= 50.5 B=252
    原因: 与任何一个串行结果都不同。
    (2)满足两段锁协议的调度:

    【问题3】(4分)
    三个事务的串行:
    (1) T1 (A,B,50) ->T2 (A) ->T2 (B)结果:A= 50.5 B=252.5
    (2) T2 (A) ->T1 (A,B,50) ->T2 (B)结果:A=51 B=252.5
    不正确。计息业务设计为对单个帐户的余额计算利息,无法实现对所有帐户的锁定和统一计息,其间的转账会产生数据错误,会造成银行或客户的损失。

  • 第9题:

    并发执行的三个事务T1、T2和T3,事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2、D3加了排它锁,之后事务T1对数据(请作答此空);事务T2对数据( )。

    A.D2、D3加排它锁都成功
    B.D2、D3加共享锁都成功
    C.D2加共享锁成功,D3加排它锁失败
    D.D2、D3加排它锁和共享锁都失败

    答案:D
    解析:
    并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。排它锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。

  • 第10题:

    从一批制件的加工时间来看,若平行方式为T1,平行顺序移动方式为T2,顺序移动方式为T3,则有()。

    • A、T1>T2>T3
    • B、T1<T2<T3
    • C、T2>T1>T3
    • D、T3>T1>T2

    正确答案:B

  • 第11题:

    在多个事务并发执行时,如果并发控制措施不好,则可能会造成事务T1读了事务T2的“脏”数据。这里的“脏”数据是指()。

    • A、T1回滚前的数据
    • B、T1回滚后的数据
    • C、T2回滚前的数据
    • D、T2回滚后的数据

    正确答案:D

  • 第12题:

    问答题
    设T1,几,几是如下的3个事务:   T1:A : = A + 2 ;   T2:A : = A * 2 ;   T3:A : = A **2 ; ( A<-A*A)  设A的初值为 0 。 若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。

    正确答案: A 的最终结果可能有 2 、 4 、 8 、 16 。因为串行执行次序有 T1 T2T3、 T1 T3T2、T2T1T3、T2T3T1、T3T1T2、T3T2 T1 。对应的执行结果是 16 、 8 · 4 · 2 · 4 · 2 。
    解析: 暂无解析

  • 第13题:

    阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。

    [说明] 设T1,T2,T3为如下所述的三个事务。

    T1:A:=A+1。

    T2: A:=A*2。

    T3:A:= 在屏幕上输出A,并将A置为1;其中A为数据库中的某个数据项。设A的初值为0。

    若这三个事务允许并行执行,则请列举出有多少可能的正确结果。


    正确答案:有6种可能的正确结果相应的6个串行调度是: T1-T2-T3:A=1 T1-T3-T2:A=2 T2-T1-T3:A=1 T2-T3-T1:A=2 T3-T1-T2:A=4 T3-T2-T1:A=3
    有6种可能的正确结果,相应的6个串行调度是: T1-T2-T3:A=1 T1-T3-T2:A=2 T2-T1-T3:A=1 T2-T3-T1:A=2 T3-T1-T2:A=4 T3-T2-T1:A=3

  • 第14题:

    如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2。接着T2又申请封锁R1。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成()。

    A 活锁

    B 死锁

    C 乐观锁

    D 悲观锁


    参考答案B

  • 第15题:

    事务T1、T2、T3分别对数据D1、D2和D3并发操作如下所示,其中T1与T2间并发操作(14),T2与T3间并发操作(15)。

    A.不存在问题

    B.将丢失修改

    C.不能重复读

    D.将读“脏”数据


    正确答案:C

  • 第16题:

    设事务T1和T2,对数据库中的数据X进行操作,可能有如下几种情形,其中不会发生冲突操作的是______。

    A.T1正在读X时,T2也要读X

    B.T1正在读X时,T2要写X

    C.T1正在写X时,T2也要写X

    D.T1正在写X时,T2要读X


    正确答案:A

  • 第17题:

    【说明】

    现有一个事务集{T1,T2,T3,T4),其中这四个事务在运行过程中需要读写X、Y和Z。设Ti对X的读操作记作TiR(X),Ti对X的写操作记作Tiw(X)。

    事务对XYZ的访问情况如下:

    T1: T1R(X)

    T2: T2R(Y),T2w(X)

    T3: T3w(Y),T3w(X),T3w(Z)

    T4: T4R(Z),T4w(X)

    试述事务并发高度的正确性准则及其内容。


    正确答案:事务的可串行化调度。多个事务的并发执行是正确的当且仅当其结果与按某一次序串行执行它们时的结果相同。
    事务的可串行化调度。多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同。 解析:串行调度:事务的依次执行称为串行调度。
    并发调度:利用分时的方法,同时处理多个事务,称为事务的并发调度。
    可串行化调度:对于事务集(T1>,T2>,...,T),如果一个并发调度的结果与一个串行调度等价,则称此调度是可串行化调度。它是并发调度正确性的准则。
    不可串行化调度:对于某事务集的一个并发调度结果,如果与任一串行调度均不等价,则该调度是不可串行化调度。
    调度信赖图的箭头所指事务必须在箭尾事务执行结束后才可执行。如调度序列中的 T3w(X)是T3事务对数据X加写锁,而之前有T1事务对X加了读锁,所以T3事务得等到T1事务释放了X上的读锁之后才能加写锁,即T3事务依赖于T1事务的执行结束。
    根据事务依赖有向图,如果有一条包含所有事务结点的简单路径,则该路径上的结点序列即为并发调度等价的串行调度序列。从该图可得路径:T1->T3->T2->T4,所以,题目给定的调度是正确的。
    事务的提交是随机的,事务程序使用加锁可以实现并发事务的隔离性,使用两段锁协议可以保证事务调度的可串行化。

  • 第18题:

    若系统中存在5个等待事务T0,T1,T2,T3,T4,其中:T0正等待被T1锁住的数据项A1, T1正等待被T2锁住的数据项A2,T2正等待被T3锁住的数据项A3,T3正等待被T4锁住的数据项A4,T4正等待被T0锁住的数据项A0,则系统处于(46)的工作状态。

    A.并发处理

    B.封锁

    C.循环

    D.死锁


    正确答案:D
    解析:本题考查关系数据库事务处理方面的基础知识。和操作系统一样,封锁的方法可能引起活锁和死锁。例如事务T1封锁了数据R,事务T2请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T2释放R上的封锁后系统又批准了T4的请求…T2有可能长期等待、这就是活锁。避免活锁的简单方法是采用先来先服务的策略。即让封锁子系统按请求封锁的先后次序对事务排队。数据R上的锁一且释放就批准申请队列中的第一个事务获得锁。又如事务T1封锁了数据R1,T2封锁了数据R2。然后T1又请求封锁R2,T2请求封锁R1。于是T1等待T2,释放R2上的封锁而同时T2等待T1释放R1上的封锁。这就使得两个事务永远不能结束。出现了死锁。

  • 第19题:

    在作业调度中,设T1为等待时间,T2为要求服务时间,T3为响应时间,R为响应比,则如下关系不正确的是( )。

    A.T3=T1+T2

    B.R=T3/T2

    C.R=T1/T2

    D.R与T2成反比


    正确答案:C
    解析:响应比是作业的响应时间与要求服务的时间的比值,而响应时间等于作业等待时间和作业要求服务的时间之和。

  • 第20题:

    假设存款余额x:1000元,甲事务取走存款300元,乙事务取走存款200元,其执行时间如下:甲事务 时间 乙事务读x t1 t2 读x 更新x二x—300 t3 14 更新x:x—200 如何实现这两个事务的并发控制? (计算题)


    答案:如果按照题中的顺序执行甲乙两个事务,则最后的x为800,而不是正确的500。为此,采用封锁的方法,将甲事务修改为: WHILE(x上已有排他锁) {等待 } 对x加上排他锁读x 更新x=x-300 释放排他锁将乙事务修改为: { 等待 } 对x加上排他锁读x 更新x=x-200 释放排他锁可以说明如下:甲事务 时间 乙事务 XLOCK x t1 获得 t2 XLOCK x 等待更新x=x-300 t3 等待 x=700 Commit t4 等待 UNLOCKx t5 等待 t6 获得XLOCK x t7 更新x=x-200 x=500 t8 Commit t9 UNLOCK x

  • 第21题:

    并发执行的三个事务T1、T2和T3,事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2、D3加了排它锁,之后事务T1对数据( );事务T2对数据(请作答此空)。

    A.D1、D3加共享锁都失败
    B.D1、D3加共享锁都成功
    C.D1加共享锁成功,D3加排它锁失败
    D.D1加排它锁成功,D3加共享锁失败

    答案:C
    解析:
    并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。排它锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。

  • 第22题:

    一物体从t0=0时刻开始做匀减速直线运动,发生一段位移所用时间为t,设位移中点时刻为t1,速度为v1,时间中点时刻为t2,速度为v2,下列说法正确的是()

    • A、t1=t2,v1=v2
    • B、t1>t2,v1>v2
    • C、t1<t2,v1<v2
    • D、t1<t2,v1>v2

    正确答案:D

  • 第23题:

    设事务T1和T2,对数据库中的数据A进行操作,下列情况中不会发生冲突的是()。

    • A、T1正在写A、T2要读A
    • B、T1正在写A、T2也要写A
    • C、T1正在读A、T2要写A
    • D、T1正在读A、T2要读A

    正确答案:D