Site Info Site Info

Concurrencia En La Base De Datos

Concurrencia En La Base De Datos

La concurrencia en la base de datos se refiere a la habilidad de permitir que múltiples usuarios accedan y modifiquen los mismos datos simultáneamente. Imagina esto como varios estudiantes trabajando en el mismo archivo de Google Docs al mismo tiempo.

¿Por Qué es Importante la Concurrencia?

Sin concurrencia, solo un usuario podría acceder a la base de datos a la vez. ¡Sería muy lento e ineficiente! La concurrencia asegura que todos puedan usar la base de datos de forma rápida y efectiva.

Problemas de la Concurrencia: Datos Inconsistentes

Pero... ¿qué pasa si dos usuarios modifican el mismo dato al mismo tiempo? Podríamos tener datos inconsistentes. Este es el principal desafío de la concurrencia.

Ejemplo:

Usuario A quiere aumentar el saldo de la cuenta de Juan en $50. Usuario B, al mismo tiempo, quiere disminuir el saldo de Juan en $20.

Concurrencia en Bases de Datos (I) | PPT
Concurrencia en Bases de Datos (I) | PPT

Si no se controla la concurrencia, uno de los cambios podría sobrescribir al otro, ¡y el saldo final de Juan sería incorrecto!

Soluciones: Mecanismos de Control de Concurrencia

Para evitar estos problemas, usamos mecanismos de control de concurrencia. Estos mecanismos aseguran que las transacciones (conjuntos de operaciones) se ejecuten de forma aislada y consistente.

Administración de Base de Datos Concurrencia Prof Mercy Ospina Torres
Administración de Base de Datos Concurrencia Prof Mercy Ospina Torres

Algunos de los mecanismos más comunes son:

  • Bloqueos (Locks): Imagina poner un "candado" en el dato que se va a modificar. Otros usuarios deben esperar a que el "candado" se libere.
  • Control de Versiones (Multiversion Concurrency Control - MVCC): Cada transacción ve una "versión" diferente de la base de datos, evitando conflictos directos.
  • Sellos de Tiempo (Timestamps): Cada transacción recibe una marca de tiempo. El sistema decide qué transacción debe ejecutarse primero basándose en estas marcas.

Bloqueos: Un Ejemplo Detallado

Volvamos al ejemplo de Juan y su cuenta. Si el Usuario A solicita un bloqueo exclusivo sobre la cuenta de Juan antes de aumentar el saldo, el Usuario B tendrá que esperar. Una vez que el Usuario A termine su operación (aumentar el saldo), liberará el bloqueo y el Usuario B podrá entonces disminuir el saldo.

BASES DE DATOS Y LA CONCURRENCIA by Humberto Mendoza on Prezi
BASES DE DATOS Y LA CONCURRENCIA by Humberto Mendoza on Prezi

Existen diferentes tipos de bloqueos, como los bloqueos compartidos (varios usuarios pueden leer al mismo tiempo) y los bloqueos exclusivos (solo un usuario puede escribir).

Conclusión

La concurrencia en la base de datos es esencial para que las aplicaciones funcionen de forma eficiente. Los mecanismos de control de concurrencia, como los bloqueos y el control de versiones, nos ayudan a evitar problemas de inconsistencia y asegurar la integridad de los datos. Entender estos conceptos es clave para construir sistemas de bases de datos robustos y confiables.

Gallery

Concurrencia en Bases de Datos (I)
TRANSACCIONES Y CONCURRENCIA on emaze
Transacción Es una unidad lógica de trabajo (procesamiento) de la base
Concurrencia VS Paralelismo - Oscar Blancarte - Software Architecture
¿Qué es concurrencia?
Concurrency Control - YouTube
LA Concurrencía by Martin Luna on Prezi