Documente Academic
Documente Profesional
Documente Cultură
INVESTIGAR SOBRE LA
CONCURRENCIA
MGTI. EDUARDO JESÚS MIGUEL MORENO CABALLERO
Introducción
En este documento de explica el control concurrencia de una base de datos
y como afecta esto su desempeño y la consistencia. Además de que se tratara de
enfatizar los problemas que pueden traer consigo una base de datos en la que en
Resumen
La concurrencia se refiere a la ejecución de múltiples procesos al mismo
tiempo, es una propiedad que permite la interacción entre sistemas de informacion
y las bases de datos.
1
El control de concurrencia va orientado a la coordinación de los procesos
que actúan en forma concurrente sobre los datos que se encuentran compartidos,
evitando la interferencia entre ellos.
Abstract
Concurrency refers to the execution of multiple processes at the same
time, it is a property that allows the interaction between information systems and
databases.
The control of concurrency oriented to the coordination of the processes
that act concurrently on the data that are shared, avoiding the interference
between them.
You cannot talk about concurrency in the database without the use of
transactions. They are systems that deal with the problem of concurrency control
that allow their users that each of their applications are executed atomically, as if
there were no other applications running concurrently. This abstraction of an
atomic and reliable execution of an application is known as a transaction.
Objetivos
Analizar las maneras que hay de controlar una concurrencia y además de
mostrar cómo afecta si no se hace en una base de datos.
2
Justificación
La concurrencia en una base de datos es algo que se necesita controlar de alguna
forma, además de que es muy importante tener cuidado ya que como su definición
lo dice permite que muchas transacciones accedan a la misma vez en una base
de datos. Pero para solucionar este problema es importante saber ¿Cuál es el
mejor método que se puede implementar en una base de datos para evitar la
concurrencia y cuáles son los problemas que surgen si no se implementa algo
para contrarrestarlo? Para ello debe saber que existen métodos de bloqueo o
protocolos, pero esto se usan dependiendo, ya que algunos son más prácticos que
otros y un ejemplo del donde se puede dar un problema de concurrencia seria en
las transacciones de a una cuenta de banco.
Materiales
Servicio a Internet
Computadora portátil
Editor de texto: Word 2016
Métodos
1. Investigar en diferentes fuentes como internet, libros, etc.
2. Leer y analizar la informacion encontrada sobre el tema en cuestión.
3. Comparar la informacion obtenida de las diferentes fuentes encontradas,
sacando los textos más importantes del tema.
4. Se sintetiza la informacion más relevante.
3
5. Por último, lo entendida del tema se explica en un documento creado en
Word para presentar.
4
interactuar entre sí. Los procesos concurrentes pueden ser ejecutados realmente
de forma simultánea, solo cuando cada uno es ejecutado en diferentes
procesadores. En cambio, la concurrencia es simulada si solo existe un
procesador encargado de ejecutar todos los procesos, simulando la concurrencia,
ocupándose de forma alternada de uno y otro proceso a muy pequeños intervalos
de tiempo. De esta manera simula que se están ejecutando a la vez.
Transacciones
Las transacciones son aquellos procesos concurrentes sobre datos
compartidos que cumplen con las siguientes propiedades:
5
realizar o ninguna de ellas se lleva a cabo, es decir, se ejecuta o no se
ejecuta. Si existe una falla y la transacción se interrumpe, los resultados
parciales son totalmente anulados.
Consistencia (Consistency preservation): las transacciones deben llevar
una base de datos de un estado consistente a otro estado consistente, de
tal forma no se viola ninguna restricción de integridad.
Aislamiento (Isolation): una transacción no debe interferir con otra. Cuando
la transacción se encuentra en ejecución sus resultados no son mostrados
a otras transacciones concurrentes, sino solamente cuando ésta termine.
Durabilidad (Durability): esta propiedad también se le llama Permanencia.
El objetivo es que una vez una transacción termine exitosamente y la
transacción sea confirmada, los resultados son permanentes en la base de
datos.
Problemas de concurrencia
Existen tres formas en las que una transacción, aunque sea correcta por si
misma, puede producir una respuesta incorrecta si alguna otra transacción
interfiere con ella en alguna forma.
6
Un bloqueo es una operación usada para restringir las operaciones que se
pueden aplicar sobre la base de datos. Existen varios tipos de bloqueo: binarios,
compartidos, exclusivos, y bloqueos de certificación.
Bloqueos binarios
Bloqueos de lectura/escritura
Exclusión mutua. - Cada elemento está bloqueado o está libre por una
transacción.
Retención y espera. - Una transacción que ya ha bloqueado elementos
puede solicitar un elemento adicional, y esperar que se le asigne, sin
habilitar ninguno de los elementos anteriores.
No apropiación. - La transacción sólo puede liberar un elemento que
tenga asignado; no se lo puede quitar a otra transacción que tenga
mayor prioridad.
7
Espera circular. - Existe una cadena circular, compuesta por dos
transacciones o más, y otros tantos elementos intercalados, de manera
que cada proceso está esperando que se le asigne un elemento, el cual,
a su vez, está asignado al siguiente proceso de la cadena.
Bloqueo mutuo o deadlock. - Un proceso se encuentra en estado de
deadlock si está esperando por un suceso que no ocurrirá nunca.
Un aspecto que aún no se ha tratado es cuan grandes son los elementos de datos
que se deben bloquear. Una opción posible es bloquear tablas enteras. Esto hace
que la gestión de los bloqueos sea simple y tenga poca sobrecarga. No obstante,
esto impide que dos transacciones que van a manipular filas diferentes de una
tabla puedan progresar en paralelo.
Una segunda opción es utilizar bloqueos al nivel de las filas. En este caso, se
hacen mayores las posibilidades de concurrencia, pero, por otro lado, hay que
mantener mucha informacion sobre los bloqueos, y el servidor se sobrecarga más
con la gestión de los bloqueos.
Hay gestores de bases de datos que permiten seleccionar el tipo de bloqueo que
queremos para nuestra base de datos. Por ejemplo, en MySQL hay gestores de
almacenamiento que ofrecen bloqueo a nivel de fila, y otros bloqueos a nivel de
tabla. No obstante, hay sentencias que siempre producirán bloqueos de tabla,
como por ejemplo una sentencia ALTER TABLE.
8
El tema de los bloqueos en los gestores de base de datos como es
Microsoft SQL SERVER siempre ha sido crítico ya que afecta a la integridad de los
datos como a la concurrencia de los usuarios cuando acceden simultáneamente a
una tabla.
Un ejemplo muy habitual para explicar el porqué de los bloqueos, es una
aplicación bancaria la cual ejecuta una serie de transacciones sobre las cuentas
bancarias, pero que a la vez tu puedes visualizar los datos. Así, si no existieran los
bloqueos se podría estar viendo datos que ya no son válidos porque están siendo
cambiados por otro lado; mientras que los bloqueos permiten que cuando alguien
está modificando o leyendo unos datos nadie pueda estar modificándolos a la vez.
9
Conclusión
La investigación realizada ayudo a comprender más sobre los problemas
que trae la concurrencia en una base de datos, ya que como se planteó desde el
principio el ejemplo del banco, al momento de hacer una transacción como al
depositar en una cuenta por dos personas al mismo tiempo puede haber perdida,
puede que solo un deposito se efectué y el otro se pierda. Esto es un problema
muy grande ya que se pierda en la integridad de una base de datos.
10
Fuentes de informacion
11