¿Qué es una
transacción?
Una transacción
es una unidad de la ejecución de un programa que lee y escribe datos a y desde
la Base de Datos. Puede consistir en varias operaciones de acceso a la base de
datos. Una Transacción está delimitada por instrucciones de inicio
transacción y fin transacción (la transacción
consiste en todas las operaciones que se ejecutan entre inicio transacción y
fin transacción).
¿Qué significa ACID? y defina cada una de las palabras que forman las siglas
Una unidad
lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser
calificacada como transacción.
¿Qué significa
Tx?
Transaccion
¿Para que nos
sirve el Rollback?
Señala el final sin éxito de una transacción,
elimina todas las modificaciones de datos realizadas desde el inicio de la
transacción y también libera los recursos que retiene la transacción.
Defina
Integridad de datos
Hace referencia a que todas las características de los datos (reglas,
definiciones, fechas, etc) deben ser correctos para que los datos estén
completos.
Defina
concurrencia
La concurrencia es la propiedad de los sistemas que permiten que
múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan
interactuar entre sí
Defina Grado de
consistencia
Podría definirse como la
coherencia entre todos los datos de la base de datos. Cuando se pierde la
integridad también se pierde la consistencia. Pero la consistencia también
puede perderse por razones de funcionamiento.
Mencione
aspectos relacionados al procesamiento de transacciones
Modelo de
estructura de transacciones: Considerar si las transacciones son
planas o anidadas.
Consistencia de la base de datos interna. Los algoritmos de control de datos semántico
tienen que satisfacer siempre las restricciones de integridad cuando una
transacción pretende hacer un commit.
Protocolos de confiabilidad. En transacciones distribuidas es necesario introducir medios de
comunicación entre los diferentes nodos de una red para garantizar la
atomicidad y durabilidad de las transacciones. Así también, se requieren
protocolos para la recuperación local y para efectuar los compromisos (commit)
globales.
Algoritmos de control de concurrencia. Los algoritmos de control de concurrencia deben sincronizar la
ejecución de transacciones concurrentes bajo el criterio de correctitud. La
consistencia entre transacciones se garantiza mediante el aislamiento de las
mismas.
Protocolos de control de réplicas. El control de réplicas se refiere a cómo garantizar la consistencia
mutua de datos replicados. Por ejemplo se puede seguir la estrategia
read-one-write-all (ROWA).
Defina los
estados de una transacción:
Activa (Active):
El estado
inicial la transacción permanece en este estado durante su ejecución
Parcialmente
comprometida (Uncommited)
Después de
ejecutarse la última transacción.
Fallida (Failed):
tras
descubrir que no se puede continuar la ejecución normal.
Abortada (Rolled
Back):
Después de
haber retrocedido la transacción y restablecido la base de datos a su estado
anterior al comienzo de la transacción.
Comprometida
(Commited
Tras
completarse con éxito.
El estándar
ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en función de
tres eventos que son permitidos o no dependiendo del nivel de aislamiento.
Estos eventos son:
Lectura sucia. Las sentencias SELECT son ejecutadas sin realizar
bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto,
las lecturas no son consistentes
al usar este nivel de aislamiento.
Lectura no repetible. Una
transacción vuelve a leer datos que previamente había leído y encuentra que han
sido modificados o eliminados por una transacción cursada.
Lectura fantasma. Una
transacción vuelve a ejecutar una consulta, devolviendo un conjuntó de
registros que satisfacen una condición de búsqueda y encuentra que otros
registro que satisfacen la condición han sido insertadas por otra transacción
cursada.