database - ¿Cuál es la diferencia entre "conflicto serializable" y "conflicto equivalente"?
equivalence (8)
Conflicto serializable significa conflicto equivalente a cualquier horario en serie.
En teoría de bases de datos, ¿cuál es la diferencia entre "conflicto serializable" y "conflicto equivalente"?
Mi libro de texto tiene una sección sobre conflicto serializable pero pasa por alto la equivalencia de conflicto. Probablemente estos son dos conceptos con los que estoy familiarizado, pero no conozco la terminología, por lo que estoy buscando una explicación.
De Wikipedia
Equivalencia de conflicto
Se dice que los horarios S1
y S2
son equivalentes al conflicto si se cumplen las siguientes condiciones:
Ambas programaciones
S1
yS2
implican el mismo conjunto de transacciones (incluido el orden de acciones dentro de cada transacción).El orden de cada par de acciones en conflicto en
S1
yS2
es el mismo.
Conflicto serializable
Se dice que una programación es serializable en conflicto cuando la programación es equivalente a una o más programaciones en serie .
Otra definición para la serialización de conflictos es que un cronograma es serializable de conflictos si y solo si su gráfico de precedencia / gráfico de serializabilidad, cuando solo se consideran transacciones comprometidas, es acíclico (si el gráfico se define para incluir también transacciones no confirmadas, los ciclos que involucran no comprometidos transacciones pueden ocurrir sin violación de conflicto serializabilidad).
El conflicto en el DBMS se puede definir como dos o más transacciones diferentes que acceden a la misma variable y al menos una de ellas es una operación de escritura.
Por ejemplo:
T1: Read(X)
T2: Read (X)
En este caso no hay conflicto porque ambas transacciones están realizando operaciones de solo lectura.
Pero en el siguiente caso:
T1: Read(X)
T2: Write(X)
hay un conflicto
Digamos que tenemos un horario S
, y podemos reordenar las instrucciones en ellos. y crear 2 horarios más S1
y S2
.
Equivalente de conflicto : se refiere a los horarios S1
y S2
donde mantienen el orden de las instrucciones en conflicto en ambos esquemas. Por ejemplo, si T1
tiene que leer X
antes de que T2
escriba X
en S1
, también debería ser el mismo en S2
. (Los pedidos deben mantenerse solo para las operaciones en conflicto).
Conflict Serializability : S
se dice que el conflicto es serializable si es un conflicto equivalente a un horario serial (es decir, donde las transacciones se ejecutan una después de la otra).
Las definiciones ya se han explicado perfectamente, pero creo que esto será muy útil para algunos.
He desarrollado un pequeño programa de consola (en github) que puede probar cualquier programación para la serialización de conflictos y también dibujará un gráfico de precedencia.
Sólo dos términos para describir una cosa de diferentes maneras.
Equivalente en el conflicto : debe decir que el Anexo A es un conflicto equivalente al Anexo B. debe incluir dos programaciones
Conflicto serializable : Todavía use el Programa A y B. podemos decir que el Horario A es conflicto serializable. El horario B es conflicto serializable.
No dijimos que el Anexo A / B es equivalente al conflicto
No dijimos que el Anexo A es un conflicto serializable al Anexo B
Si hay al menos un cronograma equivalente de conflicto para el cronograma de transacción considerado, es un conflicto serializable.
Si una programación S puede transformarse en una programación S´ por una serie de intercambios de instrucciones no conflictivas, decimos que S y S son equivalentes en conflicto.
Decimos que un horario S es conflicto serializable si es conflicto equivalente a un horario serial.
Programaciones equivalentes de conflicto: si una Programación S puede transformarse en una Programación S ''por una serie de intercambios de instrucciones no conflictivas, decimos que la Programación S&S'' es equivalente a la conflictividad.
Conflicto serializable: El horario S es conflictivo serializable si es un conflicto equivalente a un horario serial.