"冲突序列化"和"冲突等效"之间有什么区别?

taz*_*taz 24 database conflict serializable equivalence

在数据库理论中,"冲突序列化"和"冲突等效"之间有什么区别?

我的教科书中有一个关于冲突可序列化的部分,但对冲突等同性进行了掩饰.这些可能都是我熟悉的概念,但我对术语不熟悉,所以我正在寻找解释.

let*_*ite 57

DBMS中的冲突可以定义为访问同一变量的两个或多个不同的事务,其中至少一个是写操作.

例如:

T1: Read(X)   
T2: Read (X)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,没有冲突,因为两个事务都只执行读操作.

但在以下情况中:

T1: Read(X)   
T2: Write(X)
Run Code Online (Sandbox Code Playgroud)

有冲突.

假设我们有一个时间表S,我们可以重新排序其中的说明.并创建另外2个时间表S1S2.

冲突等效:指的是时间表S1以及S2它们在两个时间表中维护冲突指令的顺序的位置.例如,如果T1有读取X 之前T2XS1,那么它应该是在同S2也.(应仅针对冲突操作维护订购).

冲突可序列化:S如果冲突等同于串行调度(即,事务一个接一个地执行),则称冲突可序列化.

  • 应该接受这个答案. (9认同)

Dam*_*ran 8

来自维基百科.

冲突等价

该时间表S1S2被认为是冲突等价如果满足以下条件:

  1. 计划S1S2涉及同一组事务(包括每个事务中的操作的排序).

  2. 每对冲突动作的顺序S1S2相同.

冲突序列化

当调度与一个或多个串行调度冲突等效时,调度可以说是冲突可序列化的.

冲突可序列化的另一个定义是,当且仅当其仅在提交事务被考虑时,其优先图/可序列性图是非循环的(如果图形被定义为还包括未提交的事务,则涉及未提交的周期)时,调度是冲突可序列化的.事务可能发生而不会发生冲突可串行化违规).

  • 我知道,我已经读过维基......我只是看不出这两件事实际上是如何不同的. (3认同)

fen*_*ngd 8

只用两个术语来描述一件事以不同的方式.

相当于冲突:你需要说Schedule A是与Schedule B相当的冲突.它必须涉及两个时间表

冲突可序列化:仍然使用Schedule A和B.我们可以说Schedule A是冲突可序列化的.附表B是冲突可序列化的.

我们没有说Schedule A/B是冲突等价的

我们没有说附表A是冲突可序列化到附表B.