事务处理技术之一并发控制技术.doc

事务处理技术之一并发控制技术.doc

ID:53559858

大小:75.00 KB

页数:4页

时间:2020-04-04

事务处理技术之一并发控制技术.doc_第1页
事务处理技术之一并发控制技术.doc_第2页
事务处理技术之一并发控制技术.doc_第3页
事务处理技术之一并发控制技术.doc_第4页
资源描述:

《事务处理技术之一并发控制技术.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、M第十三章寧务处理技术Z-:并发控制技术事务是数据库的一个操作序列,是数据库应用程序的基本逻辑单元。事务处理包括并发控制和数据库恢复。并发控制机构用于控制多个事务的并发运行,避免相互十扰,保证每个事务产生正确的结果。数据库恢复机构用于系统失败后的恢复处理,确保数据库恢复到正确状态。本章讨论并发控制技术。第一节并发控制的必要性第二节事务模型第三节事务调度与可串行性第四节基于锁的并发控制协议第五节时间印协议第六节其它并发控制技术第七节插入和删除操作Ml第一节并发控制的必要性多个用户同时使用的数据库系统称

2、为多用户数据库系统。例如,由于飞机售票系统和银行通存通取业务系统均需要同时处理多个用户提交的数据库事务,因此都属于多用户数据库系统。本章讨论的多用户数据库系统仅考虑单处理机。在这种情况下,多个程序的并发运行实际是轮流交叉运行,任何时刻至多仅一个程序在运行。运行中的程序在等待信息时被挂起,让其它程序运行。当等待的信息到来而处理机空闲,程序就在被挂起处恢复执行。一个存取或改变数据库内容的程序的运行称为一个数据库事务,简称为事务。对多个同时运行的事务需要适当控制,这不但可以减少处理机的空闲时间,提高系统效

3、率,而11可以避免发生一些错误。下边三个例子说明,对并发运行的多个事务如果不加以适当控制将会引起一些问题。接下页Mil对并发不加控制而引起问题例1:数据更新丢失问题寧务T1:两寧务并发执行设始值为x80,在x取出n事务T1事务T2n5,m4,加到Y上去readx若按先T1后T2readxxx-n或先T2后T1xx-nreadx的串行执行,writexxxm结果是x79;readywritex但按左边表格所示yynready的并发执行顺序,writey.writex结果却是x84oyyn这个并发执行的

4、结事务T2:writey.果是错误的。在x添加m产生错i吴的原因是readxT2在T1把更新数据xxm写入磁盘Z前读x,writex.丢失T1对x更新结杲接下页M12对并发不加控制而引起问题例2:临时值问题事务T1:两事务并发执行事务T1读y失败,在X取出n事务T1事务T2本应恢复x,加到Y上去readx但x已被T2更新,readxxx-n故无法恢复x。xx-nwritexwritexreadxreadyxxmyynwritexwritey.ready读y失败事务T2:在X添加mreadxxxmwr

5、itex.接下页M13对并发不加控制而引起问题例3:错误聚集计算问题事务T1:两事务并发执行爭务T2累总在x取出n加到Y上去事务T1寧务T2过程屮受到readxsO事务T1的Fxx-nready扰,因而得writexssy出错误结果readyreadxyynxx-nwritey.writexreadx事务T2:累ssxsOreadyreadyyynssywritey.readxsssM2第二节事务模型1.事务的读写操作接下页事务的数据库操作只有如下两个:lreadxy读取数据库中数据项x,存入程序变

6、量y・实现算法为:1确定存放数据项x的磁盘块地址;2若此磁盘块的数据未放入主存缓冲区,则把它放入主存缓冲区;3在主存缓冲区找到数据项x,存入程序变量y.2writeyx把程序变量y的值写入数据库中数据项x.实现算法为:1确定存放数据项x的磁盘块地址;2若此磁盘块的数据未放入主存缓主存冲区,则把它放入主存缓冲区;变量Y3把程序变量y的值放入主存缓冲区;数据库4把主存缓冲区的内容写入磁盘。读磁盘块数据项x写缓冲区M212.事务的原子性事务的原子性是指为使数据库保持正确状态而对事务作出的如下要求:事务屮所

7、有操作要么全部成功地完成并将结杲存入磁盘,要么放弃该事务并取消它对数据库和其它事务的影响。满足事务原子性的主要方法是本章介绍的串行化技术。事务的原子性被破坏有如下两种情况:情况1:多个事务的操作交叉运行,未作合理控制。情况2:寧务在运行中被强行地停止。为了防止发生情况1,DBMS必须对操作序列施加约朿,保证每个事务的原子性;对于情况2,DBMS必须有能力撤销被强行停止的事务对数据库和其它事务的影响。接下页M223.事务的状态事务在运行中的状态可以划分为如下五种:1活动状态:事务从开始到部分提交或失败

8、;2部分提交状态:事务执行完最后一条语句end;3失败状态:事务被发现不能运行下去时;4异常结束状态:失败的事务撤销对数据库和其它事务的影响后,退岀数据库系统;5提交状态:成功的事务完成了所有操作并把对数据库的影响存盘,Z后退出数据库系统。下图表示事务状态的转换,框图Z间的文字表示操作:begincommit部分提提交end交状态存盘状态活动执行完成功吗?状态未完成失败abort异常结状态撤消束状态影响M3第三节事务调度与可串行性一事务的调度定义N个事务的一个调度S是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。