Está en la página 1de 6

Universidad Tecnológica Y Politécnica De La Sierra De Guerrero

Ingeniería En Desarrollo Y Gestión De Software

Tercer Cuatrimestre

Materia: Base De datos

Tema: Manejo de transacciones

Grupo: 2

Docente: Osvaldo González Diaz

Alumno: Efren Jimenez Diaz

Lugar: Tlacotepec

15 De agosto Del 2023


Conceptos de transacciones
Identificar los conceptos relacionados a transacciones en Bases de Datos.
Las transacciones son un concepto fundamental en el ámbito de las bases de datos, ya
que garantizan la integridad y la consistencia de los datos durante las operaciones en la
base de datos.
Transacción: Una transacción es una secuencia de una o más operaciones de base de
datos que se ejecutan como una sola unidad lógica de trabajo. Las transacciones
aseguran que las operaciones se completen con éxito o se reviertan por completo en caso
de fallo.
1. Propiedades ACID: Las transacciones se rigen por las propiedades ACID, que
garantizan la consistencia y la confiabilidad de los datos. Las propiedades ACID
son:
 Atomicidad: Una transacción se trata como una operación única y se
completa por completo o no se realiza en absoluto.
 Consistencia: Las transacciones deben llevar la base de datos de un
estado válido a otro estado válido, manteniendo las reglas y restricciones
de integridad.
 Aislamiento: Las transacciones se ejecutan en un entorno aislado, lo que
significa que los resultados de una transacción no son visibles para otras
transacciones hasta que se completen.
 Durabilidad: Una vez que una transacción se completa con éxito, sus
cambios en la base de datos son permanentes y resistentes a fallos.
2. Inicio, Commit y Rollback: Una transacción generalmente consta de tres fases:
inicio (begin), en la que se definen las operaciones que formarán parte de la
transacción; commit, en la que se confirman los cambios y se hacen permanentes;
y rollback, en la que se deshacen todos los cambios en caso de fallo o cancelación
de la transacción.
3. Bloqueo: Los sistemas de gestión de bases de datos utilizan bloqueos para
garantizar el aislamiento y la consistencia de las transacciones concurrentes. Los
bloqueos previenen que múltiples transacciones accedan a los mismos datos al
mismo tiempo y evitan problemas como lecturas sucias o escrituras perdidas.
4. Modos de Aislamiento: Los sistemas de bases de datos ofrecen diferentes
niveles de aislamiento para controlar cómo las transacciones concurrentes
interactúan entre sí. Los niveles comunes incluyen la lectura no repetible, la lectura
fantasma y la serialización.
5. Punto de Guarda (Savepoint): Un punto de guarda permite establecer un punto
en medio de una transacción para poder realizar rollback solo a ese punto en caso
de ser necesario, en lugar de volver al inicio de la transacción.
6. Bloqueo Optimista y Pessimista: En el bloqueo optimista, las transacciones
asumen que no habrá conflictos y realizan operaciones sin bloquear recursos, pero
verifican antes de confirmar que no haya habido cambios. En el bloqueo pesimista,
las transacciones bloquean los recursos que van a utilizar para prevenir conflictos.
7. Recuperación de Transacciones: Los sistemas de bases de datos incluyen
mecanismos para recuperarse de fallos, como caídas de energía o fallas en el
hardware, y asegurar que las transacciones inacabadas se restauren
correctamente.
8. Bitácora (Log): Las bases de datos mantienen registros de transacciones en una
bitácora, que registra todas las operaciones de la base de datos. Esto permite la
recuperación en caso de fallos y garantiza la consistencia de los datos.

Propiedades de transacciones
Identificar las propiedades de transacciones en Bases de Datos: - Atomicidad. -
Coherencia. - Aislamiento. - Durabilidad.
Las propiedades de transacciones en bases de datos se conocen como las propiedades
ACID, que son un conjunto de características que aseguran la integridad y la consistencia
de las transacciones en un sistema de gestión de bases de datos. Estas propiedades son:

