Sie sind auf Seite 1von 14

Unidad 4

Proceso de transacciones en base de datos distribuidas


Alumno
Juan Jos Cisneros Martnez
Asignatura
Base de datos distribuidos
Grado y grupo
6E
Ing. sistemas computacionales
Docente: Arturo Ivn Grajales Vzquez
29 de mayo de 2012

ndice
Introduccin

Base datos distribuidos

4.1 Transacciones

4.1.1Estructura de transacciones

4.1.2Ejecucuion de transacciones centralizadas

4.1.4Ejecucion de transacciones distribuidas

4.2Algoritmos de control de concurrencias

4.2.1Basados en bloqueo

4.2.2Pruebas de validacin optimistas

10

4.3Recuperacion

11

4.4Seguridad e integridad

11

Conclusin

13

Bibliografa

14

Introduccin
La gran cantidad de avances e innovaciones tecnolgicas que se produjeron en los ltimos
aos tuvieron como resultado un cambio en la forma de observar a los sistemas de
informacin, en general a las aplicaciones computacionales.

Proceso de transacciones

Pgina 2

Base datos distribuidos

Existen avances tecnolgicos que se realizan de forma constante en dispositivos de


almacenamiento, circuitos, programas y metodologas. Dichos avances van de la mano
junto con la demanda de los usuarios y programas para la explotacin de dichos
dispositivos mejorados.
Un rea en la cual las soluciones estn ocupando tecnologa con nuevas arquitecturas, es en
la de los
Sistemas distribuidos de informacin. Estos sistemas se refieren al manejo de datos
almacenados en muchos
Sitios ligados a travs de una red de comunicaciones. Un caso particular de estos sistemas
distribuidos es lo que se conoce como base de datos distribuidas.
En los sistemas de base de datos distribuidos se persigue la integracin de sistemas de base
de datos diversos, no necesariamente homogneos para dar a los usuarios una visin global
de la informacin disponible. Este proceso de integracin no implica la centralizacin de la
informacin, ms bien, con la ayuda de la tecnologa de redes de computadoras la
informacin se mantiene distribuida y los sistemas de bases de datos distribuidos permiten
el acceso a ella como si estuviera localizada en un solo lugar. La distribucin de la
informacin permite tener accesos rpidos a la misma, tener copias de la informacin para
accesos ms rpidos y para tener respaldo en caso de fallas. Un sistema de base de datos
distribuida es el resultado de la integracin de una base de datos distribuida con un sistema
para su manejo.

Existen diversos factores relacionados a la construccin de base de datos


distribuidos que no se presentan en base de datos centralizadas.

Transacciones
Los sistemas distribuidos son muy confiables debido a la posibilidad de brindar
redundancia y autonoma de recursos en diferentes nodos, esto posibilita detectar y
localizar fallas, sin embargo tenemos varios aspectos que representan problemas para la
integridad de los recursos y que a su vez motivan el uso de transacciones
Proceso de transacciones

Pgina 3

Base datos distribuidos

Dificultad para mantener consistencia en los datos


Una misma va de comunicacin no siempre puede ser utilizada para suministrar
interaccin entre dos procesos
Requerimientos de procesamientos en paralelo
Manejo interactivo de uno o ms usuarios
Integridad de transacciones
Una transaccin es una serie de operaciones sobre la base de datos consideradas como una
nica operacin, de manera que cuando se cierra la transaccin la base de datos queda en
un estado consistente.
Las restricciones de integridad de transacciones gobiernan las formas en que se puede
manipular la base de datos. A diferencia de otras restricciones, las restricciones de
transaccin versan sobre el procesamiento y, por tanto, por s mismas no son parte del
modelo de datos. La base de datos debe respetar todas las restricciones de integridad
definidas antes de que comience la transaccin y una vez finalizada sta, aunque se pueden
violar temporalmente algunas de las restricciones durante la transaccin.
Las transacciones pueden involucrar a mltiples registros, mltiples relaciones e incluso
mltiples bases de datos. Siendo precisos, todas las operaciones sobre una base de datos son
transacciones. Incluso la actualizacin de un nico registro existente es una transaccin.
Estas transacciones de bajo nivel las realiza el motor de base de datos de forma transparente
y, normalmente se puede ignorar este nivel de detalle.

