2011-03-19 20 views
11

Al trabajar con una base de datos, a menudo es esencial usar transacciones. Digamos, por ejemplo, que quiero transferir cierta cantidad de dinero de account A a account B. Esto implica dos consultas:¿Cómo implementan las transacciones los proveedores de base de datos?

  • disminución del dinero en la cuenta Una
  • aumentarlo en cuenta B.

En teoría Puedo hacer las consultas por separado, pero los errores suceda. Entonces, para estar seguro, puedo empacar las dos consultas dentro de una transacción y asegurarme de que ambas operaciones finalicen regularmente o que nada haya cambiado. Ningún dinero desaparece o se crea.

El problema es que me parece que esto solo transfiere mi responsabilidad al proveedor de la base de datos. Ahora depende de la base de datos realizar ambas operaciones y asegurarse de que ambas estén hechas o que nada haya cambiado. Y los desarrolladores de la base de datos enfrentan los mismos problemas que los errores.

¿Qué técnicas utilizan los proveedores de bases de datos para garantizar la seguridad de las transacciones?

Respuesta

8

La página ACID - Implementations en wikipedia le permitirá comenzar a utilizar el registro por escritura anticipada, el paginación sombra y el control de concurrencia de varias versiones. Siga los enlaces para encontrar más.

Cada proveedor de DBMS implementa sus propios algoritmos, a menudo varios diferentes dependiendo del contexto, ÁCIDO completo o requisitos relajados, requisitos de consistencia distribuidos transacción etc ...

Cuestiones relacionadas