Atomicidad (Atomicity): Esta propiedad asegura que una transacción se trata como una
unidad indivisible de trabajo. Esto significa que una transacción se completa en su
totalidad o no se realiza en absoluto. Si ocurre algún fallo durante la ejecución de la
transacción, se revierten todos los cambios realizados hasta ese momento, garantizando
que la base de datos no quede en un estado inconsistente.

Coherencia (Consistency): La propiedad de coherencia garantiza que una transacción


lleva la base de datos de un estado válido a otro estado válido. En otras palabras, una
transacción no puede violar las restricciones de integridad definidas en la base de datos.
Si una transacción inicia en un estado coherente, debe finalizar también en un estado
coherente, independientemente de cualquier error o falla que ocurra durante su ejecución.

Aislamiento (Isolation): La propiedad de aislamiento asegura que las transacciones se


ejecuten de manera aislada y que los cambios realizados por una transacción no sean
visibles para otras transacciones hasta que la primera se complete. Esto evita que las
transacciones interfieran entre sí y ayuda a mantener la consistencia de la base de datos.
Diferentes niveles de aislamiento pueden especificar el grado de visibilidad de los
cambios realizados por una transacción en el contexto de otras transacciones
concurrentes.

Durabilidad (Durability): La propiedad de durabilidad garantiza que una vez que una
transacción se completa con éxito, sus cambios persistirán en la base de datos incluso en
caso de fallo del sistema, como un apagón o un reinicio. Esto se logra mediante la
escritura de los cambios en almacenamiento persistente, como discos duros, de manera
que los cambios sobrevivan a eventos adversos.

Instrucciones commit y rollback

Identificar el uso de las instrucciones commit y rollback.

Las instrucciones COMMIT y ROLLBACK son comandos utilizados en sistemas de


gestión de bases de datos para controlar el estado y la finalización de las transacciones.

COMMIT: El comando COMMIT se utiliza para confirmar y finalizar una transacción.


Cuando ejecutas una serie de operaciones como inserciones, actualizaciones o
eliminaciones en una base de datos dentro del contexto de una transacción, puedes usar
COMMIT para indicar que todas esas operaciones se han completado exitosamente y
deben hacerse permanentes en la base de datos. Después de un COMMIT, los cambios
se vuelven permanentes y se mantienen incluso si hay reinicios del sistema o fallos.

ROLLBACK: El comando ROLLBACK se utiliza para deshacer una transacción en caso de


que ocurra algún error o problema. Si, durante la ejecución de una transacción, ocurre
algún error o la transacción no se puede completar como se esperaba, puedes utilizar
ROLLBACK para revertir todos los cambios realizados dentro de esa transacción. Esto
asegura que la base de datos vuelva al estado que tenía antes de que se iniciara la
transacción, evitando que la base de datos quede en un estado inconsistente.

Consistencia y niveles de aislamiento

Identificar el concepto de consistencia y los siguientes niveles de aislamiento: -


Lectura confirmada. - Lectura no confirmada. - Lectura repetible. - Serializable.

Consistencia en el contexto de bases de datos:

La consistencia en el contexto de las bases de datos se refiere a la propiedad de asegurar


que una base de datos se encuentre en un estado válido antes y después de la ejecución
de una transacción. Implica que cualquier transacción debe llevar la base de datos de un
estado consistente a otro estado consistente, respetando las reglas y restricciones
definidas en la base de datos. En otras palabras, la consistencia garantiza que las
transacciones mantengan la integridad y la coherencia de los datos, evitando situaciones
en las que los datos queden en estados incorrectos o contradictorios.
Niveles de aislamiento:

Los niveles de aislamiento son configuraciones que controlan el grado de visibilidad y


