- 3
- 0
- 约1.19万字
- 约 43页
- 2022-06-28 发布于湖南
- 举报
第10章其它概念
——事 务
01
事务与ACID属性
事务与ACID属性
用一个简单地例子来帮助理解事务:向公司添加一名新地雇员,如图10.1所示。这里地过程由3个
基本步骤组成:在雇员数据库中为雇员创建一条记录;为雇员分配部门;建立雇员地工资记录。这3项任
务构成了一个事务,任何一个任务地失败都会导致整个事务被撤销,而使系统返回到以前地状态。
在形式上,每个事务地处理需要满足ACID原则,即原子性
(Atomicity),一致性(Consistency),隔离性(Isolation)与持久
性(Durability)。
(1)原子性。原子性意味着每个事务都需要被认为是一个不
可分割地单元。假设一个事务由两个或者多个任务组成,其中地语
句需要同时成功,才能认为事务是成功地。如果事务失败,系统将会
返回到事务以前地状态。
(2)一致性。不管事务是完全成功完成还是中途失败,当事务
使系统中地所有数据处于一致地状态时存在一致性。参照前面地例
子,一致性是指如果从系统中删除了一个雇员,则所有与该雇员有关
地数据,包括工资数据与组地成员资格也要被删除。
事务与ACID属性
(3)隔离性。隔离性是指每个事务在它自己地空间发生,与其它发生在系统中地事务隔离,而
且事务地结果只有在它完全被执行时才能看到。即使在这样地一个系统中同时发生了多个事务,隔
离性原则也会保证某个特定事务在完全完成之前,其结果是看不见地。
(4)持久性。持久性意味着一旦事务执行成功,在系统中产生地所有变化将是永久地。即使系
统崩溃,一个提交地事务仍然存在。当一个事务完成,数据库地日志已经被更新时,持久性就开始发生
作用了。大多数RDBMS产品通过保存所有行为地日志来保证数据地持久性,这些行为是指在数据
库中以任何方法更改数据。数据库日志记录了所有对于表地更新,查询,报表等。
02
多用户使用问题
多用户使用问题
当多个用户对数据库并发访问时,可能会导致丢失更新,脏读,不可重复读与幻读等问题。
● 丢失更新(lost update):指当两个或多个事务选择同一行,然后基于最初选定地值更新该
行时,由于每个事务都不知道其它事务地存在,因此最后地更新将重写由其它事务所做地更新,这将
导致数据丢失。
● 脏读(dirty read):指一个事务正在访问数据,而其它事务正在更新该数据,但尚未提交,此
时就会发生脏读问题,即第一个事务所读取地数据是脏 (不正确)数据,它可能会引起错误。
● 不可重复读(unrepeatable read):当一个事务多次访问同一行且每次读取不同地数据时,
会发生此问题。不可重复读与脏读有相似处,因为该事务也是正在读取其它事务正在更改地数据。
当一个事务访问数据时,另外地事务也访问该数据并对其进行修改,因此就发生了由于第二个事务对
数据地修改而导致第一个事务两次读到地数据不一样地情况,这就是不可重复读。
● 幻读(phantom read):当一个事务对某行执行插入或删除操作,而该行属于某个事务正在
读取地行地范围时,会发生幻读问题。事务第一次读地行范围显示出其中一行已不复存在于第二次
读或后续读中,因为该行已被其它事务删除。
1.开始事务
03 2.结
您可能关注的文档
最近下载
- 配送食材供货难点分析及解决方案.docx VIP
- 光学冷加工辅材介绍.doc VIP
- TCQFX001-2024四川省机动车维修工时定额标准.pptx VIP
- 公司职工代表大会提案表原创6份精).docx VIP
- 9.3 阿基米德原理 课件(共29张PPT) 沪科版(2025)初中物理八年级全一册(内嵌音频+视频).pptx VIP
- 蔡礼旭《细讲弟子规》.doc VIP
- 山洪灾害监测预警系统项目方案.doc VIP
- 【教学】《鸿雁》公开课比赛一等奖.ppt
- 2025年内蒙古中考道法真题卷含答案解析.doc VIP
- 高毒力碳青霉烯类耐药肺炎克雷伯菌感染诊治与防控专家共识解读2026.pptx VIP
原创力文档

文档评论(0)