1.若事务T对数据R已经加X锁,则其他事务对数据R( )
不能加任何锁
2.并发操作会带来哪些数据不一致性( )
丢失修改、不可重复读、脏读
3.设事务T1和T2,对数据库中的数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作( D) 。
T1正在写A,T2要读A
T1正在写A,T2也要写A
T1正在读A,T2要写A
T1正在读A,T2也要读A
4.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是(D ) 。
一个是DELETE,一个是SELECT
一个是SELECT,一个是DELETE
两个都是UPDATE
两个都是SELECT
5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是( )
一级封锁协议
6.如果事务T获得了数据项Q上的排他锁,则T对Q( )
既可读又可写
7.关于“死锁”,下列说法中正确的是(D )
只有出现并发操作时,才有可能出现死锁
死锁是操作系统中的问题,数据库操作中不存在
在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库
当两个用户竞争相同资源时不会发生死锁
8.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为__的调度。
可串行化
9.基本的封锁类型有两种: 和
排他锁
共享锁
10.设T1, T2,T3是如下的三个事务:
T1: A=A+3; T2: A=A*5; T3: A=A**2 (A←A2) 设A的初值为0;
若这三个事务允许并发执行,请问有多少种可能的正确结果?请一一列举出来。
这里写代码片1
11.试述两段锁协议的概念。
指所有事务必须分两个阶段对数据项加锁和解锁。
第一阶段是获得封锁,也称为扩展阶段。
第二阶段是释放封锁,也称为收缩阶段。