两阶段锁协议可以保证并发调度的可串行性。关于两阶段锁协议,下列说法错误的是A.在一个可串行化调度中,并不一定所有事务都必须符合两阶段锁协议B.如果一个事务遵循两阶段锁协议,则这个事务中的第一个解锁操作必须出现在该事务的最后一个加锁操作之后C.如果一个事务已经对数据项A加了共享锁,则其他事务不能再对A加任何锁D.在解锁阶段,事务可以释放任何数据项上的任何类型的锁

题目

两阶段锁协议可以保证并发调度的可串行性。关于两阶段锁协议,下列说法错误的是

A.在一个可串行化调度中,并不一定所有事务都必须符合两阶段锁协议

B.如果一个事务遵循两阶段锁协议,则这个事务中的第一个解锁操作必须出现在该事务的最后一个加锁操作之后

C.如果一个事务已经对数据项A加了共享锁,则其他事务不能再对A加任何锁

D.在解锁阶段,事务可以释放任何数据项上的任何类型的锁


相似考题
参考答案和解析
正确答案:C
解析:锁的类型有两种:①互斥锁(X锁),若事务T获得Q上的X锁,则T可以读取和修改Q,其他事务不能再对Q进行任何操作,直到T释放Q上的锁。②共享锁(S锁),若事务T获得Q上的S锁,则T可以对Q进行读取操作,但不可以修改。此时,允许其他事务再申请获得Q上的s锁,与T并行读取Q。但在T释放Q上的S锁之前,其他事务不能对Q做任何修改。
更多“两阶段锁协议可以保证并发调度的可串行性。关于两阶段锁协议,下列说法错误的是A.在一个可串行化调 ”相关问题
  • 第1题:

    下列叙述中正确的是( )。

    A.遵守两阶段封锁协议的并发事务不一定是可串行化的

    B.遵守两阶段封锁协议的并发事务也有可能发生死锁

    C.遵守两阶段封锁协议的并发事务一定不会发生级联回滚

    D.遵守两阶段封锁协议的并发事务的所有锁一定要到事务提交之后才解锁


    正确答案:B
    解析:保证可串行性的一个协议是两阶段封锁协议。该协议要求每个事务分为两个阶段提出加锁和解锁申请。在增长阶段中,事务可以获得锁但不能释放锁。在缩减阶段中,事务可以释放锁但不能获得新锁。两阶段封锁协议保证可串行性。不幸的是两阶段封锁协议也有一些问题,如无法避免级联回滚。此外封锁自身也会引发问题,主要的问题是死锁。死锁指的是两个或更多的事务同时处于等待状态,每个事务都在等待其他的事务释放锁使其可继续执行。严格两阶段封锁协议除了要求封锁是两阶段之外还要求事务持有的所有排他锁必须在事务提交之后方可释放。因此选项A)、C)、D)是错误的。

  • 第2题:

    若并发事务的调度是可串行化的,则这些事务一定都遵守两段锁协议。()


    答案:错
    解析:
    两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)。事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。即可串行化的调度中,不一定所有事务都必须符合两段锁协议。

  • 第3题:

    16、下列叙述中正确的是——

    A.遵守两阶段锁协议的并发事务一定是可串行化的。

    B.遵守两阶段锁协议的并发事务一定不会发生死锁。

    C.遵守两阶段锁协议的并发事务一定不会发生级联回滚。

    D.遵守两阶段锁协议的并发事务的所有锁一定要到事务提交之后才解锁。


    D

  • 第4题:

    下面说法中错误的是( ).

    A.并发事务如果不加控制,可能会破坏事务的隔离性
    B.可串行化调度是正确的调度
    C.两段锁协议能够保证可串行化调度
    D.两段锁协议能够确保不会产生死锁

    答案:D
    解析:

  • 第5题:

    简答题 两端锁协议 关系数据库有哪几种完整性约束 并发调度的可串行化调度


    BCD