APLICACIONES DE TRANSACIONES

Base de datos
Base de datos distribuidas
Sistema de archivos distribuidos
Desarrollo de aplicaciones tolerantes a fallos

DEFINICIN DE TRANSACIONES
Las transacciones fueron originalmente desarrolladas para ser utilizadas dentro de los
sistemas de base de datos, donde se usaba para ayudar en el mantenimiento de los datos de
las aplicaciones y que dependan de la consistencia de la informacin almacenada.

Proceso de transacciones

Pgina 4

Base datos distribuidos

Las transacciones son mecanismos que ayudan a simplificar la construccin de sistemas


confiables mediante procesos que proporcionan soporte uniforme para invocar y sincronizar
operaciones como:

Operaciones de comparacin de datos


Aseguramiento de la seriabilidad de las transacciones con otras
Atomicidad en su comportamiento
Recuperacin de fallas

La palabra transaccin describe una secuencia de operaciones con uno o ms recursos que
transforman su estado actual en un nuevo estado de consistencia. Es un conjunto de
operaciones sobre datos que son tratadas como una unidad. Una transaccin puede
terminar, haciendo sus cambios persistentes, o abortar voluntaria o involuntariamente.
Dentro del rea de los sistemas computacionales el concepto de transacciones fue
inicialmente utilizado para definir la consistencia entre mltiples usuarios en una base de
datos.
Una transaccin es una coleccin de operaciones que hacen transformaciones consistentes
de los estados de un sistema conservando la consistencia del sistema. Una base de datos
esta en estado consistente si cumple todas las restricciones de integridad definidas sobre
ella. Los cambios de estado se dan debido a actualizacin, insercin y eliminacin de la
informacin.
Se quiere asegurar que la base de datos no entre en un estado de inconsistencia, pero
durante la ejecucin de una transaccin, la base de datos puede estar temporalmente en un
estado inconsistente. Lo importante aqu es asegurar que la base de datos vuelva aun estado
consistente al concluir la ejecucin de una transaccin.
Lo que se persigue con el uso de transacciones es por un lado contar con una transparencia
adecuada de las acciones concurrentes a una base de datos y por el otro tener una
transparencia adecuada en el manejo de las fallas que se pueden presentar en una base de
datos

Estructura de transacciones

Proceso de transacciones

Pgina 5

Base datos distribuidos

La estructura de una transaccin usualmente viene dada segn el modelo de la transaccin,


estas pueden ser planas (simples) o anidadas.
Transacciones planas:
Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave
BEGIN y END. Por ejemplo:
BEGIN _TRANSACTION Reservacin
....
END.
Transacciones Anidadas:
Consiste en tener transacciones que dependen de otras, estas transacciones estn incluidas
dentro de otras de un nivel superior y se las conoce como subtransacciones. La transaccin
de nivel superior puede producir hijos (subtransacciones) que hagan ms fcil la
programacin del sistema y mejoras del desempeo.
En las transacciones anidadas las operaciones de una transaccin pueden ser as mismo
otras transacciones. Por ejemplo:
BEGIN _TRANSACTION Reservacin
..........
BEGIN _TRANSACTION Vuelo
........
END.( Vuelo ) ......
BEGIN _TRANSACTION Hotel
........
END
......
END.
Una transaccin anidada dentro de otra conserva las mismas propiedades que las de su
padre, esto implica, que puede contener as mismo transacciones dentro de ella. Existen
restricciones obvias en una transaccin anidada: debe empezar despus que su padre y debe
terminar antes que el. El compromiso de una subtransaccion es condicional al compromiso
de su padre, si el padre de una o varias subtransacciones aborta, las subtransacciones hijas
tambin sern abortadas. Las transacciones anidadas brindan un nivel ms alto de
concurrencia entre transacciones. Ya que una transaccin consiste de varias transacciones es
posible tener mayor concurrencia dentro de una sola transaccin.
As tambin, es posible recuperarse de fallas de forma independiente de cada su
transaccin. Esto limita el dao a una parte ms pequea de la transaccin, haciendo que el
costo de la recuperacin sea el menor.
Proceso de transacciones

