fbpx
Wikipedia

Transacción (informática)

Una transacción es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro. La transacción debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se hayan finalizado todos sus procesos.

Ejemplo

Se puede poner como ejemplo una transferencia de fondos entre dos cuentas corrientes de un banco. Si se quiere transferir, supongamos, 5000€ de la cuenta corriente de A a B y las cuentas tienen, respectivamente, 20000€ y 0€ de saldo los pasos lógicos serían:

  1. Comprobar si en la cuenta A hay dinero suficiente.
  2. Restar 5000€ de la cuenta de A, con lo que su saldo pasa a ser de 15000€.
  3. Sumar 5000€ a la cuenta de B, con lo que los saldos quedan A= 15000€ y B= 5000€

Ahora bien, si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas quedarían como A= 15000 y B= 0, con lo cual se han volatilizado 5000€ y presumiblemente ni A ni B estarán contentos, y hubiesen preferido que la transacción nunca hubiese sido iniciada.

Este ejemplo ilustra por qué las transacciones tienen un comportamiento deseado de todo o nada, o se realiza completamente o no debe tener ningún efecto.

Propiedades

Las transacciones deben cumplir cuatro propiedades, denominadas ACID:

  1. Atomicidad (Atomicity): es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
  2. Consistencia (Consistency): es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos.
  3. Aislamiento (Isolation): es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información nunca generará ningún tipo de error.
  4. Durabilidad (Durability): es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

La atomicidad frente a fallos se suele implementar con mecanismos de journaling, y la protección frente a accesos concurrentes mediante bloqueos en las estructuras afectadas. La serialibilidad viene garantizada por la atomicidad. La permanencia se suele implementar forzando a los periféricos encargados de almacenar los cambios a confirmar la completa y definitiva transmisión de los datos al medio (generalmente, el disco).

La forma algorítmica que suelen tener las transacciones es la siguiente:

iniciar transacción (lista de recursos a bloquear) ejecución de las operaciones individuales. if (todo_ok) { ''aplicar_cambios'' } else { ''cancelar_cambios'' } 

En cualquier momento, el programa podría decidir que es necesario hacer fallar la transacción, con lo que el sistema deberá revertir todos los cambios hechos por las operaciones ya hechas. En el lenguaje SQL se denomina COMMIT a aplicar_cambios y ROLLBACK a cancelar_cambios.

Las transacciones suelen verse implementadas en sistemas de bases de datos y, más recientemente, se han visto incorporadas a cómo gestiona un sistema operativo la interacción con un sistema de archivos (como varias características de las bases de datos, debido a que son muy similares arquitectónicamente).

Transacciones en bases de datos

Una transacción en un sistema de gestión de bases de datos es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.

Un SGBD se dice transaccional si es capaz de mantener la integridad de datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. Una transacción debe contar con ACID (un acrónimo inglés) que quiere decir: Atomicidad, consistencia, aislamiento y durabilidad.

Para esto, el lenguaje de consulta de datos SQL (Structured Query Language) provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.

  • BEGIN TRANSACTION: Especifica que va a empezar una transacción.
  • COMMIT TRANSACTION: Le indica al motor que puede considerar la transacción completada con éxito.
  • ROLLBACK TRANSACTION: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.

En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.

Ejemplo

Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que se incrementa el saldo de la cuenta destino. Para garantizar la integridad del sistema (es decir, para que no aparezca o desaparezca dinero) las dos operaciones deben ser atómicas, o sea que el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

Véase también

Enlaces externos

  • Transacción
  •   Datos: Q848010

