Transacción (informática)

3 min
Editar

En informática, una transacción (en inglés, transaction) es un conjunto de operaciones sobre una base de datos que deben tratarse como una sola unidad, porque afectan a varios registros o tablas a la vez y el resultado solo es coherente si se hacen todas. El ejemplo de siempre es una transferencia bancaria, que exige restar el dinero de una cuenta y sumarlo a otra: si se hiciera solo la primera parte, el dinero se perdería, y si se hiciera solo la segunda, aparecería de la nada.

Las transacciones de las bases de datos relacionales cumplen cuatro propiedades que se conocen por el acrónimo inglés ACID. La atomicidad (atomicity) garantiza que la transacción se hace entera o no se hace. La consistencia (consistency) garantiza que la base de datos pasa de un estado válido a otro estado válido, respetando todas sus reglas, como que un saldo no pueda ser negativo si así se ha definido. El aislamiento (isolation) garantiza que las transacciones que se ejecutan al mismo tiempo no interfieren entre sí, como si se ejecutaran una detrás de otra. Y la durabilidad (durability) garantiza que, una vez confirmada, la transacción no se pierde aunque el sistema se caiga un segundo después.

Una transacción empieza, ejecuta sus operaciones y termina con una confirmación (commit), que hace definitivos los cambios, o con una reversión (rollback), que los deshace todos. El aislamiento completo es costoso, porque obliga a las transacciones a esperar unas a otras, y por eso los gestores ofrecen varios niveles de aislamiento (isolation levels), desde el más estricto, llamado serializable, a otros más permisivos que admiten ciertas anomalías a cambio de más velocidad. Elegir el nivel adecuado es una de las decisiones más delicadas en el diseño de un sistema, porque un nivel demasiado laxo puede permitir, por ejemplo, que dos personas reserven a la vez el último asiento de un avión.

Cuando una transacción afecta a varias bases de datos en ordenadores distintos, se habla de transacción distribuida (distributed transaction), y para garantizar la atomicidad se usan protocolos como el de confirmación en dos fases (two-phase commit), en el que un coordinador pregunta primero a todos los participantes si pueden confirmar y solo da la orden cuando todos han dicho que sí. El concepto moderno de transacción lo formuló sobre todo Jim Gray, que recibió en 1998 el premio Turing por ese trabajo. Las transacciones son la base de los sistemas de procesamiento de transacciones que registran las operaciones diarias de bancos, comercios y administraciones, el núcleo de muchos sistemas de información.

Sarasola, Eneko (2024). "Transacción (informática)". Ikusmira. Recuperado de https://ikusmira.org/p/transaccion-informatica/

Una errata, un dato desfasado, un párrafo que falta: edítalo y la redacción revisa tu propuesta.

Sugerir una mejora →
§ Dónde encajaMapa del estante ↓
Sigue con
Informática Transacción (informática)
§ Tres puertas

¿Por dónde sigues?