Pgina 6

Base datos distribuidos

Tambin se deben considerar el orden de las lecturas y escrituras. Si las acciones de lectura
y escritura pueden ser mezcladas sin ninguna restriccin, entonces, a este tipo de
transacciones se les conoce como Generales .Por el contrario, si se restringe o impone que
un dato debe ser ledo antes de que pueda ser escrito entonces se tendrn transacciones
Restringidas. Si las transacciones son restringidas a que todas las acciones de lectura se
realicen antes de las acciones de escritura entonces se les conoce como de Dos Pasos.
Finalmente existe un modelo de accin para transacciones restringidas en donde se aplica
an ms la restriccin de que cada par < read , write > tiene que ser ejecutado de manera
atmica.

Ejecucin de transacciones centralizadas


Teora del procesamiento de transacciones:
Consiste en una serie de modificaciones (transacciones) a un determinado recurso del
sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin
Tran) y un punto de terminacin que define un bloque entre el conjunto de operaciones que
son realizadas.
Dentro de este proceso en bloque los dems usuarios no pueden modificar nada hasta que
no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal y
conflictos

Ejecucin de transacciones distribuidas


Ejecucin distribuida de transacciones.
Mtodos de implantacin de transacciones.
Espacio de trabajo privado.
Consiste en realizar copias de los bloques que sern utilizados dentro de una transaccin de
manera que se trabaje con estas copias para realizar todas las modificaciones necesarias.
Todo el espacio de trabajo con la informacin que ser utilizada es contenido dentro de
estas copias denominado espacio de trabajo privado. Los dems usuarios trabajarn con la
copia original de los bloques pero no podrn obtener segunda copia de los mismos.

Bitcora de escritura anticipada.

Proceso de transacciones

Pgina 7

Base datos distribuidos

Este mtodo consiste en realizar una lista con todas las transacciones que van siendo
ejecutadas hacia un bloque o espacio de trabajo que sea estable, a esta lista se le conoce
como lista de intenciones.
Las transacciones sern actualizadas con la informacin una vez que se ha determinado el
fin de la transaccin

Algoritmos de control de concurrencias


El control de concurrencia trata con los problemas de aislamiento y consistencia del
procesamiento de transacciones. El control de concurrencia distribuido de una DDBMS
asegura que la consistencia de la base de datos se mantiene en un ambiente distribuido
multiusuario. Si las transacciones son internamente consistentes, la manera ms simple de
lograr este objetivo es ejecutar cada transaccin sola, una despus de otra. Sin embargo,
esto puede afectar grandemente el desempeo de un DDBMS dado que el nivel de
concurrencia se reduce al mnimo. El nivel de concurrencia, el nmero de transacciones
activas, es probablemente el parmetro ms importante en sistemas distribuidos. Por lo
tanto, los mecanismos de control de concurrencia buscan encontrar un balance entre el
mantenimiento de la consistencia de la base de datos y el mantenimiento de un alto nivel de
concurrencia.
Si no se hace un adecuado control de concurrencia, se pueden presentar dos anomalas. En
primer lugar, se pueden perder actualizaciones provocando que los efectos de algunas
transacciones no se reflejen en la base de datos. En segundo trmino, pueden presentarse
recuperaciones de informacin inconsistentes.
En este captulo se hace la suposicin de que el sistema distribuido es completamente
confiable y no experimente falla alguna. En el captulo siguiente, se considerar la
presencia de fallas para obtener sistemas confiables.
El control de concurrencia y deteccin y manejo de bloqueos es un rea de mucho estudio
en las bases de datos distribuidas, a pesar de esto no hay ningn algoritmo aceptado para
solucionar el problema. Esto se debe a varios factores de los cuales se consideran a los
siguientes tres los ms determinantes:
La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es
responsable de localizar y actualizar la data duplicada.
Si un nodo falla o la comunicacin con un nodo falla mientras se realiza una actualizacin,
el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del
fallo.
La sincronizacin de transacciones en sitios o nodos mltiples es difcil ya que los nodos no
pueden obtener informacin inmediata de las acciones realizadas en otros nodos
concurrentemente.
Para el control de bloqueos mutuos no se ha desarrollado ninguna solucin viable y la
forma ms simple y que la mayora de productos utilizan es la implementacin de un
tiempo mximo de espera en las peticiones de bloqueos.

