Red de conocimiento del abogados - Ley de patentes - ¿Cuál es la relación entre las transacciones y los mecanismos de bloqueo? ¿Se bloquea automáticamente cuando se abre una transacción?

¿Cuál es la relación entre las transacciones y los mecanismos de bloqueo? ¿Se bloquea automáticamente cuando se abre una transacción?

Las transacciones y los bloqueos son diferentes. Las transacciones tienen ACID (atomicidad, consistencia, aislamiento y durabilidad) y los bloqueos son un mecanismo utilizado para resolver el aislamiento. El nivel de aislamiento de una transacción se implementa mediante el mecanismo de bloqueo. Además, los bloqueos tienen diferentes granularidades y las transacciones también tienen diferentes niveles de aislamiento (generalmente cuatro tipos: lectura no confirmada, lectura confirmada, lectura repetible y serializable). En programación específica, habilitar transacciones en realidad requiere soporte de base de datos. Si la base de datos en sí no admite transacciones, todavía no hay forma de garantizar que las transacciones que utiliza en el programa sean válidas. Los bloqueos se pueden dividir en bloqueos optimistas y bloqueos pesimistas: Bloqueos pesimistas: se cree que hay transacciones que también quieren modificar los datos durante el período de tiempo en que se modifican los datos de la base de datos. Bloqueos optimistas: se cree que habrá; no hay transacciones para modificar los datos de la base de datos en un corto período de tiempo; lo que llamamos bloqueos en un sentido general en realidad se refiere a bloqueos pesimistas durante el proceso de procesamiento de datos, los datos se colocan en un estado bloqueado (implementado por la base de datos). Volviendo a su pregunta, si una transacción está habilitada, otros no pueden modificar los datos antes de enviar la transacción; si retrocede, sus modificaciones en esta transacción se desharán (no es que las modificaciones de otros no se realicen, porque otros no modificarán). los datos en este momento) no se pueden modificar). Por supuesto, la premisa es que la base de datos que utilice admita transacciones. Otra cosa a tener en cuenta es que algunas bases de datos admiten bloqueos SQL personalizados para anular el mecanismo de bloqueo predeterminado del nivel de aislamiento de transacciones. Si se utiliza un bloqueo personalizado, es un asunto diferente. Importante: Las transacciones generales utilizan bloqueo pesimista (exclusivo).