Sunteți pe pagina 1din 12

INSTITUTO TECNOLOGICO SUPERIOR DE CALKINI EN ESTADO DE CAMPECHE

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

Integrantes del equipo:


Eduardo Darynel Huchin Moo 5403
Víctor Isaac López Fernández 5389
Jesús Alejandro Sosa Salazar 5401
Aurora Guadalupe Yam May 5394

Ingeniería en sistemas computacionales


5°to Semestre
Segundo parcial

Fecha de elaboración: 03/12/2017


Fecha de entrega: 05/12/2017
donde la concurrencia no es controlada correctamente, así como algunos
mecanismos de bloqueo que nos permiten manejar la concurrencia en las
transacciones.

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 otros, a este sistema se le denomina control
de concurrencia.

Los administradores de base de satos tienen varias responsabilidades en


los procesos de control del rendimiento para la cual uno de los elementos básicos
a detectar es el control de concurrencia de distintos usuarios.

El control de la concurrencia es uno de los principios fundamentales a


administrar ya que en las bases de datos siempre se debe garantizar la
consistencia y disponibilidad de la informacion.

A nivel de Sistema Manejador de Base de Datos se debe implementar un


modelo que garantice la consistencia de la base de datos en los casos donde se
realcen modificaciones concurrentes.

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.

No se puede hablar de concurrencia en la base de datos sin el uso de las


transacciones. Son sistemas que tratan el problema de control de concurrencia
permiten que sus usuarios asuman que cada una de sus aplicaciones se ejecutan
atómicamente, como si no existieran otras aplicaciones ejecutándose
concurrentemente. Esta abstracción de un ejecución atómica y confiable de una
aplicación se conoce como una transacción.

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.

Concurrencia de la base de datos


Definición

En el campo informático, el termino concurrencia se refiere a la capacidad


de los Sistemas de Administración de Base de Datos, de permitir que múltiples
procesos sean ejecutados al mismo tiempo, y que también puedan

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.

Algunos casos de concurrencia, pueden ser:

 La multiprogramación, ay que el tiempo del procesador es compartido


dinámicamente por varios procesos.
 Las aplicaciones estructuras, donde la programación estructurada se
implementa como un conjunto de procesos concurrentes.
 También se tiene que la misma estructura recién mencionada es
utilizada en el diseño de los sistemas operativos, los cuales se
implementan como un conjunto de procesos.

El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS


DE ADMINISTRACION DE BD) permiten que muchas transacciones puedan
realizarse en una misma base de datos a la vez. Para este sistema se necesita
algún mecanismo de control para que las operaciones simultáneas no interfieran
entre sí.

Transacciones
Las transacciones son aquellos procesos concurrentes sobre datos
compartidos que cumplen con las siguientes propiedades:

 Atomicidad (Atomicity): toma a la transacción como una unidad de


operación. Todas las acciones de la transacción se deben

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.

Consideremos que 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


 El problema de la dependencia no confirmada
 El problema de análisis inconsistente.

Métodos de control de concurrencia

Protocolos basados en técnicas de bloqueo

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.

Una forma de controlar la concurrencia es hacer que cada transacción deba


adquirir un derecho de acceso exclusivo a cada fragmento de datos que se
necesite modificar. A estos derechos se les denomina bloqueos.

Bloqueos binarios

Poseen dos valores posibles, bloqueados y desbloqueados. Cada elemento


de la base de datos tiene un bloqueo distinto. El bloqueo señala si una transacción
está en ejecución sobre el elemento o está libre para que se pueda operar con él.

Bloqueos de lectura/escritura

Puede tener tres posibles posiciones: libre, bloqueado para lectura, y


bloqueado para escritura. De esta forma, más de una transacción puede tener un
mismo elemento de datos bloqueado para lectura, pero sólo una para escritura.

Problemas del bloqueo en dos fases: interbloqueo y espera indefinida

El interbloqueo se produce cuando una transacción T1 está esperando a


algún elemento que está bloqueado por otra transacción T2. De esta forma, cada
transacción está parada en espera a que otra transacción libere el recurso.

 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.

Cuando realizar los bloqueos

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.

Bloqueos en SQL Server

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.

En general los bloqueos son gestionados por Microsoft SQL SERVER de


forma automatizada sin necesidad de gestión manual, pero existen dos factores
los cuales necesitan una intervención manual, estos son en términos informáticos:
BLOCKING y DEADLOCKS.

 BLOCKING. - Con este término se conoce la acción de espera de un


proceso o varios por culpa de un bloqueo existente por otro proceso sobre
los mismos datos. La solución para evitar mínimamente este tipo de
bloqueo es optimizar el diseño de las tablas, los índices utilizados, la
implementación de la sentencia sql y de la configuración hardware.
 DEADLOCK. - Con este término se conoce a el suceso de que dos
procesos estén cada uno bloqueando un objeto y a la vez ambos necesitan
también acceder a el objeto bloqueado por el otro. Esto crea un nudo, para
lo que Microsoft SQL SERVER dependiendo del tiempo de espera en el
procesador de los procesos, realiza un roll back y lanza el mensaje de error
1205 en uno de los procesos, permitiendo al otro continuar.

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.

Por eso existen varios protocolos de bloqueo que se pueden implementar,


unos son más usados por otros en el ámbito comercial, esto se debe a que
algunos de ellos tienen un alcance más teórico que practico, pero en si no hay uno
mejor que otro, eso dependerá de lo que se desea realizar. El objetivo de estos
métodos es garantizar que las transacciones se realicen de forma serializable.

El control de las concurrencias no solo permite mejorar la calidad de


funcionamiento de las aplicaciones, también ayuda a mantener la informacion
consistente, así como evita la aparición de errores en la recuperaciones o
respaldos.

10
Fuentes de informacion

Anónimo. (14 de Noviembre de 2012). Concurrencia. Obtenido de Concurrencia:


http://tadebasegino.blogspot.mx/2012/11/integridad-y-concurrencia.html

Anónimo. (s.f). 10. Transacciones y Concurrencia. Obtenido de 10. Transacciones y Concurrencia:


http://ict.udlap.mx/people/carlos/is341/bases10.html

Couoh Dzul, J. G. (02 de Febrero de 2015). Control de concurrencia. Obtenido de SlideShare:


https://es.slideshare.net/joseguadalupecouohdzul/invetigacion-base-de-datos-dis-para-
subir

G , H. G. (s,f). Concurrencia en Base de Datos. Obtenido de SCRIBD:


https://es.scribd.com/doc/55240694/Concurrencia-en-Base-de-Datos

Marcano, G. (02 de Noviembre de 2014). Concurrencia en Base de Datos. Obtenido de Prezi:


https://prezi.com/qeias8bda8wk/concurrencia-en-base-de-datos/

Servicio Nacional de Aprendizaje. (s,f). CONCURRENCIA, TRANSACCIONES. Obtenido de


CONCURRENCIA, TRANSACCIONES:
https://senaintro.blackboard.com/bbcswebdav/institution/semillas/217219_1_VIRTUAL/O
AAPs/OAAP5/aa10/oa_bloqueosconcurrencia/oc.pdf

11

S-ar putea să vă placă și