将并发异常与最小操作特征匹配
正确答案:丢失修改 → 两个事务基于同一旧值写回,后写覆盖先写;脏读 → 一个事务读取了另一未提交事务的修改;不可重复读 → 同一事务两次读取同一行得到不同已提交值;幻读 → 同一事务重复执行范围查询时出现或消失满足条件的行
四类异常的区别在于被覆盖、读到未提交值、同行变化或结果集合成员变化
Tab / Shift+Tab 切换项目,方向键选择;Ctrl+Enter 提交答案
请先完成作答
正确答案:丢失修改 → 两个事务基于同一旧值写回,后写覆盖先写;脏读 → 一个事务读取了另一未提交事务的修改;不可重复读 → 同一事务两次读取同一行得到不同已提交值;幻读 → 同一事务重复执行范围查询时出现或消失满足条件的行
四类异常的区别在于被覆盖、读到未提交值、同行变化或结果集合成员变化
Tab / Shift+Tab 切换项目,方向键选择;Ctrl+Enter 提交答案
请先完成作答
正确答案:READ UNCOMMITTED → 可能出现脏读、不可重复读和幻读;READ COMMITTED → 防止脏读,但仍可能不可重复读和幻读;REPEATABLE READ → 防止脏读和不可重复读,标准层面仍可能幻读;SERIALIZABLE → 目标是让并发结果等价于某个串行次序
隔离级别描述保证,不同 DBMS 的具体实现可能使用锁或多版本技术,不能只凭名称推断内部机制
Tab / Shift+Tab 切换项目,方向键选择;Ctrl+Enter 提交答案
请先完成作答
正确答案:已有 S 锁时,另一个事务请求 S 锁可以并发读取、已有 S 锁时,另一个事务请求 X 锁通常需要等待、已有 X 锁时,另一个事务请求 S 锁通常需要等待、已有 X 锁时,另一个事务请求 X 锁通常需要等待
S 锁共享读,X 锁保护写;不相容请求通常进入等待而不是立即同时执行
可按数字键选择;请先作答,再提交答案
请先完成作答
正确答案:让 T2 等待,直到冲突锁释放或事务被处理
X 与已有 S 不相容,封锁把潜在读写冲突转换为可管理的等待
可按数字键选择;请先作答,再提交答案
请先完成作答
正确答案:一级封锁协议 → 修改前加 X 锁并保持到事务结束,主要防止丢失修改;二级封锁协议 → 在一级基础上,读取前加 S 锁,读完可释放,进一步防止脏读;三级封锁协议 → 读取与修改都加相应锁并保持到事务结束,进一步防止不可重复读
协议差异不仅在是否加锁,还在锁的持有时间;幻读还涉及谓词或范围保护
Tab / Shift+Tab 切换项目,方向键选择;Ctrl+Enter 提交答案
请先完成作答
正确答案:业务能够容忍哪些异常、一致性错误的后果、读写冲突和并发需求、DBMS 对隔离级别的实际实现、事务长度和重试成本
隔离是在一致性保证、等待、版本成本和吞吐之间的业务取舍
可按数字键选择;请先作答,再提交答案
请先完成作答
对照答案:两次写入都基于同一旧值,后写覆盖先写,产生丢失修改,正确结果应为 14。可在读取并更新余票时取得足够强的写锁并保持到事务结束,或使用带条件的原子 UPDATE 和影响行数检查;也可采用能检测写写冲突并重试的并发机制。关键是让两个修改不能同时基于过期值成功提交
请先在头脑中组织答案,再查看对照答案