第61章数据库并发控制机制.ppt

二、如何保证并发操作的调度是正确的 为了保证并行操作的正确性,DBMS的并行控制机制必须提供一定的手段来保证调度是可串行化的。 从理论上讲,在某一事务执行时禁止其他事务执行的调度策略一定是可串行化的调度,这也是最简单的调度策略,但这种方法实际上是不可行的,因为它使用户不能充分共享数据库资源。 冲突可串行化的判定方法 步骤1:产生调度的优先图; 步骤2:采用一个合适的算法(如“图论”中基于深度优先或广度优先的环检测算法)检查优先图中是否有有向环。如果有,则该调度就不是冲突可串行化的,否则就是冲突可串行化的。 ? 优先图画法? 优先图由两部分G=(V,E)组成: 其中 V是顶点集,顶点集由所有参与调度的事务组成。 E是边集。边集由满足下列三个条件之一的边Ti→Tj组成: Ti的write(Q)在Tj的read(Q)之前执行; Ti的read(Q)在Tj的write(Q)之前执行; Ti的write(Q)在Tj的write(Q)之前执行; 如果有向图中存在边Ti→Tj,则在任何与S等价的串行调度S中,Ti都必须出现在Tj之前。 注意,在画优先图时,不管有多少对冲突的指令使得存在有向边Ti→Tj,在优先图中只画一条从Ti到Tj的边,而不是多条。 ?例 考虑如下的包含有5个事务T1 , ..., T5的调度S: S是否是冲突可串行化?如果是,给出

文档评论(0)

1亿VIP精品文档

相关文档