软考-软件设计师:数据库技术基础-事务、并发控制(脏读、幻读、不可重复读、锁) 作者:马育民 • 2025-04-30 10:23 • 阅读:10006 # 事务 详见: https://www.malaoshi.top/show_1EF3uCskLf9s.html # 并发的问题 脏读、不可重复读、幻读 https://www.malaoshi.top/show_1IX9gVCVzZP.html ### 解决 通过 **并发控制** 解决 # 并发控制 [](https://www.malaoshi.top/upload/0/0/1GW12RJo2cyK.png) ### S锁(共享锁/读锁)加锁规则 若事务T对数据 `对象A` 加上 `S锁`,其他事务只能对 `A` 加 `S锁`,不能再对 `A` 添加 `X锁` 其他事务 **只能读、不能写** ### X锁(写锁/排他锁/独占锁)的加锁规则 若事务T对数据 `对象A` 加上 `X锁`,其他事务对A **不能再添加任意锁** 其他事务 **不能读、不能写** # 题 事务的()是指,当某个事务提交交(COMMIT)后,对数据库的更新操作可能还停留在服务器磁盘缓冲区而未写入到磁盘时,即使系统发生故障,事务的执行结果仍不会丢失。 A、原子性 B、一致性 C、隔离性 D、持久性 ### 答案 D # 题 系统中有三个事务T1、T2、T3分别对数据R1和R2进行操作,其中R1和R2的初值R1=120、R2=50。假设事务T1、T2、T3操作的情况如下图所示,图中T1与T2间并发操作( )问题,T2与T3间并发操作( )问题。 [](https://www.malaoshi.top/upload/0/0/1GW12RPqz1KU.png) A、不存在任何 B、存在T1不能重复读的 C、存在T1丢失修改的 D、存在T2读“脏”数据的 A、不存在任何 B、存在T2读“脏”数据的 C、存在T2丢失修改的 D、存在T3丢失修改的 ### 答案 第一问:B,因为 T1 两次读取的R2不同 第二问:C # 题 若事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2和数据 D3加了排它锁,则事务务() A、T1对数据D2D3加排它锁都成功,T2T3对数据D1加共享锁成功 B、T1对数据D2D3加排它锁都失败,T2T3对数据D1加排它锁成功 C、T1对数据D2D3加共享锁都成功,T2T3对数据D1加共享锁成功 D、T1对数据D2D3加共享锁都失败,T2T3对数据D1加共享锁成功 ### 答案 D 原文出处:http://malaoshi.top/show_1GW12RadjLLo.html