Proceso de transacciones

Pgina 8

Base datos distribuidos

Causa de estas dificultades ms de 20 algoritmos de control de concurrencia se han


propuesto en el pasado, y aun as siguen apareciendo nuevos. Una revisin bibliogrfica
muestra que la mayora de los algoritmos son variantes del 2PL (2-phase locking o bloqueo
de dos fases) o el algoritmo de time-stamp. A continuacin se explican estos dos algoritmos
bsicos.
Bloqueo de dos fases (2PL)
El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre
operaciones. Consiste en los siguientes pasos para una transaccin T:
Obtiene bloqueo de lectura para un elemento L (bloqueo compartido)
Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo)
Lee el elemento L
Escribe en el elemento E
Libera el bloqueo de L
Libera el bloqueo de E
Las reglas bsicas para manejar los bloqueos son: transacciones distintas no pueden tener
acceso simultneamente a un elemento (lectura-escritura o escritura-escritura), y una vez se
libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la transaccin crecern
mientras no libere ninguno y luego de liberar alguno solo puede liberar los dems.
Ejemplos del algoritmo 2PL son
La bsica en la que se sigue el esquema previamente explicado con la variante que el
bloqueo de escritura se pide para todas las copias del elemento.
2PL de copia primaria: en vez de pedir bloqueo para cada copia del elemento de escritura se
le pide a una copia primaria o principal.
2PL de voto: se pide a todos los nodos que voten para ver si se concede el bloqueo.
2PL centralizado: el manejador de bloqueos est centralizado y todas las peticiones de
bloqueo las maneja el.
Antes de implementar un algoritmo de control de concurrencia 2PL es necesario considerar
distintos factores como cual es la unidad atmica ms pequea que el sistema permite
bloquear, cual es el intervalo de sincronizacin para todas las copias de un elemento, donde
se deben colocar las tablas con la informacin de los bloqueos y por ltimo que tan
probable es que ocurra por los factores anteriores un bloqueo mutuo.
Time-stamp
Cada transaccin realizada se le asigna un timestamp (literalmente: sello de tiempo) nico
en el nodo que se origin. Este sello se adjunta a cada peticin de lectura y escritura. En el
caso de que se d un conflicto de que dos operaciones de escritura traten de acceder al
mismo elemento, este se resuelve serializandolo respecto a los sellos que tengan. A pesar de
que existen varios algoritmos de control de concurrencia basados en timestamps, muy
pocos son utilizados en aplicaciones comerciales. Esto es en gran parte porque se requiere
Proceso de transacciones

Pgina 9

Base datos distribuidos

que el sistema distribuido cuente con un reloj sincronizado que es raro que se tenga
implementado.

Pruebas de validacin optimista


