数据库题目之并发控制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mind_programmonkey/article/details/86235065

一、选择题:

1、.设有两个事务T1T2,其并发操作如下所示,下面评价正确的是    

A.该操作不存在问题 B.该操作丢失修改 C.该操作不能重复读 D.该操作读“脏”数据  

【答案:】B

T1

T2

①读A=10

A=A-5写回

 

A=10

A=A-8写回

 

2、设有两个事务T1T2,其并发操作如下所示,下面评价正确的是    

A.该操作不存在问题 B.该操作丢失修改 C.该操作不能重复读  D.该操作读“脏”数据  

【答案:】C

T1

T2

①读A=10B=5

③读A=20B=5

求和25验证错

 

A=10

A=A*2写回

 

 

3、设有两个事务T1T2,其并发操作如下所示,下列评价正确的是  

A.该操作不存在问题 B.该操作丢失修改 C.该操作不能重复读 D.该操作读“脏”数据   

【答案:】D

 

T1

T2

①读A=100

A=A*2写回

ROLLBACK

恢复A=100

 

A=10

 

 

4、解决并发操作带来的数据不一致性总是普遍采用    

A.封锁 B.恢复 C.存取控制 D.协商    

【答案:】A

5、若事务T对数据R已经加X锁,则其他事务对数据R     

A.可以加S锁不能加X B.不能加S锁可以加XC.可以加S锁也可以加X D.不能加任何锁

【答案:】D

6、关于“死锁”,下列说法中正确的是       

A.死锁是操作系统中的问题,数据库操作中不存在 B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库

C.当两个用户竞争相同资源时不会发生死锁 D.只有出现并发操作时,才有可能出现死锁   

【答案:】D

7、对并发操作若不加以控制,可能会带来      问题。

A.不安全 B.死锁 C.死机 D.不一致           

【答案:】D

8、并发操作会带来哪些数据不一致性      

A.丢失修改、不可重复读、脏读、死锁 B.不可重复读、脏读、死锁

 C.丢失修改、脏读、死锁  D.丢失修改、不可重复读、脏读        

【答案:】D

  • 填空题

1、DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列;并发控制的主要方法是  机制。

【答案:】封锁

2、有两种基本类型的锁,它们是  共享锁    排它锁  

【答案:】①共享锁 ②排它锁

  • 简答题

1、叙述数据库中死锁产生的原因和解决死锁的方法。答:死锁产生的原因:封锁可以引起死锁。比如事务T1封锁了数据A,事务T2封锁了数据B。T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。T2又申请封锁数据A,但A已被T1封锁,所以也处于等待状态。这样,T1和T2处于相互等待状态而均不能结束,这就形成了死锁。解决死锁的常用方法有如下三种:(1)要求每个事务一次就要将它所需要的数据全部加锁。(2)预先规定一个封锁顺序,所有的事务都要按这个顺序实行封锁。(3)允许死锁发生,当死锁发生时,系统就选择一个处理死锁代价小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务能继续运行下去。

2、基本的封锁类型有几种?试叙述它们的含义。

答:基本的封锁的类型有排它锁(“X”锁)和共享锁(“S”锁)两种。

若事务T对数据A加上X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。

若事务T对数据A加上S锁,则其他事务可以再对A加S锁,而不能加X锁,直到T释放A上的锁。

3、什么是活锁?

如果事务 Tl 封锁了数据 R ,事务几又请求封锁 R ,于是几等待。几也请求封锁 R ,当 Tl 释放了 R 上的封锁之后系统首先批准了几的请求,几仍然等待。然后几又请求封锁 R ,当几释放了 R 上的封锁之后系统又批准了几的请求 … … 几有可能永远等待,这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。

展开阅读全文

没有更多推荐了,返回首页