transacción, informática, este, artículo, sección, tiene, referencias, pero, necesita, más, para, complementar, verificabilidad, este, aviso, puesto, mayo, 2018, transacción, interacción, estructura, datos, compleja, compuesta, varios, procesos, aplicar, despu. Este articulo o seccion tiene referencias pero necesita mas para complementar su verificabilidad Este aviso fue puesto el 3 de mayo de 2018 Una transaccion es una interaccion con una estructura de datos compleja compuesta por varios procesos que se han de aplicar uno despues del otro La transaccion debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se hayan finalizado todos sus procesos Indice 1 Ejemplo 2 Propiedades 3 Transacciones en bases de datos 3 1 Ejemplo 4 Vease tambien 5 Enlaces externosEjemplo EditarSe puede poner como ejemplo una transferencia de fondos entre dos cuentas corrientes de un banco Si se quiere transferir supongamos 5000 de la cuenta corriente de A a B y las cuentas tienen respectivamente 20000 y 0 de saldo los pasos logicos serian Comprobar si en la cuenta A hay dinero suficiente Restar 5000 de la cuenta de A con lo que su saldo pasa a ser de 15000 Sumar 5000 a la cuenta de B con lo que los saldos quedan A 15000 y B 5000 Ahora bien si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas quedarian como A 15000 y B 0 con lo cual se han volatilizado 5000 y presumiblemente ni A ni B estaran contentos y hubiesen preferido que la transaccion nunca hubiese sido iniciada Este ejemplo ilustra por que las transacciones tienen un comportamiento deseado de todo o nada o se realiza completamente o no debe tener ningun efecto Propiedades EditarLas transacciones deben cumplir cuatro propiedades denominadas ACID Atomicidad Atomicity es la propiedad que asegura que la operacion se ha realizado o no y por lo tanto ante un fallo del sistema no puede quedar a medias Consistencia Consistency es la propiedad que asegura que solo se empieza aquello que se puede acabar Por lo tanto se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos Aislamiento Isolation es la propiedad que asegura que una operacion no puede afectar a otras Esto asegura que la realizacion de dos transacciones sobre la misma informacion nunca generara ningun tipo de error Durabilidad Durability es la propiedad que asegura que una vez realizada la operacion esta persistira y no se podra deshacer aunque falle el sistema La atomicidad frente a fallos se suele implementar con mecanismos de journaling y la proteccion frente a accesos concurrentes mediante bloqueos en las estructuras afectadas La serialibilidad viene garantizada por la atomicidad La permanencia se suele implementar forzando a los perifericos encargados de almacenar los cambios a confirmar la completa y definitiva transmision de los datos al medio generalmente el disco La forma algoritmica que suelen tener las transacciones es la siguiente iniciar transaccion lista de recursos a bloquear ejecucion de las operaciones individuales if todo ok aplicar cambios else cancelar cambios En cualquier momento el programa podria decidir que es necesario hacer fallar la transaccion con lo que el sistema debera revertir todos los cambios hechos por las operaciones ya hechas En el lenguaje SQL se denomina COMMIT a aplicar cambios y ROLLBACK a cancelar cambios Las transacciones suelen verse implementadas en sistemas de bases de datos y mas recientemente se han visto incorporadas a como gestiona un sistema operativo la interaccion con un sistema de archivos como varias caracteristicas de las bases de datos debido a que son muy similares arquitectonicamente Transacciones en bases de datos EditarUna transaccion en un sistema de gestion de bases de datos es un conjunto de ordenes que se ejecutan formando una unidad de trabajo es decir en forma indivisible o atomica Un SGBD se dice transaccional si es capaz de mantener la integridad de datos haciendo que estas transacciones no puedan finalizar en un estado intermedio Cuando por alguna causa el sistema debe cancelar la transaccion empieza a deshacer las ordenes ejecutadas hasta dejar la base de datos en su estado inicial llamado punto de integridad como si la orden de la transaccion nunca se hubiese realizado Una transaccion debe contar con ACID un acronimo ingles que quiere decir Atomicidad consistencia aislamiento y durabilidad Para esto el lenguaje de consulta de datos SQL Structured Query Language provee los mecanismos para especificar que un conjunto de acciones deben constituir una transaccion BEGIN TRANSACTION Especifica que va a empezar una transaccion COMMIT TRANSACTION Le indica al motor que puede considerar la transaccion completada con exito ROLLBACK TRANSACTION Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad En un sistema ideal las transacciones deberian garantizar todas las propiedades ACID en la practica a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento Ejemplo Editar Un ejemplo habitual de transaccion es el traspaso de una cantidad de dinero entre cuentas bancarias Normalmente se realiza mediante dos operaciones distintas una en la que se decrementa el saldo de la cuenta origen y otra en la que se incrementa el saldo de la cuenta destino Para garantizar la integridad del sistema es decir para que no aparezca o desaparezca dinero las dos operaciones deben ser atomicas o sea que el sistema debe garantizar que bajo cualquier circunstancia incluso una caida del sistema el resultado final es que o bien se han realizado las dos operaciones o bien no se ha realizado ninguna Vease tambien EditarACID Gestor transaccional Bloqueo de dos fasesEnlaces externos EditarTransaccion Datos Q848010Obtenido de https es wikipedia org w index php title Transaccion informatica amp oldid 136275407, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos