数据库——并发控制

1.事务的定义
用户定义的一组操作序列的集合,数据恢复和并发控制的基本单位。数据库系统在执行事务时,要么执行事务中全部操作,要么一个操作都不执行。

2.事务的特性(简称ACID)
 原子性(Atomicity):一个事务是不可分割的数据库逻辑工作单位,事务中包括的所有操作要么都做,要么都不做。
 一致性(Consistency):事务执行前后,数据从一个合法性状态变到
另一个合法性状态。(语义上的)

 隔离性(Isolation):一个事务的执行不能被其它事务干扰。
 持续性(Durability),也称持久性(Permanence):指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,其它操作或故障不对其产生任何影响。(通过事务日志来保证)

3.封锁技术
基本封锁类型
 ① 排它锁(eXclusive locks)又称X锁:如果某事务T对某数据建立了排它锁,则该事务能对该数据对象进行读、修改、插入和删除等操作,而其它事务则不能。
 ② 共享锁 (Shared locks)又称S锁:如果某事务对某数据建立了共享锁,则该事务能对该数据对象进行读操作,但不能进行修改等更新操作,而其它事务只能对该数据对象加S锁,而不能加X锁,即其它事务只能对该数据对象进行读操作。
 注意:要使用这两种锁,必须关闭自动提交(autocommit),或者明确开启一个事务

4.封锁协议
 ① 一级封锁协议
 某事务T若要修改某个数据对象,则必须先对该数据对象加X锁,直到事务结束才释放,它可防止“丢失修改”所产生的数据不一致性问题。

② 二级封锁协议
 一级封锁协议加上某事务T若要读取某个数据对象之前,则必须先对该数据对象加S锁,读完后即可释放S锁,这样可进一步防止“读脏数据”的问题。

③ 三级封锁协议
 一级封锁协议加上某事务T若要读取某个数据对象之前,则必须先对该数据对象加S锁,且直到该事务结束后才释放S锁,这样可进一步防止数据“不可重复读”的问题。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值