《数据库系统概论》讲义

《数据库系统概论》讲义

ID:6179747

大小:322.00 KB

页数:45页

时间:2017-11-16

《数据库系统概论》讲义_第1页
《数据库系统概论》讲义_第2页
《数据库系统概论》讲义_第3页
《数据库系统概论》讲义_第4页
《数据库系统概论》讲义_第5页
资源描述:

《《数据库系统概论》讲义》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8.并发控制事务处理技术主要包括数据库恢复和并发控制。当多个用户并发地存取数据库时可能产生多个事务同时存取同一数据的情况。如果对并发操作不加控制就可能破坏数据的一致性。并发控制的核心问题对并发操作进行正确调度,有效控制。在保证一致性的前提下最大限度地提高并发度。郭文明2003.06.058.并发控制不同事务中各个步骤的执行顺序必须以某种方式进行规范,控制这些步骤的功能由DBMS的调度器部件完成。保证并发执行的事务能保持一致性的整个过程称为并发控制。事务管理器调度器缓冲区郭文明2003.06.05

2、8.1并发操作DBMS在处理用户提交事务时的策略,即事务调度。调度是一个或多个事务的操作按时间排列的一个序列。表示事务的指令在系统中执行的时间顺序。如果一个调度的动作是事务顺序排列,顺序执行,也即事务没有混合,那么称这一调度为串行调度。如果一个调度的动作是事务之间可以混合,那么称这一调度为并行调度。郭文明2003.06.058.1并发操作事务的调度一组事务的调度必须保证包含了所有事务的操作指令一个事务中指令的顺序必须保持不变。串行调度在串行调度中,属于同一事务的指令紧挨在一起。对于有n个事务的事

3、务组,可以有n!个有效调度。并行调度在并行调度中,来自不同事务的指令可以交叉执行。当并行调度等价于某个串行调度时,则称它是正确的。郭文明2003.06.058.1并发操作并行Vs串行基本比较并行事务可能会破坏数据库的一致性。串行事务效率低。并行的优点一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量。系统中存在着周期不等的各种事务,串行会导致难于预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。郭文明2003.06.058.1

4、并发操作事务执行示例T1:read(A);A:=A50;write(A);read(B);B:=B+50;write(B);T2:read(A);temp:=A0.1A:=Atemp;write(A);read(B);B:=B+temp;write(B);从A过户50¥到B从A过户存款的10%到B开始状态:A=1000¥B=2000¥A+B=3000¥郭文明2003.06.058.1并发操作read(A);A:=A50;write(A);read(B);B:=B+50;write(B);

5、read(A);temp:=A0.1A:=Atemp;write(A);read(B);B:=B+temp;write(B);T1T2A=950¥B=2050¥结束状态:A=855¥B=2145¥A+B=3000¥串行调度1郭文明2003.06.058.1并发操作read(A);A:=A50;write(A);read(B);B:=B+50;write(B);read(A);temp:=A0.1A:=Atemp;write(A);read(B);B:=B+temp;write(B);T

6、1T2A=900¥B=2100¥结束状态:A=850¥B=2150¥A+B=3000¥串行调度2郭文明2003.06.058.1并发操作read(A);A:=A50;write(A);read(B);B:=B+temp;write(B);T1T2A=950¥B=2000¥结束状态:A=855¥B=2145¥A+B=3000¥read(B);B:=B+50;write(B);read(A);temp:=A0.1A:=Atemp;write(A);A=855¥B=2000¥A=855¥B=20

7、50¥并行调度3郭文明2003.06.058.1并发操作read(A);A:=A50;B:=B+temp;write(B);T1T2A=1000¥B=2000¥结束状态:A=950¥B=2100¥A+B=3050¥write(A);read(B);B:=B+50;write(B);read(A);temp:=A0.1A:=Atemp;write(A);read(B);A=900¥B=2000¥A=950¥B=2000¥A=950¥B=2050¥并行调度4郭文明2003.06.058.2并发

8、操作事务一致性并发操作带来的数据不一致性包括三类:丢失修改:两个事务T1和T2读入同一数据并修改,一个事务T2的提交破坏了另一个事务T1提交的结果,导致T1的修改丢失。不可重复读:事务T1读取数据后,事务T2执行更新操作,使T1无法再次显现前一次的读取结果。事务T2执行update,T1两次读取值不一样;事务T2执行delete,T1两次读取记录数不一样;事务T2执行insert,T1两次读取记录不一样;读‘脏’数据:事务T2执行更新操作,事务T1读取数据后,事务T2撤消了原来的操作,使T1读取

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

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

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