Los algoritmos de control de concurrencia discutidos antes son por naturaleza pesimistas.
En otras palabras, ellos asumen que los conflictos entre transacciones son muy frecuentes y
no permiten el acceso a un dato si existe una transaccin conflictiva que accesa el mismo
dato. As, la ejecucin de cualquier operacin de una transaccin sigue la secuencia de
fases: validacin (V), lectura , cmputo y escritura (W) (ver Figura 6.6a). Los
algoritmos optimistas, por otra parte, retrasan la fase de validacin justo antes de la fase de
escritura (ver Figura 6.6b). De esta manera, una operacin sometida a un despachador
optimista nunca es retrasada.
Las operaciones de lectura, cmputo y escrita de cada transaccin se procesan libremente
sin actualizar la base de datos corriente. Cada transaccin inicialmente hace sus cambios en
copias locales de los datos. La fase de validacin consiste en verificar si esas
actualizaciones conservan la consistencia de la base de datos. Si la respuesta es positiva, los
cambios se hacen globales (escritos en la base de datos corriente). De otra manera, la
transaccin es abortada y tiene que reiniciar
Los mecanismos optimistas para control de concurrencia fueron propuestos originalmente
con el uso de estampas de tiempo. Sin embargo, en este tipo de mecanismos las estampas
de tiempo se asocian nicamente con las transacciones, no con los datos. Ms an, las
estampas de tiempo no se asignan al inicio de una transaccin sino justamente al inicio de
su fase de validacin. Esto se debe a que las estampas se requieren nicamente durante la
fase de validacin.
Cada transaccin Ti se subdivide en varias subtransacciones, cada una de las cuales se
puede ejecutar en nodos diferentes. Sea Tij una subtransaccin de Ti que se ejecuta en el
nodo j. Supongamos que las transacciones se ejecutan de manera independiente y ellas
alcanzan el fin de sus fases de lectura. A todas las subtransacciones se les asigna una
estampa de tiempo al final de su fase de lectura. Durante la fase de validacin se realiza una
prueba de validacin, si una transaccin falla, todas las transacciones se rechazan.
La prueba de validacin se realiza con una de las siguientes reglas:
1. Si todas las transacciones Tk, tales que, ts( Tk ) < ts( Tij ), han terminado su fase de
escritura antes que Tij ha iniciado su fase de lectura entonces la validacin tiene xito. En
este caso la ejecucin de las transacciones es completamente serial como se muestra en la
Figura 6.7a.
2. Si existe alguna transaccin Tk, tal que, ts( Tk ) < ts( Tij ) y la cual completa su fase de
escritura mientras Tij est en su fase de lectura, entonces, la validacin tiene xito si
WS(Tk ) RS(Tij ) = . En este caso, las fases de lectura y escritura se traslapan, como se
muestra en la Figura 6.7b, pero Tij no lee datos que son escritos por Tk.
Proceso de transacciones

Pgina 10

Base datos distribuidos

3. Si existe alguna transaccin Tk, tal que, ts( Tk ) < ts( Tij ) y la cual completa su fase de
lectura antes que Tij termine su fase de lectura, entonces, la validacin tiene xito si WS(Tk
) RS(Tij ) = y WS(Tk ) WS(Tij ) = .

Recuperacin
La Recuperacin de Transaccin vence los defectos de recuperacin tradicionales
eliminando el tiempo de indisponibilidad y evitando la prdida de datos buenos. La
Recuperacin de Transaccin es el proceso de borrar los efectos indeseados de
transacciones especficas de la base de datos. La recuperacin tradicional est en el nivel
de objeto de base de datos: por ejemplo, en el espacio de datos, espacio de mesa o nivel de
ndice. Realizando una recuperacin tradicional, un objeto de base de datos especfico es
elegido. Entonces, una copia de seguridad de aquel objeto es aplicada, seguida volviendo a
aplicar entradas de registro para cambios que ocurrieron despus de que la copia de imagen
fue tomada. Recuerde que todos los cambios hechos a una base de datos relacional son
capturados en el registro de base de datos. De este modo, si los detalles de cambio pueden
ser ledos del registro, la recuperacin puede ser conseguida invirtiendo el impacto de los
cambios registrados.

