No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Java SE: SQL y Bases de Datos

Curso de Java SE: SQL y Bases de Datos

Ana Fernanda Gutierrez Villanueva

Ana Fernanda Gutierrez Villanueva

¿Qué es una transacción?

15/22
Recursos

Las transacciones representan un conjunto de operaciones o acciones que deben tratarse como una unidad atómica e indivisible. Se utilizan para garantizar la consistencia y la integridad de los datos, lo que implica que se cumplan todas las operaciones o ninguna en caso de fallos.

Commit: El commit (confirmación) es una operación que se utiliza para finalizar exitosamente una transacción.

Rollback: El rollback (reversión) es una operación que se utiliza para deshacer todos los cambios realizados en una transacción y devolver la base de datos a su estado anterior a la transacción.

Las transacciones en Java con JDBC siguen el modelo ACID, que garantiza las siguientes propiedades:

  • Atomicidad (Atomicity): Una transacción se considera una unidad atómica, lo que significa que todas sus operaciones se ejecutan en su totalidad o ninguna de ellas se ejecuta en absoluto. Si ocurre algún error o fallo durante la transacción, se revierten todas las operaciones realizadas hasta el punto en que se produjo el error.
  • Consistencia (Consistency): La transacción debe asegurar que la base de datos pase de un estado válido a otro estado válido. Esto implica que todas las reglas y restricciones de integridad de los datos se mantengan antes y después de la transacción.
  • Aislamiento (Isolation): Las transacciones deben ser aisladas entre sí, lo que significa que los cambios realizados por una transacción no deben ser visibles para otras transacciones hasta que la transacción se haya completado correctamente. Esto evita problemas de concurrencia y garantiza la coherencia de los datos.
  • Durabilidad (Durability): Una vez que una transacción se completa correctamente, los cambios realizados en la base de datos deben ser permanentes y persistir incluso en caso de fallos del sistema o reinicios.

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cuando haces un pago en linea usas transacciones. Si no sale bien, pues lo mínimo que quieres es que te devuelvan tu dinero, es decir, el estado previo al pago; si todo sale bien, no quieres que al día siguiente se borre el registro de tu pago, sino que persista

Les dejo aquí 2 videos que me ayudaron mucho a entender las transacciones:

Un ejemplo de transacciones podría ser cuando estás realizando algún trámite o encuesta en línea. Al llenar la información confirmas el envío de los datos, pero si hay algún error al momento de ingresar la información al sistema, todo se revierte y te piden que intentes de nuevo. Si todo sale bien, puedes continuar con el proceso, ya que tus datos han persistido.

Lo realizo cuando genero ordenes para examens de laboratoio, pero, lo controlo con la validadción de los datos y por último en caso que se pierda la conexión con el servidor llego a utilizar el coomit.
¿Me pueden facilitar las diapositivas? Gracias.
En sistemas de reservas de vuelos, hoteles o eventos, se realizan varias operaciones como la verificación de la disponibilidad, la reserva de asientos o habitaciones, y la actualización de inventarios. Todas estas operaciones deben realizarse como una unidad atómica para garantizar la consistencia de los datos.
Yo me imagino como ejemplo enviar un lote de datos, sigamos que en mi lote haya un registro dañado, entonces quiero que si un registro falla, me deje la base de datos tal como estaba antes de ejecutar el lote. Puede ser útil para pagos de bancos, o para cargar promedios de estudiantes, etc.
Se me puede ocurrir: al momento de pedir una cita médica, el sistema debe garantizar que solo a una persona se le asigne el horario y no a dos
Transacciones bancarias

Otro ejemplo mas tecnico de desarrollo, es una prueba unitaria a la capa de persistencia, si quiero crear un registro temporalmente para una prueba y despes borrarlo al final de la prueba

Tal ves en un Registro de una plataforma, de cierta manera el programa necesita hacer peticiones asincronas, como consultar en db por si ya existe ese username, o algun campo que sea unico.

en el majo de stock, cuando realizamos una compra, si la operacion es exitosa, se descuentan los productos del stock, de lo contraio queda es su estado original, tmb podria ser cuando agregamos un producto al carrito de compras