数据库—事务—并发控制技术

来源:互联网 发布:3d地图制作软件 编辑:程序博客网 时间:2024/04/30 07:54

一、事务。

事务指的是连续的对数据库操作的集合,对于一个事务中的所有的数据库操作,要么全部成功,要么全部失败。

允许多个用户同时使用的数据可系统为多用户数据库系统。多用户数据库系统的特点是:在同一时刻,并发运行的事务数量可以达到成千上万个。

多事务执行方式有三种:

1)事务的串行执行;(每个时刻只有一个事务执行,不能充分利用系统资源,发挥数据库共享资源的特点)

2)事务的交叉并发方式;(单处理机系统)

3)事务的同时并发方式;(多处理机系统,每个处理机运行一个事务,也是事务并发执行最理想的方式,受制于硬件环境,需要更复杂的并发控 制机制)

二、并发控制。

并发控制是和事务紧密相关的概念,并发控制通常是指对事务的并发控制。事务是并发控制的基本单位。数据库管理系统必须提供并发控制机制,并发控制是衡量一个数据库管理系统性能的重要指标之一。并发控制机制的任务是保证数据的隔离性和一致性。

并发操作带来的数据不一致性可以分为三部分:

1)丢失更新;

2)不可重复读;

3)读“脏”数据;


如上图所示:

1)丢失更新

丢失更新指的是事务T1和T2之间为“修改--修改”的关系。比如,数据库中原本机票价格为1000元,事务T1为将机票价格+100元,事务T1读到机票价格为1000元,执行操作+100元,事务T2也读取机票价格为1000元,将机票价格+200元,事务T1提交数据,之后事务T2提交数据,机票价格变为事务T2的1200元,事务T1的更新操作被覆盖掉了,叫做丢失更新。

2)不可重复读

不可重复读发生于事务T1和T2之间为“读--更新”的关系。其中,更新包括三类:修改、删除和插入。

  1. “读--修改”。事务T1在读机票数据为1000元,事务T2修改机票价格为1200元,事务T1想确认一下,再读出的机票价格为1200元,与第一次不一致;
  2. “读--删除”。事务T1读出数据库中有20条机票价格的数据,事务T2对此20条数据进行了删除其中2条的操作,事务T1再读出的机票价格只有18条信息,与第一次不一致,导致其中2条数据莫名的消失了;
  3. “读--插入”。事务T1读出数据库中有20条数据,事务T2插入两条数据,事务T1再一次读,得到的结果有22条数据,与第一次读出的条数不一致,莫名多了两条数据。
其中“读--删除”和“读--插入”会导致两次读出的结果莫名的增加或减少,因此,这两种情况又叫做“幻影读”。

3)读“脏”数据

读“脏”数据发生于事务T1和T2之间为“修改--读”的关系。比如,机票价格为1000元,T1将机票价格修改为1200元并写回到磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,机票价格回到1000元,T2读到的数据和数据库中的不一致,此为读“脏”数据。

数据不一致的原因:并发控制破坏了事务的隔离性。


并发控制的主要技术:
1.封锁
2.时间戳
3.乐观控制法
4.多版本并发控制





阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 睾丸旁边疼 睾丸酸疼 男性睾丸肿大 右睾丸肿大 睾丸有肿块 睾丸有异味 睾丸酸痛 睾丸炎是什么 左睾丸隐痛 睾丸附睾炎 只有一个睾丸 男子睾丸 右侧睾丸鞘膜积液 睾丸属于什么科 睾丸肿大是怎么回事 睾丸有点隐痛 睾丸左边疼 睾丸的作用 右侧睾丸疼痛吃什么药 睾丸肿疼 睾丸微疼 睾丸外部瘙痒 睾丸有疙瘩 睾丸扭转有多疼 睾丸刺痛 睾丸红肿疼痛 睾丸肿大疼痛 睾丸炎怎么办 睾丸有坠胀感 睾丸右侧疼痛 睾丸大小不一样是怎么回事 左侧睾丸胀痛 睾丸触碰疼痛 做完爱睾丸疼 睾丸附近疼痛 腮腺炎引起的睾丸炎 怎么让睾丸变大 睾丸皮痒 睾丸炎检查 睾丸里有硬块 睾丸蜕皮