A continuación
le presentamos información a cerca de Base de Datos Distribuida, desde la
evolución, historia, componentes, con vídeos que ayudan al
entendimiento del tema. Este portafolio está realizado por los alumnos de
Ingeniería Sistemas - Uladech, para el curso de Proyecto de Base de Datos.
OBJETIVO
Este portafolio
tiene como objetivo, ayudar en el conocimiento del tema de base de datos
distribuidas, para todos los usuarios que necesiten obtener información a
cerca de ella y así ser transmitida en diversas formas, ayudando de
alguna manera fomentar el estudio y la lectura.
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 globalización y a la vez las
operaciones de las empresas son cada vez más
descentralizadas geográficamente. También el poder de las computadoras
personales aumentó y el costo de los Mainframes ya no tenía sentido. Además la
necesidad de compartir datos ha hecho que crezca el mercado de las bases de
datos distribuidas.
Componentes
Hardware involucrado
El hardware utilizado
no difiere mucho del hardware utilizado en un servidor normal. Al principio se
creía que si los componentes de una base de datos eran especializados serían
más eficientes y rápidos, pero se comprobó que el decentralizar todo y adoptar
un enfoque "nada compartido" (shared-nothing) resultaba más
barato y eficaz. Por lo que el hardware que compone una base de datos
distribuida se reduce a servidores y la red.
Software
Sistema manejador de base de datos distribuida (DDBMS)
Este sistema está
formado por las transacciones y los administradores de la base de datos
distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas
computadoras, estos programas pueden ser subsistemas de
un único DDBMS de un fabricante o podría consistir de una colección de
programas de diferentes fuentes.
Administrador de transacciones distribuidas (DTM)
Este es un programa
que recibe las solicitudes de procesamiento de los programas de consulta o
transacciones y las traduce en acciones para los administradores de la base de
datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM
puede ser propietario o desarrollado en casa.
Sistema manejador de base de datos (DBMS)
Es un programa que
procesa cierta porción de la base de datos distribuida. Se encarga de recuperar
y actualizar datos del usuario y generales de acuerdo con los comandos
recibidos de los DTM.
Nodo
Un nodo es una
computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción ejecuta
un DTM y un nodo de base de datos ejecuta un DBM.
Un bloqueo en general
es cuando una acción que debe ser realizada está esperando a un evento. Para
manejar los bloqueos hay distintos acercamientos: prevención, detección, y
recuperación. También es necesario considerar factores como que hay sistemas en
los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los
que la detección del bloqueo es demasiado costosa.
En el caso específico
de las bases de datos distribuidas usar bloqueo de recursos, peticiones para
probar, establecer o liberar bloqueos requiere mensajes entre los manejadores
de transacciones y el calendarizador. Para esto existen dos formas básicas:
Autónoma: cada nodo es responsable
por sus propios bloqueos de recursos.
Una transacción sobre un
elemento con n replicas requiere 5n mensajes
Petición del recurso
Aprobación de la petición
Mensaje de la transacción
Reconocimientos de
transacción exitosa
Peticiones de liberación de
recursos
Copia
Primaria:un nodo primario es responsable para todos los
bloqueos de recursos
Una transacción sobre un
elemento con n copias requiere 2n+3 mensajes
Una petición del recurso
Una aprobación de la
petición
n mensajes de la
transacción
n reconocimientos de
transacción exitosa
Una petición de liberación de recurso
Podemos definir que dos operaciones
entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y
una de ellas es de escritura y si fueron realizadas por transacciones
distintas.
Concurrencia
El ejemplo más común de un bloqueo
mutuo es cuando un recurso A está siendo utilizado por una transacción A que a
su vez solicita un recurso B que está siendo utilizado por una transacción B
que solicita el recurso A. Entre los ejemplos específicos para las bases de
datos distribuidas podemos destacar:
Control de concurrencia
El problema de las actualizaciones perdidas:
cuando dos transacciones concurrentes borran el efecto una de la otra.
Recuperaciones inconsistentes: acceder a
información modificada parcialmente por una transacción de Ian.
Soluciones
El control de concurrencia y detección
y manejo de bloqueos es un área de mucho estudio en las bases de datos
distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar
el problema. Esto se debe a varios factores de los cuales se consideran a los
siguientes tres los más 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.
2.Si un nodo falla o la comunicación con un nodo falla mientras se realiza
una actualización, el manejador debe asegurarse de que los efectos se reflejen
una vez el nodo se recupere del fallo.
3.La sincronización de transacciones en sitios o nodos múltiples es
difícil ya que los nodos no pueden obtener información inmediata de las
acciones realizadas en otros nodos concurrentemente.
Para el control de bloqueos mutuos no
se ha desarrollado ninguna solución viable y la forma más simple y que la
mayoría de productos utilizan es la implementación de un tiempo máximo de
espera en las peticiones de bloqueos.