数据库—并发调度的可串行性

本文介绍了数据库中可串行化及冲突可串行化调度的概念,探讨了这两种调度策略如何确保并发事务正确执行而不产生数据不一致性问题。同时,对比了它们之间的区别与联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.可串行化调度

数据库管理系统对并发事务不同的调度可能会产生不同的结果,比如两个事务T1和T2,先执行T1或者先执行T2产生的结果可能是不一样的。由于串行调度没有事务间的相互干扰,所以串行调度是正确的。另外,执行结果等价于串行调度的调度也是正确的,称为可串行化调度。

可串行化(Serializable)调度

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这样的调度策略为可串行化调度。

可串行性(Serializability) 

可串行性是并发事务正确调度的准则。可串行性调度规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。

比如,两个事务的并发调度的某一执行方式,与先执行T1后执行T2(或先执行T2后执行T1)的结果是一样的,称这一调度符合可串行化调度。

并发控制除了要保证数据的一致性之外,还要保证事务的调度是可串行化调度。

2.冲突可串行化调度

冲突可串行化,是一个比可串行化更严格的条件!

冲突操作:是指不同的事务对同一数据的读写操作和写写操作:

Ri(x)与Wj(x) /*事务Ti读x,Tj写x,其中i≠j*/

Wi(x)与Wj(x) /*事务Ti写x,Tj写x,其中i≠j*/

冲突操作的特点:涉及同一个数据库元素, 并且至少有一个是操作。

 

不冲突操作:

ri(X); rj(X) 两个相同对象的读操作不冲突  

wi(X); rj(Y), X不等于Y,两个不同对象的操作不冲突

wi(X); wj(Y), X不等于Y,两个不同对象的操作不冲突

不能交换(Swap)的动作:

同一事务的两个操作不能交换;

不同事务的冲突操作不能交换;

例如:Ri(x)与Wj(x)

   Wi(x)与Wj(x)

 

冲突可串行化

一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc是冲突可串行化的调度。若一个调度是冲突可串行化,则一定是可串行化的调度。

[例] 有3个事务的一个调度r3(B) r1(A) w3(B) r2(B) r2(A) w2(B)r1(B) w1(A),判断该调度是否是冲突可串行化的调度。

解:Sc1 = r3(B) r1(A) w3(B)r2(B) r2(A) w2(B) r1(B) w1(A)

由于r1(A)和w3(B)是对不同事务间的操作,所以不冲突,两个事务可以交换,由此得到:

r3(B) w3(B) r1(A) r2(B)r2(A) w2(B) r1(B) w1(A)

由于r1(A)和r2(B)r2(A) w2(B),要么都是对同一操作的读操作,要么是对不同对象的读写操作,所以不冲突,r1(A)可以与r2(B) r2(A) w2(B)交换,因此得到:

r3(B) w3(B) r2(B) r2(A) w2(B) r1(A)r1(B) w1(A)

所以:  Sc2 = r3(B) w3(B) r2(B) r2(A)w2(B) r1(A) r1(B) w1(A) ----> T3 T2 T1

因此Sc1是冲突可串行化的调度。

再例如:

Sd=r1(A)w1(A)r2(A)w2(A)r2(B)w2(B)r1(B)w1(B)

此例无论如何都不能通过无冲突交换将Sd变换为串行调度,因此Sd不是冲突可串行化的调度。

3.可串行化调度与冲突可串行化调度之间的关系

冲突可串行化调度一定是可串行化调度,但冲突可串行化调度只是可串行化调度的充分条件,不是必要条件。还有不满足冲突可串行化条件的可串行化调度。

[例]有3个事务,T1=W1(Y)W1(X),T2=W2(Y)W2(X),T3=W3(X)

调度L1=W1(Y)W1(X)W2(Y)W2(X)W3(X)是一个串行调度。

调度L2=W1(Y)W2(Y)W2(X)W1(X)W3(X)不满足冲突可串行化。

但是调度L2是可串行化的,因为L2执行的结果与调度L1相同,Y的值都等于T2的值,X的值都等于T3的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值