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

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

A.一致性和隔离性

B.原子性和一致性

C.隔离性和持久性

D.原子性和持久性


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

    某事务从账户A转出资金并向账户B转入资金,此操作要么全做,要么全不做,为了保证该操作的完整,需要利用到事务性质中的______性。


    正确答案:原子
    原子 解析:事务的原子性是指事务中包括的所有操作要么都做,要么都不做。

  • 第2题:

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


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

  • 第3题:

    事务提交(COMMIT)后,对数据库的更新操作可能还停留在服务器的磁盘缓冲区中,而未写入到磁盘,即使此时系统出现故障,事务的执行结果仍不会丢失,称为事务的 (54) 。为保证事务的此性质,需要利用数据库的 (55) 。

    (54)

    A.原子性

    B.一致性

    C.隔离性

    D.持久性


    正确答案:D

  • 第4题:

    假设存款余额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

  • 第5题:

    事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于(请作答此空);解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行( )操作。

    A.事务故障
    B.系统故障
    C.介质故障
    D.病毒

    答案:A
    解析:
    常见的数据库故障类型分为事务故障、系统故障和介质故障。其中,事务故障是指事务在运行至正常中止点前被中止,此时恢复子系统应利用日志文件撤销(UNDO)此事务对数据库已做的修改。依题意,事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于事务故障。其解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行UNDO操作。

  • 第6题:

    运行中的系统因为故障导致服务器重启,正在执行的事务中断,破坏了事务的原子性,恢复的方法是利用日志进行(请作答此空)操作;而已经提交的事务在故障发生时尚未写入磁盘,破坏了事务的( ),恢复的方法是利用日志进行Redo操作。

    A.Undo
    B.Redo
    C.CoDunit
    D.Rollback

    答案:A
    解析:
    本题考查故障与恢复的基础知识。故障导致服务器重启,故障时正在执行的事务的原子性被破坏,即事务没有执行完,其对数据库的部分更新可能己经写入硬盘上的数据库文件,重启后这部分更新使得数据库处于不一致性状态,应对其进行处理,撤销故障时未完成的事务对数据库的更新,使数据库还原到未完成的事务执行前的状态,相当于这些事务没有执行。这种恢复操作借助于日志文件来完成。日志按照时间顺序记录了所有事务对数据库的更新操作。而且在对数据库的更新之前已被写入硬盘。可以逆向扫描日志记录,找出未完成的事务,将其对数据库的修改还原,称为Undo操作。同样,故障发生时已经完成提交的事务,其对数据库的修改可能还在内存中的I/O缓冲区中,没来得及写入硬盘,重启后这部分修改会丢失,破坏了事务的持久性。同样借助于日志文件,找到故障前已完成的事务,将其对数据库的更新重做一遍,即可完成对应事务的更新操作。这一操作称为Redo操作。

  • 第7题:

    事务一旦提交,即使在写入数据库前数据尚在内存中而发生故障造成系统重启,该事务的执行结果也必须入数据库,该性质称为事务的( ),为保证这一性质,必须使用(请作答此空)。

    A.镜像
    B.数据库备份
    C.日志
    D.两段锁协议

    答案:C
    解析:
    本题考查数据库恢复的基础知识。数据库故障会造成数据的不一致。数据库的更新是由事务驱动的,事务的ACID属性被破坏是数据不一致的根本原因。系统重启会使内存中更新过的数据未写入硬盘而丢失,破坏了事务的持久性,即事务一经提交,其对数据库的影响会体现到数据库中。为保证事务发生故障后可恢复,DBMS使用日志。即在对数据更新前,先将欲做的修改在日志中记录并写入硬盘,然后再进行数据更新。当系统重启时,根据日志文件对数据进行恢复。

  • 第8题:

    事务一旦提交,即使在写入数据库前数据尚在内存中而发生故障造成系统重启,该事务的执行结果也必须入数据库,该性质称为事务的(请作答此空),为保证这一性质,必须使用( )。

    A.原子性
    B.一致性
    C.隔离性
    D.持久性

    答案:D
    解析:
    本题考查数据库恢复的基础知识。数据库故障会造成数据的不一致。数据库的更新是由事务驱动的,事务的ACID属性被破坏是数据不一致的根本原因。系统重启会使内存中更新过的数据未写入硬盘而丢失,破坏了事务的持久性,即事务一经提交,其对数据库的影响会体现到数据库中。为保证事务发生故障后可恢复,DBMS使用日志。即在对数据更新前,先将欲做的修改在日志中记录并写入硬盘,然后再进行数据更新。当系统重启时,根据日志文件对数据进行恢复。

  • 第9题:

    在执行长时间的数据库操作的时候,需要数据库的事务支持来确保信息的完整性,下面关于事务的说法,不正确的是()

    • A、使用SQLiteDatabese的beginTransaction()方法可以开启一个事务
    • B、当程序执行到endTransaction()方法的时候,会检查事务的标志是否为成功
    • C、当应用需要提交事务,必须在程序执行到endTransaction()方法之前使用setTransactionSuccessful()方法设置事务的标志为成功,如果不调用该方法,就会默认回滚事务
    • D、SQLite允许嵌套事务

    正确答案:D

  • 第10题:

    如果事务T1需要两次读取同一数据项A,但是在两次读操作的间隔中,另一个事务T2改变了A的值,那么此并发操作所引起的问题是()

    • A、丢失更新
    • B、死锁
    • C、不可重复读
    • D、读脏数据

    正确答案:C

  • 第11题:

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

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

    正确答案:D

  • 第12题:

    单选题
    以下对于事务的叙述,比较全面的是()
    A

    事务中的操作是一个整体,要成功都成功,要失败都失败

    B

    事务可以把所操作的数据库由一个状态转变到另一个状态

    C

    事务在提交之前,其它事务看不到它对数据库的影响

    D

    事务提交后,其结果将在数据库中得以体现

    E

    以上所述都是正确的


    正确答案: A
    解析: 暂无解析

  • 第13题:

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

    A.一致性和隔离性

    B.原子性和一致性

    C.隔离性和持久性

    D.原子性和持久性


    正确答案:C
    两个事务并发执行时,隔离性保证其并行结果正确性。当事务提交后断电,则持续性保证其对数据库的改变是永久的,结果不受影响。事务的四个性质:原子性、一致性、隔离性、持久性。原子性描述的是事务中包括的诸多操作为了保持一致性要么都做,要么都不做;一致性描述的是事务执行结果从一个一致性到另一个一致性的变化。由题目可知,Tl、T2事务若要使A、B结果正确,则必须遵守事务的原子性和一致性。

  • 第14题:

    数据库系统必须控制事务的并发执行,保证数据库 (45) 。假设事务T1、T2分别对数据A和B进行的操作如下图所示,事务T1与T2间的并发调度为可串行化调度的是 (46) 。

    (45)

    A.处于一致的状态

    B.不存在冗余的信息

    C.操作不出现死循环

    D.备份的完整性


    正确答案:A

  • 第15题:

    试题五(共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
    不正确。计息业务设计为对单个帐户的余额计算利息,无法实现对所有帐户的锁定和统一计息,其间的转账会产生数据错误,会造成银行或客户的损失。

  • 第16题:

    事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于( );解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行(请作答此空)操作。

    A.UNDO
    B.REDO
    C.UNDO+REDO
    D.REDO+UNDO

    答案:A
    解析:
    常见的数据库故障类型分为事务故障、系统故障和介质故障。其中,事务故障是指事务在运行至正常中止点前被中止,此时恢复子系统应利用日志文件撤销(UNDO)此事务对数据库已做的修改。依题意,事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于事务故障。其解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行UNDO操作。

  • 第17题:

    并发执行的三个事务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锁修改。

  • 第18题:

    并发执行的三个事务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锁修改。

  • 第19题:

    假如该调度已经产生死锁,如果要从事务T1,T2中进行回滚以解除死锁,从代价最小的角度考虑,应回滚事务( )。

    A.T1
    B.T2
    C.T1和T2
    D.T1或T2

    答案:B
    解析:
    本题考查事务调度的知识。事务的执行由DBMS进行调度,在执行事务的过程中加入相关锁指令以控制事务满足ACID属性。常用的方式是两段锁协议(2PL),即事务的加锁和解锁分为两个阶段,第一阶段为锁增长阶段,只能加锁不能解锁,第二阶段为锁减少阶段,只能解锁不能加锁。图中的调度,事务T1对8、A两个数据项加锁中间无解锁指令,满足2PL协议;事务T2对A、B两个数据项加锁中间无解锁指令,也满足2PL协议。2PL协议不能避免死锁。图中事务T1先对数据项B加了独占锁,事务T2先对数据A加了共享锁;随后事务T2申请数据项B上的共享锁,只能等待事务T1释放B上的独占锁;事务T1申请数据项A上的独占锁,只能等待事务T2释放A上的共享锁。两个事务相互等待造成死锁。死锁的解除由DBMS来完成。需要在造成死锁的多个事务中选择一个回滚代价最小的事务进行强制回滚,并将该事务置于事务队列中稍后执行。图中事务T1对数据B己经做了修改,事务T2只是读取了数据A,相对而言,回滚事务T2代价最小。

  • 第20题:

    假设有两台服务器进行同步复制,当主服务器上一个事务T所有操作完成后,应该执行何种操作以进行同步复制()。

    • A、提交事务T,向从服务器发送T对数据的修改
    • B、暂不提交事务T,向从服务器发送T对数据的修改
    • C、若从服务器发出成功信号,主服务器提交事务,然后命令从服务器提交事务
    • D、若从服务器发出失败信号,主服务器命令从服务器回滚事务,然后自身回滚事务T

    正确答案:B,D

  • 第21题:

    设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 。

  • 第22题:

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

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

    正确答案:D

  • 第23题:

    以下对于事务的叙述,比较全面的是()

    • A、事务中的操作是一个整体,要成功都成功,要失败都失败
    • B、事务可以把所操作的数据库由一个状态转变到另一个状态
    • C、事务在提交之前,其它事务看不到它对数据库的影响
    • D、事务提交后,其结果将在数据库中得以体现
    • E、以上所述都是正确的

    正确答案:E