数据库事务调度大题详解

知识点:

事务调度的准则:

(1)一组事物的调度满足:包含所有事物的操作指令,且指令顺序不变

(2)并行调度必须保证:可串行化,将所有可能的串行调度结果推演一遍,对于某个具体的并行调度再执行一遍,看看结果是否相同        实质就是给俩调度T1,T2,先看T1 - T2和T2 - T1的结果,再看题目中给出的结果,比较是否相同

封锁:

X锁(排他锁),某事物对数据对象上锁后,可读可改,其他事物不能碰这个对象了

S锁(共享锁),某事物对数据对象上锁后,可读不可改,其他事物可添S,不能添X

表示方法:上锁Slock()释放锁Unlock()  看题目写

封锁协议

一级:写前加写锁,事物结束释放写锁,防止丢失修改

二级:写前加写锁,读前加读锁,读完释放读锁,事物结束释放写锁,防止丢失修改和读脏数据

三级:写前加写锁,读前加读锁,事务结束释放各锁,防止丢失修改,读脏数据,不可重复读

只要遵循三级封锁协议,无论事物如何交叉并行,都是可串行化的调度

两段锁协议:要加锁就一直加,要释放就一直释放

调度的结果如下:

不满足可串行化,因此调度方法不正确

看执行顺序,不能就等待,我们先给T1的X上锁,然后给T2的X上锁,后续T2的X由于没解锁,因此需要等待,可画出图像

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关系数据库事务数据库操作的逻辑单位,它将一系列操作作为一个不可分割的工作单元进行处理。事务具有以下四个特性,通常称为ACID属性: 1. 原子性(Atomicity):事务中的操作要么全部执行成功,要么全部失败回滚,没有中间状态。 2. 一致性(Consistency):事务在执行前后,数据库的状态保持一致。事务的执行不会违反数据库的完整性约束。 3. 隔离性(Isolation):并发执行的多个事务之间应该相互隔离,每个事务都感觉不到其他事务的存在。 4. 持久性(Durability):事务一旦提交,其结果应该永久保存在数据库中,即使发生系统故障也不会丢失。 事务调度方法用于并发执行多个事务,保证事务之间的隔离性和一致性。以下是几种常见的事务调度方法: 1. 串行调度(Serial Schedule):事务按顺序一个接一个地执行,不存在并发执行的情况。确保了最高的隔离性和一致性,但并发性能较差。 2. 可串行化调度(Serializable Schedule):通过并发控制技术,使得并发执行的事务具有串行化的效果。一般使用封锁(Locking)技术来实现。 3. 时间戳调度(Timestamp Schedule):为每个事务分配一个唯一的时间戳,按照时间戳的顺序执行事务,确保事务之间的隔离性和一致性。 4. 优先级调度(Priority Schedule):为每个事务分配一个优先级,根据优先级来决定事务的执行顺序。 需要注意的是,事务调度方法的选择要根据具体的应用场景和需求来确定,不同的方法有不同的特点和适用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值