concurrencia entre transacciones concurrentes en un sistema de gestión de bases de
datos. Cada nivel de aislamiento proporciona un equilibrio entre la consistencia y el
rendimiento al permitir o restringir la forma en que las transacciones interactúan entre sí.
A continuación, se describen los niveles de aislamiento mencionados:

Lectura Confirmada (Read Committed): En este nivel de aislamiento, una transacción solo
puede ver los cambios confirmados por otras transacciones. Los cambios realizados por
una transacción no se vuelven visibles para otras transacciones hasta que se confirme la
transacción. Sin embargo, pueden surgir problemas de lectura sucia, donde una
transacción puede leer datos que luego son revertidos por otra transacción antes de
confirmarse.

Lectura No Confirmada (Read Uncommitted): En este nivel, una transacción puede leer
datos modificados por otras transacciones incluso antes de que se confirmen. Esto
permite una mayor concurrencia, pero puede dar lugar a problemas de lectura sucia y
lectura inconsistente, ya que los datos pueden cambiar antes de que se confirmen.

Lectura Repetible (Repeatable Read): En este nivel, una transacción garantiza que los
datos leídos no cambiarán durante el transcurso de la transacción. Esto evita problemas
de lectura sucia y garantiza cierto nivel de consistencia. Sin embargo, pueden surgir
problemas de phantom reads, donde una transacción puede ver filas adicionales que
aparecen debido a las inserciones realizadas por otras transacciones.

Serializable: Este es el nivel de aislamiento más estricto. Garantiza que las transacciones
se ejecuten como si fueran secuenciales, evitando cualquier interferencia entre ellas. Esto
elimina problemas de lectura sucia, lectura inconsistente y phantom reads, pero puede
afectar el rendimiento debido a la limitación de la concurrencia.
Características
Lectura Confirmada (Read Committed):

Lectura sin bloqueo: Las transacciones en este nivel no bloquean las lecturas realizadas
por otras transacciones en curso.
Evita lecturas sucias: Las lecturas no mostrarán datos que se encuentran en proceso de
modificación por otras transacciones.
Puede haber lecturas inconsistentes: Debido a que los datos pueden cambiar antes de
que se complete la transacción, las lecturas de múltiples partes de la misma transacción
pueden no ser coherentes entre sí.
Lectura No Confirmada (Read Uncommitted):

Máxima concurrencia: Las lecturas no bloquean nada, lo que permite un alto nivel de
concurrencia entre transacciones.
Lecturas sucias posibles: Las transacciones pueden leer datos modificados por otras
transacciones que aún no se han confirmado, lo que puede llevar a inconsistencias en los
datos.
Menos consistencia: Dado que las lecturas pueden mostrar datos en proceso de cambio,
la consistencia puede verse comprometida.
Lectura Repetible (Repeatable Read):

Consistencia de datos: Las transacciones garantizan que los datos leídos no cambiarán
durante el transcurso de la transacción.
Evita lecturas sucias: Las lecturas no mostrarán datos en proceso de modificación por
otras transacciones.
Posibles phantom reads: Aunque se evitan las lecturas sucias, las inserciones realizadas
por otras transacciones pueden llevar a la aparición de nuevas filas en las lecturas
repetibles.
Menos concurrencia: Bloquea las lecturas y las escrituras, lo que puede afectar el
rendimiento en sistemas de alta concurrencia.
Serializable:

Máxima consistencia: Las transacciones se ejecutan como si fueran secuenciales,


eliminando la posibilidad de lecturas sucias, lecturas inconsistentes y phantom reads.
Bloqueos intensivos: Se aplican bloqueos en lecturas y escrituras para garantizar el
aislamiento total entre transacciones, lo que puede llevar a problemas de rendimiento en
sistemas con muchas transacciones concurrentes.
Menor concurrencia: Debido a los bloqueos intensivos, la concurrencia puede reducirse
significativamente, lo que puede afectar el rendimiento general.

También podría gustarte