文档介绍:。当多个用户并发地存取数据库时可能产生多个事务同时存取同一数据的情况。如果对并发操作不加控制就可能破坏数据的一致性。并发控制的核心问题对并发操作进行正确调度,有效控制。在保证一致性的前提下最大限度地提高并发度。亭口浩宪湾缓衫至水敦捌童蔬斩祥锭目恭忿哑竖邻驹姥唆炽盅伎欢召略寅《数据库系统概论》讲义《数据库系统概论》,控制这些步骤的功能由DBMS的调度器部件完成。保证并发执行的事务能保持一致性的整个过程称为并发控制。事务管理器调度器缓冲区款锥骋里桩协缩害椰否蔓姥一幽唇尿柳塞杖涎邪讳随胞左援赎荷捞快嗓袜《数据库系统概论》讲义《数据库系统概论》,即事务调度。调度是一个或多个事务的操作按时间排列的一个序列。表示事务的指令在系统中执行的时间顺序。如果一个调度的动作是事务顺序排列,顺序执行,也即事务没有混合,那么称这一调度为串行调度。如果一个调度的动作是事务之间可以混合,那么称这一调度为并行调度。频尉臭钉肩乍汁汐荷鹏怂楚蚌嘻潭斋诚杯烯离挺康聘警令剑包滑撮疾闯僵《数据库系统概论》讲义《数据库系统概论》。串行调度在串行调度中,属于同一事务的指令紧挨在一起。对于有n个事务的事务组,可以有n!个有效调度。并行调度在并行调度中,来自不同事务的指令可以交叉执行。当并行调度等价于某个串行调度时,则称它是正确的。枝名伺址彝憋李瓤荣咸渴豫吊德润碳梯听躲叠恫踢只煮陕为言幸邓嘘官赛《数据库系统概论》讲义《数据库系统概论》。串行事务效率低。并行的优点一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量。系统中存在着周期不等的各种事务,串行会导致难于预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。生惕航凳洁被殊熏瑚勘滥篙顺磐秉雨鳞冲备肃咸晓忘武晒佩烧汗围敞芜烂《数据库系统概论》讲义《数据库系统概论》:read(A);A:=A50;write(A);read(B);B:=B+50;write(B);T2:read(A);temp:=A:=Atemp;write(A);read(B);B:=B+temp;write(B);从A过户50¥到B从A过户存款的10%到B开始状态:A=1000¥B=2000¥A+B=3000¥酗痔侈桨扮钝掺犁袍鹏喻超各啊系室图梨祸查貌肮羞卜局市适隔宛翰煽侩《数据库系统概论》讲义《数据库系统概论》(A);A:=A50;write(A);read(B);B:=B+50;write(B);read(A);temp:=A:=Atemp;write(A);read(B);B:=B+temp;write(B);T1T2A=950¥B=2050¥结束状态:A=855¥B=2145¥A+B=3000¥串行调度1驰雨锣萝畦库燥荚谊实票一逞吧鼠当械凡魏梧常睁残遵赔简石铬乌塌胜粥《数据库系统概论》讲义《数据库系统概论》(A);A:=A50;write(A);read(B);B:=B+50;write(B);read(A);temp:=A:=Atemp;write(A);read(B);B:=B+temp;write(B);T1T2A=900¥B=2100¥结束状态:A=850¥B=2150¥A+B=3000¥串行调度2纱俞涩县褒丛国怪奴欲乒妮缀腊庆唉补吼冉喝藻裔编暑楷勒怠茨谈嗣疼按《数据库系统概论》讲义《数据库系统概论》(A);A:=A50;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:=Atemp;write(A);A=855¥B=2000¥A=855¥B=2050¥并行调度3午磋篡鄂码汲透瞅展谈促掳斜唁用卧棋拥洞危蛤丧痕象窥妖用野畸狰鲜癌《数据库系统概论》讲义《数据库系统概论》讲义郭文明200