[数据库管理]-并发控制

本文介绍了数据库并发控制中的问题,如丢失修改、脏读和不可重复读。封锁技术作为解决手段之一,包括一级、二级和三级封锁协议。同时,文章讨论了死锁及其预防和诊断解除方法,如超时法和等待图法。最后,阐述了数据库事务的四种隔离级别,用于平衡并发问题和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、并发操作中存在的问题

事务并发执行会产生以下几个问题:
1. 丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改丢失。
2. 读“脏数据”:事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因撤销,这时T1修改过的数据恢复原值,T2得到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。
3. 不能重复读:事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果
二、封锁技术

所谓封锁是在一段时间内禁止某些用户对数据对象做某些操作,以避免产生数据的不一致性问题。只有当一个事务在一个数据项持有某种锁时,才允许改事务访问这个数据。
封锁一般有排它锁定(X锁)和共享锁(S锁)两种类型。如果事务T获得了数据项Q上的排它锁,既可以读写Q又可写Q,其他事务在Q上既不能加X锁也不能加S锁。如果事务T获得了数据项Q上的共享锁,则T可读Q但不能写Q,其他事务在Q上可以加S锁,但不能加X锁。每个事务要根据自己将对数据项Q进行的操作申请适当的锁,该请求发送给并发控制管理器只有在并发管理器授予所需要的锁之后,事务才能继续其操作。

三、可串行化

假设若干相互独立的事务在单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值