Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


CONCURRENCIA Base de datos, Resúmenes de Programación de Bases de Datos

En este ensayo se pude ver algunos de los conceptos necesarios para entender la concurrencia tales como las transacciones, las propiedades que presentan las transacciones, los problemas que puede presentar la concurrencia y el control de concurrencia que necesita tener un sistema de bases de datos.

Tipo: Resúmenes

2022/2023

A la venta desde 12/04/2026

carlos-g8t
carlos-g8t 🇲🇽

46 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Instituto Tecnológico Superior de
Uruapan. Ingeniería en Sistemas
Computacionales. Juan Miguel
Andrade Padilla. 17/11/22. Grupo
A Quinto Semestre
CONCURRENCIA
TALLER BASE DE DATOS
Carlos Zahid Solorzano Escobar
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga CONCURRENCIA Base de datos y más Resúmenes en PDF de Programación de Bases de Datos solo en Docsity!

Instituto Tecnológico Superior de Uruapan. Ingeniería en Sistemas Computacionales. Juan Miguel Andrade Padilla. 17 /11/22. Grupo A Quinto Semestre

CONCURRENCIA

TALLER BASE DE DATOS

Carlos Zahid Solorzano Escobar

Índice

Introducción ................................................................................................................. 1 Conceptos de Concurrencia ....................................................................................... 2 Definición ................................................................................................................. 2 Transacciones.......................................................................................................... 2 Propiedades de una transacción............................................................................. 3 Instrucciones commit y rollback .............................................................................. 3 Problemas de Concurrencia .................................................................................... 3 Control de Concurrencia.......................................................................................... 4 Consistencia ............................................................................................................ 5 Niveles de aislamiento ............................................................................................. 6 Conclusiones ............................................................................................................... 6 Bibliografía ................................................................................................................... 7

Introducción

Concurrencia se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez. Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia. En este ensayo se pude ver algunos de los conceptos necesarios para entender la concurrencia tales como las transacciones , las propiedades que presentan las transacciones, los problemas que puede presentar la concurrencia y el control de concurrencia que necesita tener un sistema de bases de datos.

Propiedades de una transacción

  • Atomicidad: Una transacción se trata como una unidad de operación. Por lo tanto, o todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo.
  • Consistencia: Una transacción es un programa correcto que lleva a la base de datos de un estado consistente a otro con la misma característica. Debido a esto, las transacciones no violan las restricciones de integridad de una base de datos.
  • Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.
  • Permanencia: Asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.

Instrucciones commit y rollback

Si una transacción es válida, se hace. La instrucción COMMIT garantiza que todas las modificaciones de la transacción se conviertan en una parte permanente de la base de datos. La instrucción COMMIT también libera recursos que utiliza la transacción como, por ejemplo, los bloqueos. Hay que utilizar COMMIT TRANSACTION solo en el punto donde todos los datos a los que hace referencia la transacción sean lógicamente correctos. Si se produce un error en una transacción o el usuario decide cancelar la transacción, hay que echar para tras la transacción. Esto se hace con la instrucción ROLLBACK que devuelve los datos al estado en que estaban al inicio de la transacción. La instrucción ROLLBACK también libera los recursos que mantiene la transacción.

Problemas de Concurrencia

Existen tres formas en las que una transacción, aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella en alguna forma. La transacción que interfiere también puede ser correcta; lo que produce el resultado incorrecto general es el intercalado sin control entre las operaciones de las dos transacciones correctas.

Los tres problemas son:

  • El problema de la Actualización Perdida. Cuando dos transacciones mientras intentan modificar un dato, ambas leen el valor antiguo del elemento antes de que ninguna haya modificado su valor.
  • El problema de la Dependencia No Confirmada Cuando se permite a una transacción leer o modificar un registro que ha sido actualizado por otra transacción y esta última todavía no lo ha comprometido.
  • El problema del Análisis Inconsistente Cuando una transacción lee un dato antes de que otra transacción lo actualice y lea otro dato después de que la misma transacción lo ha actualizado.

Control de Concurrencia

El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Administración de Base de Datos, puesto que permite controlar la ejecución de transacciones que operan en paralelo, accediendo a información compartida. El objetivo de los métodos de control de concurrencia es garantizar la no inferencia o la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente El criterio de clasificación más común de los algoritmos de control de concurrencia es el tipo de primitiva de sincronización. Esto resulta en dos clases: aquellos algoritmos que están basados en acceso mutuamente exclusivo a datos compartidos (bloqueos) y aquellos que intentar ordenar la ejecución de las transacciones de acuerdo a un conjunto de reglas (protocolos). Estas clases se pueden usar en algoritmos con dos puntos de vista diferentes: el punto de vista pesimista que considera que muchas transacciones tienen conflictos con otras, o el punto de vista optimista que supone que no se presentan muchos conflictos entre transacciones.

Niveles de aislamiento

El aislamiento asegura que, en la ejecución concurrente de transacciones, estas estén aisladas entre sí, de tal manera que cada una tiene la impresión de que ninguna otra transacción se ejecuta concurrentemente con ella. Niveles de aislamiento:

  • Lectura no comprometida: Nivel inferior donde las transacciones se aíslan solamente para asegurar que no se leen físicamente datos corruptos
  • Lectura comprometida Nivel predeterminado. Ésta es la consistencia al nivel de enunciado, garantizando que cada enunciado en una transacción sólo lee datos comprometidos antes de que el enunciado inicie.
  • Lectura repetible: Los bloqueos compartidos se colocan en todos los datos leídos por cada declaración en la transacción y se mantienen hasta que la transacción se completa, en lugar de liberarse después de cada declaración.
  • Secuenciable: Nivel superior, donde las transacciones están completamente aisladas entre sí. Ésta es la consistencia a nivel de transacción, lo que asegura que una transacción vea sólo datos comprometidos antes de que inicie éste. Fenómenos de aislamiento
    • Lecturas desfasadas: Una lectura desfasada se produce cuando una transacción lee datos que todavía no se han confirmado
    • Lecturas no repetibles: Una lectura no repetible se produce cuando una transacción lee la misma fila dos veces, pero obtiene datos diferentes cada vez.
    • Fantasmas: Un fantasma es una fila que coincide con los criterios de búsqueda pero que no se ve inicialmente.

Conclusiones

La concurrencia es una de las principales propiedades que separa una base de datos de otras formas de almacenamiento de datos. La capacidad de ofrecer simultaneidad es exclusiva de las bases de datos. Otros medios de almacenamiento de archivos planos a menudo se comparan con las bases de datos, pero difieren en este aspecto importante. En este ensayo pudimos ver los problemas que se presentan cuando la concurrencia no se controla y algunos de los mecanismos que nos permiten manejar la concurrencia en las transacciones. Los problemas causados por la concurrencia de la base de datos son incluso más importantes que la capacidad de admitir transacciones concurrentes.

Bibliografía

Dzul, J. (2015, 2 febrero). Control de concurrencia. SlideShare. https://es.slideshare.net/joseguadalupecouohdzul/invetigacion-base-de-datos-dis- parasubir?from_action=save Hernández, D. (2020, 4 marzo). 4.4 grados de consistencia. prezi.com. https://prezi.com/p/lsswvw850iba/44-grados-de-consistencia/ Gilaranz, C. (2015, 2 septiembre). COMMIT y ROLLBACK en las transacciones de #SQLServer – Mundo SQL. Mundo SQL. https://www.mundosql.eu/2015/09/02/commit-y- rollback-en-las-transacciones-de-sqlserver/ https://www.dsi.fceia.unr.edu.ar/downloads/base_de_datos/Concurrencia.pdf