Test ACID en Oracle

Las bases de datos transaccionales deben cumplir el test ACID. Esto es que debe cumplir los siguientes principios:

A por atómico:

El principio de atomicidad dice que para que una transacción sea completa, se deben completar todas las partes de la transacción o ninguna de ella. Por ejemplo, si transfieren fondos de una cuenta bancaria a otra, la transacción puede fallar por múltiples motivos, pero no deben restarse los fondos de una cuenta si no se ha sumado a la otra y al revés. La base de datos debe garantizar ambos procesos o ninguno de ellos. Si alguno de los procesos va mal por cualquier motivo la base de datos debe garantizar que lo que haya podido hacer se puede dar marcha atrás.  A pesar de que el concepto atómico suena a algo pequeño (como átomo) puede ser muy implicar múltiples sentencias DML.

El rollback puede ser manual o automático y sin posibilidad de pararlo en caso de error. Oracle garantiza el principio de atomicidad a través del uso de segmentos de undo.

C por consistencia.

El principio de consistencia dice que el resultado de un query debe ser consistente con el estado de la base de datos en el momento que el query comenzó.  Si se lanza una query sobre un tabla y antes de está termine se actualizan registros en esta tabla, ¿qué valores debe incluir la query los antiguos o los nuevos?. El principio de consistencia dice que la query no debe incluir los valores que fueron insertados o  borrados o modificados después que la query iniciara. Oracle utiliza los segmentos de Undo para permitir cumplir este principio. Sin embargo, si los segmentos de undo no están correctamente configurados, el query puede fallar con el error ORA-1555 snapshot too old.

I por Aislamiento (Isolation)

El principio de aislamiento dice que una transacción incompleta (que no ha se ha hecho commit) debe ser invisible para el resto del mundo. Mientras la transacción está en curso, solamente la sesión que está ejecutando la transacción  tiene permiso de ver los cambios. Esto se debe a que  primero tiene que tener lugar toda la transacción y hasta que esto no se produzca los demás usuarios no deben ver los cambios. Los demás usuarios deben ver versiones anteriores de los datos hasta que la transacción se haya completado. Oracle garantiza el aislamiento de las transacciones a través de los segmentos de undo.

D por Durabilidad

El principio de durabilidad implica que una vez que se ha realizado un commit la transacción no se debe perder. Hasta que se haga commit nadie puede ver la transacción, pero una vez hecho commit todo el mundo debe poder verla y la base de datos debe garantizar que el dato no se pierda. Oracle garantiza este principio con los dos tipos de logfile, online y archive. Hay que tener en cuenta que si la base de datos no está  en modo archivado este principio puede no cumpliese.

2 pensamientos en “Test ACID en Oracle

  1. Pienso que estas equivocado, todas las criticas que has hecho se refieren a la manera como la aplicación está programada, estamos hablando de una base de datos y no un sistema mágico de datos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s