事务T1,T2,T3分别对数据D1,D2,D3并发操作如下图所示,其中T1与T2间的并发操作存在的问题是 (1) 。T2与T3间的并发操作存在的问题是 (2) 。
时间 | T1 | T2 | T3 |
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 | 读D1=50 读D2=100 读D3=300 x1=D1+D2+D3 读D1=50 读D2=200 读D3=300 x1=D1+D2+D3 验证不对 | 读D2=100 读D3=300 D2=D3-D2 写D2 | 读D2=100 D2=D2+50 写D2 |
参考答案:[2]丢失修改
解析: 本题考查数据库并发控制方面的基础知识应用。所谓的并发操作,是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。并发操作带来的问题是数据的不一致性,主要有丢失更新、不可重复读和读脏数据3类,丢失更新指事务T1与事务T2从数据库中读入同一数据,并修改,事务T2的提交结果破坏了事务T1提交的结果,导致事务T1的修改被丢失。不可重复读是指事务T1读取数据后,事务T2执行更新操作,使事务T1无法再现前一次读取结果。读脏数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,事务T1由于某种原因被撤销,这时事务T1已修改过的数据恢复原值,事务T2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为脏数据。