加载中…
个人资料
luomlk
luomlk
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,996
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

二、数据库并发控制

(2013-09-06 16:15:12)
标签:

并发控制

加锁

隔离级别

死锁

分类: 数据库原理
一、事务的ACID属性
1.原子性(Atomicity):事务所有操作在数据库中要么全部执行,要么全部不执行。
2.一致性(Consistency):事务多次执行其结果应一致。
3.隔离性(Isolation):事务与事务之间隔离,并发执行透明。
4.持续性(Durability):事务完成之后,数据改变必须是永久的。

二、事务并发处理需要解决的问题
1.丢失更新
有两个并发事务同时读取同一行数据,然后其中一个对它进行修改提交,而另一个也进行了修改提交。这就会造成第一次写操作失效。
二、数据库并发控制

二、数据库并发控制

2.不可重复读
是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
二、数据库并发控制

3.脏数据读取
当一个事务读取另一个事务尚未提交的修改时,产生脏读。
二、数据库并发控制
4.幻象读
是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
二、数据库并发控制
5.不可重复读与幻象读的区别
不可重复读的重点是修改 :同样的条件,你读取过的数据,再次读取出来发现值不一样。 
幻读的重点在于新增或者删除:同样的条件,第 1 次和第 2 次读出来的记录数不一样。

三、并发控制方法
二、数据库并发控制
二、数据库并发控制

四、事务的可串行化
二、数据库并发控制
两阶段锁协议:增长阶段(只能进行加锁,不能释放锁定)、收缩阶段(只能释放锁定,不能申请加锁)

五、死锁
二、数据库并发控制

二、数据库并发控制

六、锁定方法
二、数据库并发控制

二、数据库并发控制

七、事务隔离级别
二、数据库并发控制


八、三级封锁协议
一级封锁协议:
    在事务修改数据的时候加x锁,直到事务结束(提交或者回滚)释放x锁。事务T读数据不加锁。一级封锁协议可以有效的防止丢失更新,但是不能防止脏读不可重复读的出现。
二级封锁协议:
    在一级封锁的基础上事务读数据的时候加s锁,读取之后释放。二级封锁协议可以防止丢失更新,脏读。不能防止不可重复读。
三级封锁协议:
    在一级封锁的基础上事务读数据的时候加s锁,直到事务结束释放。二级封锁协议可以防止丢失更新,脏读,不可重复读。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有