Seguridad e integridad
Desde hace ya varios aos las bases de datos son ampliamente utilizadas en departamentos
de gobiernos, empresas comerciales, bancos, hospitales, etc. Actualmente se est
cambiando el esquema bajo el cul se utilizan las bases de datos, ya no son utilizadas
nicamente de forma interna, sino que se tiene muchos accesos externos de tipos distintos.
Estos cambios que se han introducido en el uso de las bases de datos ha creado la necesidad
mejorar las prcticas de seguridad ya que el ambiente ya no es tan controlado como el
esquema antiguo.
Los problemas de mayor importancia en seguridad son autenticacin, identificacin, y
refuerzo de los controles de acceso apropiados. El sistema de seguridad de niveles
mltiples. ste consiste en muchos usuarios con distintos niveles de permisos para una
misma base de datos con informacin de distintos niveles. En las bases de datos
distribuidas se han investigado dos acercamientos a este modelo: data distribuida y control
centralizado, y data y control distribuidos.

En el acercamiento de data distribuida y control centralizado se divide en dos


soluciones: particionado y replicado. En el primero de estos lo que se tiene es
un conjunto de nodos y cada uno de ellos opera a cierto nivel de seguridad, as
el usuario con nivel de permisos X accede al servidor que maneja la data para
X. El replicado surgi debido a que si alguien con altos derechos de seguridad deseaba
consultar data con de bajo nivel de seguridad deba enviar su peticin a un servidor de bajo
nivel de seguridad por lo cual se podra divulgar informacin sensible. En el esquema
Proceso de transacciones

Pgina 11

Base datos distribuidos

replicado entonces la data se repite en cascada de tal forma que el nivel ms alto tiene una
copia entera de la base de datos, y el ms bajo solamente la informacin de ms bajo nivel.
El otro acercamiento de data y control distribuido cada nodo contiene informacin de
distintos niveles y est diseado para aceptar peticiones de cualquier nivel de usuario.
El problema de inferencia consiste en usuarios tratando de ejecutar consultas sobre la BD y
estos infiriendo informacin sobre la respuesta legtima que la base de datos debe
responder. Las herramientas para minera de datos hacen este problema an ms peligroso
ya que hacen que sea ms fcil para cualquier novato poder deducir patrones e informacin
importantes de simplemente probar consultas.

Conclusiones

Proceso de transacciones

Pgina 12

Base datos distribuidos

Una base de datos distribuida (BDD) es un conjunto de mltiples bases de datos


lgicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios
lgicos (pej. un servidor corriendo 2 mquinas virtuales) e interconectados por una red de
comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autnomo,
esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos
Distribuida (SBDD) es un sistema en el cual mltiples sitios de bases de datos estn ligados
por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede
acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos
de forma local.
Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los
principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
Hay mltiples computadores, llamados sitios o nodos.
Estos sitios deben de estar comunicados por medio de algn tipo de red de comunicaciones
para transmitir datos y rdenes entre los sitios.
Hay varios factores que han hecho que las bases de datos evolucionen a bases de datos
distribuidas. En el mundo de los negocios se ha dado una globalizacin y a la vez las
operaciones de las empresas son cada vez ms descentralizadas geogrficamente. Tambin
el poder de las computadoras personales aument y el costo de los Mainframes ya no tena
sentido. Adems la necesidad de compartir datos ha hecho que crezca el mercado de las
bases de datos distribuidas.

Bibliografa
Shaku,atre Distribucin de base de datos
Proceso de transacciones

Pgina 13

Base datos distribuidos

Corporatividad de procesos y redes


McGraw-Hill
Stefano Seri
Distribucin de base de datos, principios y sistemas
McGraw-Hill
Henry,silberchate Abraham
Fundamentos de base de datos
McGraw-Hill

Proceso de transacciones

Pgina 14

Das könnte Ihnen auch gefallen