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个时间表S1和S2.
冲突等效:指的是时间表S1以及S2它们在两个时间表中维护冲突指令的顺序的位置.例如,如果T1有读取X 之前T2写X的S1,那么它应该是在同S2也.(应仅针对冲突操作维护订购).
冲突可序列化:S如果冲突等同于串行调度(即,事务一个接一个地执行),则称冲突可序列化.
只用两个术语来描述一件事以不同的方式.
相当于冲突:你需要说Schedule A是与Schedule B相当的冲突.它必须涉及两个时间表
冲突可序列化:仍然使用Schedule A和B.我们可以说Schedule A是冲突可序列化的.附表B是冲突可序列化的.
我们没有说Schedule A/B是冲突等价的
我们没有说附表A是冲突可序列化到附表B.