CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站

深入理解数据库并发控制原理

作者: ,  出处:IT专家网社区, 责任编辑: 李书琴, 
2007-12-11 01:01
  事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保持状态的正确性,而且也没有任何故障发生。因此,不同事务中各个步骤的执行顺序必须以某种方式进行规范。控制这些步骤的功能由DBMS的调度器部件完成,而保证并发执行的事务能保持一致性的整个过程称为并发控制。

  2.2 优先图及冲突可串行化判断

  已知调度S,其中涉及事务T1和T2,可那个还有其他事务,我们说T1优先于T2,写作T1

  1)在S中A1在A2前;

  2)A1和A2都涉及同一数据库元素;并且

  3)A1和A2至少有一个是写动作。

  这正是我们不能交换A1和A2顺序的情况。因此,在任何冲突等价于S的调度中,A1将出现在A2的前面。所以,如果这些调度中有一个是串行调度,那么该调度必然是T1在T2前。

  我可以使用优先图概括这样的先后次序。优先图中的结点是调度S中的事务。如果Ti

  例7 下面的调度S涉及三个事务T1、T2和T3。

  S:r2(A);r1(B);w2(A);r3(A);w1(B);w3(A);r2(B);w2(B)

  

  判断调度S是否是冲突可串行化有一条简单的规则:

  1)构造S的优先图,并判断其中是否有环。

  如果有,那么S不是冲突可串行化的。如果该图是无环的,那么S是冲突可串行化的。

  例8 考虑调度:

  S1: r2(A);r1(B);w2(A); r2(B);r3(A);w1(B);w3(A); w2(B)

  

  该图中显然有环,我们断定S1不是冲突可串行化的。

  3.使用锁的可串行性实现

  设想以一种不受约束的方式进行其动作的事务的一个集合。这些动作将形成以个调度,但是这一调度不大可能是可串行化的。

共7页。 9 1 2 3 4 5 6 7 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i