Secuencia de operaciones realizadas como una sola unidad lógica de trabajo.
Cumplir 4 propiedades para ser calificada como transacción.
Atomicidad
Consistencia
Aislamiento
Durabilidad
Una vez concluida una transacción, sus efectos son permanentes en la base de datos. Las modificaciones persisten aún en el caso de producirse un error del sistema.
Las modificaciones realizadas por transacciones simultáneas se deben aislar de las modificaciones llevadas a cabo por otras transacciones simultáneas.
Una transacción debe ser una unidad atómica de trabajo, es decir se realizan todas sus modificaciones en los datos o no se realiza ninguna de ellas.
Solo son ejecutadas aquellas transacciones que no tiene conflicto con las reglas y directrices de integridad de la base de datos.
Transacciones
Nivel de aislamiento
Define el grado en que se debe aislar una transacción de las modificaciones de recursos o datos realizadas por otras transacciones.
Lectura no confirmada
Lectura confirmada
Lectura repetible
Serializable
La ejecución de la instrucciones SELECT se llevan a cabo sin bloqueo, puede utilizar una versión antigua de una fila que ya no existe. Por lo tanto, el uso de este nivel no tiene aislamiento y no garantiza la transacción, tales lecturas no son consistentes. Esto también se conoce como lectura sucia.
Se evita el fenómeno de la lectura sucia, porque los cambios no confirmados no son visibles para cualquier otra transacción, hasta que se confirme el cambio. Cada SELECT posee su propia "copia" de los datos , por lo que el mismo SELECT cuando se ejecuta varias veces durante la misma transacción podría regresar diferentes conjuntos de resultados. Este fenómeno se le llama lectura no repetible.
Lee todos los datos de forma coherente dentro de la misma transacción, es como hacer una foto instantánea de los datos desde la primera lectura. Con este nivel de aislamiento se evita el fenómeno de la lectura no repetible, sin embargo hay otro fenómeno llamado lectura fantasma, puesto que no se tienen en cuenta los cambios de los datos realizados por otras transacciones.
Se evita el fenómeno de lectura fantasma. Coloca un bloqueo de rango en el conjunto de datos, cuando las transacciones se ejecuta en este nivel de aislamiento se bloquean todos los registros y recursos que se tiene acceso, así bloquea todo cambio, impidiendo que otros usuarios actualizar o insertar filas en el conjunto de datos hasta que la transacción se ha completado. Este nivel de aislamiento es el más fuerte posible.
Resultado Serializable
Reconoce los datos en el estado en que estaban antes de que otra transacción simultánea los modificara o después de que la segunda transacción haya concluido, pero no reconoce un estado intermedio.
SQL provee los mecanismos o sentencias para especificar que un conjunto de acciones deben constituir una transacción
BEGIN TRAN
COMMIT TRAN
ROLLBACK TRAN
Especifica que va a empezar una transacción.
Le indica al motor que puede considerar la transacción completada con éxito.
Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.