Está en la página 1de 20

Bases de datos Distribuidas

Documentación de clase
(02/03)

Documentación realizada por:


J. Javier Trapero Burgos
3º ITIS
Bases de datos distribuidas

Índice
1.- Introducción……………………………………...……………………2

2.- Ventajas de las BDD…………………………………...……………...6

3.- Desventajas de las BDD……………………………...………………..8

4.- Funciones adicionales de las bases de datos distribuidas…………...9

5.- Fragmentación de los datos……………………………………...…..10

6.- Replicación y asignación de los datos…………………………...…..12

7.- Tipos de sistemas de bases de datos distribuidas………………......13

8.- Procesamientos de consultas en bases de datos distribuidas

8.1 Costos de la transferencia de datos en el procesamiento de consultas


distribuidas ……………………………………………………………...…….15

8.2 Consultas distribuidas por semirreunión………………………………..15

8.3 Descomposición de actualizaciones y de consultas………………………15

9.- Control de concurrencia y recuperación de BDD

9.1 Control de concurrencia basado en una copia distinguida de un


elemento………………………………………………………………………..16

9.2 Control de concurrencia distribuida basada en votación………………17

10.- Recuperación distribuida………………………………………......18

11.- Relación entre las BDD y la arquitectura cliente-servidor………18

12.- Oracle como BDD…………………………………………………...19

-1-
Bases de datos distribuidas

1.- Introducción

Las BDD surgieron como la mezcla de 2 tecnologías cada vez más utilizadas: las
bases de datos y las redes de comunicaciones de datos.

En los ‘70 y principios de los ‘80 las BD tendían a su descentralización


convirtiéndose en grandes BD monolíticas. A finales de los ‘80 se empezó a tender a la
descentralización y autonomía de los diferentes procesos de un sistema de BD.

Gracias a las mejoras de los SO y a las tecnologías relacionadas con la


computación distribuida, se empezó a investigar más a fondo temas como la
distribución de datos, las consultas distribuidas, el procesamiento de transacciones,
etc…

Las organizaciones han estado y están muy interesados en una descentralización


de la información a nivel del sistema y centralización a nivel lógico.

Las BDD aportan las ventajas de la computación distribuida al dominio de las


BD. La computación distribuida consiste en un conjunto de elementos de procesamiento
que están interconectados por una red y que cooperan en la ejecución de ciertas tareas
asignadas. Los sistemas de computación distribuida dividen un problema de gran
envergadura en subproblemas más pequeños que se pueden realizar eficientemente
trabajando de forma coordinada. El enfoque económico de este tipo de sistemas se basa
en que se aprovecha más la potencia de la máquina pudiendo así realizar tareas más
complejas; y cada elemento autónomo puede ser gestionado independientemente y
puede desarrollar sus propias aplicaciones.

Una Base de Datos Distribuida es una base de datos construida sobre una red
computacional y no en una máquina aislada. La información que constituye la base de
datos esta almacenada en diferentes sitios en la red y las aplicaciones que se ejecutan
acceden a datos en distintos sitios de la red. Se puede decir también que una BDD es un
conjunto de bases de datos interrelacionadas lógicamente y distribuidas a través de una
red de computadores. Cada BD que forma un “sitio” de la BDD es en sí una BD y está
convenido que vaya a trabajar con otras BD para formar el sistema distribuido.

Un SGBDD es el sistema que se encarga de manejar todas las BDD haciendo


que esta distribución de los datos sea totalmente transparente para el usuario. Cada vez
están surgiendo más tipos de bases de datos como por ejemplo las bases de datos
móviles o las bases de datos conectadas intermitentemente, pero ninguno de estos tipos
cumple nuestra definición de BDD.

Según los diferentes tipos de arquitecturas multiprocesador, se diferencian dos


arquitecturas diferentes:

a) Arquitectura de memoria compartida (fuertemente acoplada): que


consiste en múltiples procesadores que comparten almacenamiento secundario (HD) y
también comparten la memoria principal.

-2-
Bases de datos distribuidas

b) Arquitectura de disco compartido (acoplada vagamente): en este


tipo, múltiples procesadores comparten el almacenamiento secundario, pero no
comparten la memoria principal.
Ambas tecnologías permiten la compartición de información entre procesadores
sin la necesidad de ninguna red de comunicaciones. Los sistemas de gestión que utilizan
alguna de las dos arquitecturas anteriores se les conocen como sistemas de gestión de
bases de datos paralelas en vez de SGBDD, ya que utilizan procesadores paralelos. El
otro tipo de arquitectura de multiprocesadores es la arquitectura con nada compartido.

Sistema de computación 1 Sistema de computación 2

CPU B CPU B
D D
MEMORIA MEMORIA

CONMUTADOR

Sistema de computación n

CPU B
D
MEMORIA

Fig 1. Arquitectura con nada compartido

En esta arquitectura cada procesador tiene su propia memoria física y su propio


disco, compartiendo información a través de redes de comunicación de alta velocidad
como buses o switches. Aunque esta última arquitectura se asemeja a un entorno de
computación de bases de datos distribuidas, su modo de operación en muy diferente ya
que en la arquitectura con nada compartido existe una simetría y homogeneidad en los
nodos, mientras que en los entornos de bases de datos distribuidas es muy común tener
diferente hardware y sistema operativo en cada uno de los nodos.

-3-
Bases de datos distribuidas

BD Central BD2
1 (madrid)

Zaragoza Logroño
Red de
comunicacione
s

Barcelona
San
Sebastián

Fig 2. Arquitectura con BD centralizada

BD1 Logroño BD2

San
Sebastián
Red de
Zaragoza comunicaciones

DB5
Madrid

Barcelona
DB3

DB4

Fig 3. Arquitectura verdadera de BDD

Las BDD tienen que cumplir una serie de reglas, en concreto 12 reglas que son
las siguientes:
a) Autonomía local: Los sitios de un sistema distribuido deben ser
autónomos.

-4-
Bases de datos distribuidas

b) No dependencia de un sitio central: La autonomía local implica que


todos los sitios deben tratarse igual.

c) Operación continua: En un sistema distribuido, lo mismo que en uno


no distribuido, idealmente nunca debería haber necesidad de apagar a propósito el
sistema, es decir, el sistema nunca debería necesitar apagarse para que se pueda realizar
alguna función como añadirse un nuevo sitio o instalar una versión mejorada del DBMS
en un sitio ya existente.

d) Independencia con respecto a la localización: La idea básica de la


independencia con respecto a la localización (también conocida como transparencia de
localización) es simple: no debe ser necesario que los usuarios sepan dónde están
almacenados físicamente los datos, sino que más bien deben poder comportarse - al
menos desde un punto de vista lógico - como si todos los datos estuvieran almacenados
en su propio sitio local.

e) Independencia con respecto a la fragmentación: Un sistema maneja


fragmentación de los datos si es posible dividir una relación en partes o "fragmentos"
para propósitos de almacenamiento físico. La fragmentación es deseable por razones de
desempeño: los datos pueden almacenarse en la localidad donde se utilizan con mayor
frecuencia, de manera que la mayor parte de las operaciones sean sólo locales y se
reduzca al tráfico en la red.
f) Independencia de réplica: Un sistema maneja réplica de datos si una
relación dada (ó en términos más generales, un fragmento dado en una relación) se
puede representar en el nivel físico mediante varias copias réplicas, en muchos sitios
distintos.

g) Procesamiento distribuido de consultas: Debe ser capaz realizar


consultas distribuidas, así como realizar una correcta optimización de estas para que no
supongan un gasto excesivamente alto.

h) Manejo distribuido de transacciones: El manejo de transacciones


tiene dos aspectos principales, el control de recuperación y el control de concurrencia,
cada uno de los cuales requiere un tratamiento más amplio en el ambiente distribuido.

i) Independencia con respecto al equipo.

j) Independencia con respecto al sistema operativo.

k) Independencia con respecto a la red: Si el sistema ha de poder


manejar múltiples sitios diferentes, con equipo distinto y diferentes sistemas operativos,
resulta obvia la conveniencia de poder manejar también varias redes de comunicación
distintas.

l) Independencia con respecto al DBMS: Se requiere que los DBMS en


los diferentes sitios manejen todos la misma interfaz, pero no necesitan ser por fuerza
copias del mismo sistema.

-5-
Bases de datos distribuidas

2.- Ventajas de las bases de datos distribuidas.

Algunas de las ventajas que nos pueden incitar al uso de las bases de datos
distribuidas son:

a) Gestión de datos distribuidos con diferentes niveles de transparencia: Un


SGBD debe ofrecer transparencia de distribución, es decir, que debería poder ocultar el
lugar de almacenamiento físico de los datos de la BD. Los diferentes tipos de
transparencia que se ofrecen son:

1.- Transparencia de red o de distribución: Libera al usuario de los


detalles operacionales de la red. Se podría dividir en transparencia de localización (la
instrucción usada es independiente de la localización del dato y de la localización del
sistema desde que se ejecutó la instrucción) y transparencia de nombres (una vez
especificado un nombre, a los objetos con ese nombre se puede acceder de forma no
ambigua y sin ninguna especificación adicional.

2.- Transparencia de réplica: Puede haber casos en los que nos interese
realizar copias de información en varios sitios diferentes para mejorar la disponibilidad,
rendimiento y fiabilidad. La transparencia de réplica permite a los usuarios obviar o
desconocer la existencia de las copias de seguridad.

3.- Transparencia de fragmentación: Se puede realizar fragmentación


horizontal (distribuye una relación en un conjunto de tuplas) y fragmentación vertical
(distribuye una relación en subrelaciones, cada una con un conjunto de columnas de la
original). Al realizar una consulta sobre relaciones fragmentadas hay que subdividir la
consulta en varias. La transparencia de fragmentación consiste en hacer ocultar este
proceso al usuario.

b) Incremento de la fiabilidad y disponibilidad: La fiabilidad se define como


la probabilidad de que un sistema no este caído en un instante de tiempo determinado.
La disponibilidad se define como la probabilidad de que un sistema este disponible
continuamente durante un intervalo de tiempo. En un sistema distribuido, si algún
equipo falla solo queda inaccesible la información de una parte del sistema mientras que
el resto de él sigue perfectamente funcional ya que la información no está centralizada
en un sitio específico. Esta cualidad mejora los parámetros de fiabilidad y
disponibilidad.

c) Mejora del rendimiento: Un SGBDD fragmenta la información de forma


que los datos queden almacenados lo más cerca posible de donde más veces van a ser
utilizados. La localización de los datos reduce el uso de CPU y de los servicios de E/S y
reduce el retraso producido por el acceso a redes de banda ancha. En cada sitio de la
BDD se tiene una base de datos más pequeña, gracias a lo cual el rendimiento al realizar
operaciones sobre datos de nuestro sitio se ve aumentado ya que no tiene que trabajar
con ingentes cantidades de información. Además de lo anterior, cada sitio tiene menos
transacciones comparado con un sitio que tenga una BD centralizada.

-6-
Bases de datos distribuidas

d) Expansión más sencilla: En un sistema distribuido la expansión del sistema


bien por aumento de datos, aumento de tamaño de la BD o la adición de más
procesadores es mucho mas sencilla que en otro tipo de sistemas de BD.

-7-
Bases de datos distribuidas

3.- Desventajas de las bases de datos distribuidas.

Las BDD también tienen ciertas desventajas o factores negativos frente a las BD
habituales:

a) Procesamiento de Consultas: El problema más grande es que las


redes de comunicación (las de larga distancia en especial) son lentas. El objetivo es
reducir al mínimo el tráfico en la red y esto implica que el proceso mismo de
optimización de consultas debe ser distribuido, además del proceso de ejecución de las
consultas. Es decir un proceso representativo consistirá en un paso de optimización
global, seguido de pasos de optimización local en cada unos de los sitios afectados.

b) Administración del catálogo: En un sistema distribuido, el catálogo


del sistema incluirá no solo la información usual acerca de las relaciones, índices,
usuarios, sino también toda la información de control necesaria para que el sistema
pueda ofrecer la independencia deseada con respecto a la localización, la fragmentación
y la réplica.

c) Propagación de Actualizaciones: El problema básico con la réplica


de datos, es la necesidad de propagar cualquier modificación de un objeto lógico dado a
todas las copias almacenadas de ese objeto. Un problema que surge es que algún sitio
donde se mantiene una copia del objeto puede no estar disponible, y fracasaría la
modificación si cualquiera de las copias no esta disponible.

d) Recuperación: Basado en el protocolo de compromiso de dos fases.


El compromiso de dos fases es obligatorio en cualquier ambiente en el cual una sola
transacción puede interactuar con varios manejadores de recursos autónomos, pero tiene
especial importancia en un sistema distribuido porque los manejadores de recursos en
cuestión (o sea los DBMS locales) operan en sitios distintos y por tanto son muy
autónomos. En particular, son vulnerables a fallos independientes.

e) Concurrencia: Este concepto tiene que ver con la definición de un


agente. El manejo de transacciones tiene dos aspectos principales, el control de
recuperación y el control de concurrencia. En un sistema distribuido, una sola
transacción puede implicar la ejecución de código en varios sitios (puede implicar
actualizaciones en varios sitios), entonces se dice que una transacción esta compuesta
por varios agentes, donde un agente es el proceso ejecutado en nombre de una
transacción dada en determinado sitio. Y el sistema necesita saber cuando dos agentes
son parte de la misma transacción.

-8-
Bases de datos distribuidas

4.- Funciones adicionales de la BDD

El sistema de gestión de BDD es difícil de diseñar para que pueda cumplir todas
las ventajas enumeradas anteriormente. Un SGBDD además de las funciones que realiza
un SGBD centralizado, debe realizar un conjunto de funciones:

a) Mantenimiento de la pista de los datos: Debe seguir la pista de la


distribución de los datos, la fragmentación y la réplica expandiendo el catálogo del
SGBDD.

b) Procesamiento de consultas distribuidas: Debe poder transmitir las


consultas y los datos a través de varios sitios utilizando las redes de comunicaciones.

c) Gestión de transacciones distribuidas: Debe poder idear estrategias para


realizar consultas y transacciones que acceden a los datos desde más de un sitio y de
sincronizar el acceso a datos distribuidos y mantener la integridad sobre toda la base de
datos.

d) Gestión de datos replicados: Debe tener la capacidad de decisión de a qué


datos replicados acceder y si cambia alguno debe seguir manteniendo la consistencia
entre todos los datos replicados en la BDD.

e) Recuperación de bases de datos distribuidas: Tiene que tener la capacidad


de recuperarse de la caída de algún sitio individual y de reaccionar frente a otros fallos
como por ejemplo un fallo en el enlace de comunicación.

f) Seguridad: Debe poseer unos privilegios de acceso a la base de datos para


los usuarios y asegurar la transmisión segura de información a través de las redes.

g) Gestión del catálogo distribuido: El catálogo contiene los metadatos de la


BD. El catálogo debe ser global para toda la BD o bien ser individual para cada sitio (es
cosa de diseño), pero siempre tiene que ser consistente.

Como vemos, un SGBDD tiene que realizar muchas y complejas operaciones


que un SGBD centralizado no debe realizar. Para que un SGBDD sea “bueno” tiene que
cumplir todo lo anterior para lo cual se requiere de un gran diseño y de un conocimiento
muy alto de redes, ya que dependiendo de esto nuestras transacciones y consultas
pueden ser más rápidas o lentas.

-9-
Bases de datos distribuidas

5.- Fragmentación de datos

La fragmentación de la información consiste en la división de la información de


la base de datos en partes más pequeñas para poderlas repartir entre los diferentes nodos
que conforman nuestra BDD. La labor de decisión de qué partes van a que sitios es muy
importante y variará el rendimiento global de nuestra BDD. En una BD relacional se
puede dividir la información de varias formas diferentes. La forma mas sencilla es la
división por relaciones, donde cada relación va a un sitio de nuestro sistema distribuido.
Otra forma más compleja de división de la información es la conocida como
fragmentación horizontal, esta división consiste en la separación de ciertas tuplas de una
relación. Un motivo para realizar lo anterior puede ser por ejemplo en la facultad, cada
departamento puede tener un BD y sólo va a realizar consultas sobre el personal del
propio departamento, entonces lo más sencillo es dividir la base de datos por
departamentos para que cada uno tenga solo la información que vaya a utilizar.

Con la breve introducción anterior ahora vamos a explicar los diferentes tipos
que fragmentación que puede haber:

a) Fragmentación horizontal: La fragmentación horizontal, como ya hemos


visto, consiste en la subdivisión de las tuplas que forman una relación. Esta subdivisión
se realiza de acuerdo a ciertos atributos de la relación (normalmente solo 1). De esta
forma podemos dividir la relación de una forma lógica, según el significado que tenga
para nosotros el atributo que hemos usado para la subdivisión. Una vez realizados los
diferentes grupos, cada uno va al nodo que le hayamos asignado en el diseño.
Una variante de este tipo de fragmentación es la fragmentación horizontal derivada, que
consiste en aprovechar las claves extranjeras que relacionan las diferentes tablas. De
esta forma si realizamos la división respecto a un atributo que sea clave, el resto de
relaciones que la tengan como clave extranjera también se verán fragmentadas de la
misma forma.
La fragmentación horizontal completa es aquella en la que la suma de todas la tuplas
que hemos separado nos da la relación original. Además de fragmentación completa
puede ser disjunta si no hay tuplas repetidas entre los diferentes grupos de tuplas que
hemos fragmentado.

b) Fragmentación vertical: La fragmentación vertical consiste en la


subdivisión de la relación por atributos. Puede ser que un sitio de nuestra BDD no
necesite todos los atributos que define una relación, así que la solución es asignar a un
sitio solo los atributos que vaya a utilizar, pero al contrario que en la fragmentación
horizontal, aquí se mantienen todas las tuplas de la relación.
Al dividir la relación por atributos, puede surgir el problema de que no podamos volver
a general la relación original ya que en los distintos conjuntos de atributos que hemos
formado para cada sitio no compartían ningún atributo común que les pudiera
relacionar. La solución para ese problema se basa en redundar el atributo clave entre los
diferentes conjuntos de atributos que hemos formado, de esta forma podremos hacer un
join para volver a generar la relación original.
La fragmentación vertical completa es aquella que si juntamos todos los atributos de
todos los conjuntos generados en la fragmentación (menos el atributo clave que se
repite), nos da como resultado todos los atributos de la relación original.

- 10 -
Bases de datos distribuidas

c) Fragmentación mixta: La fragmentación mixta es una mezcla de los dos


tipos de fragmentación explicados anteriormente. Se basa en dividir una relación en
tuplas por medio de algún atributo y a su vez recoger sólo aquellos atributos que nos
interesen.

El esquema de fragmentación es la definición de un conjunto de fragmentos que


incluye todos los atributos y tuplas de la base de datos; y cumple la condición de que a
partir de esa información se puede reconstruir toda la información de la base de datos.

El esquema de asignación describe la asignación de qué fragmentos de la base de


datos van a cada sitio de nuestro SGBDD. Si hay un fragmento que está en más de un
sitio a la ver, se dice que es un fragmento replicado.

- 11 -
Bases de datos distribuidas

6.- Replicación y asignación de los datos

La replicación es un método eficaz para mejorar la disponibilidad de los datos de


nuestra BDD. El caso más extremo de la replicación es la replicación total de la BD que
consiste en tener una copia completa de la BD en cada uno de los sitios de nuestro
SBDD. Gracias a nuestra BD distribuida totalmente replicada conseguimos un buen
rendimiento en todo tipo de consultas, ya que para cualquiera tenemos todo la
información en nuestro nodo local. La desventaja es que si se efectúa algún cambio de
información en la base de datos, habría que aplicar la modificación en todas las réplicas
de todos los nodos, provocando así un congestionamiento y ralentización por culpa de
una operación que, de no haberlo hecho así, no nos hubiera generado tanta carga sobre
el sistema.

El extremo opuesto a la replicación total es la no replicación o asignación no


redundante, que consiste en no realizar ninguna copia redundante en ningún nodo de la
BDD.

Entre los dos sistemas anteriores hay un extenso abanico de replicación: puede
haber varias copias de un fragmento en un sitio, varios o como más convenga según el
dominio en el que hagamos el SBDD. La forma de cómo se van a replicar los datos se
conoce como esquema de replicación y al proceso de asignación de fragmentos a cada
uno de los nodos, se le conoce como distribución de los datos (o asignación de los
datos).

- 12 -
Bases de datos distribuidas

7.- Tipos de sistemas de bases de datos distribuidas

Ahora vamos a diferenciar entre los diferentes tipos de SGBDD y los diferentes
factores y criterios que los diferencian. Un factor a tener en cuenta es el grado de
homogeneidad. Cuando los servidores utilizan el mismo software y los clientes también,
se dice que estamos hablando de un sistema homogéneo y en caso contrario hablamos
de un sistema heterogéneo. Otro factor a tener en cuenta es la autonomía local. Si el
sitio local no puede funcionar como un SGBD autónomo se dice que el sistema no tiene
autonomía local. Si se permite a las transacciones locales acceso directo a un servidor,
el sistema tendrá cierta autonomía local.

En los extremos de la gama de autonomía hay dos vertientes. La primera es la


que el sistema sólo posee un esquema conceptual y todo acceso al sistema se hace a
través de un sitio que es parte del SGBDD, este tipo de sistemas no tienen autonomía
local. La segunda vertiente son los denominados SGBDD federados. Este tipo de
SGBDD son los que cada servidor es un SGBD centralizado, independiente y autónomo
(autonomía local).

A continuación vamos a ver las características de los sistemas de gestión de


bases de datos federados.

a) Diferencias en modelos de datos: las bases de datos distribuidas


pueden estar formadas por multitud de modelos de datos diferentes (en red, relacional,
jerárquico, de objetos, etc…). Por culpa de ese detalle los SGBDD requieren de un
mecanismo de procesamiento de consultas inteligente que pueda relacionar información
basada en metadatos.

b) Diferencias en restricciones: el esquema global del SGBDD tiene


que ser capaz de enfrentarse a posibles conflictos producidos por diferencias entre las
restricciones de los diferentes modelos que conforman la BDD.

c) Diferencias en los lenguajes de consulta: Hay que ser capaz de


controlar los diferentes lenguajes de consulta que poseen los SGBD. Aunque sea un
mismo modelo de datos, pueden tener lenguajes de consulta diferentes, tipos de datos
diferentes, operadores de comparación diferentes, etc…

La heterogeneidad semántica se da cuando hay diferencias en el significado,


interpretación y en el uso de ciertos datos. Este es uno de los problemas más grandes en
el diseño de esquemas globales de bases de datos heterogéneas.

La autonomía de diseño se refiere a la libertad de escoger los siguientes


parámetros de diseño:
a) El universo de discurso desde el que se representan los datos: es
cuando las relaciones de dos o más bases de datos pueden tener tablas con el mismo
nombre y estas tener información común o totalmente diferente.
b) Representación y nombres: cada base de datos local podría tener una
forma de representación, unos nombres o una estructura de datos diferente.
c) Entendimiento, significado e interpretación subjetiva de los datos:
es la principal contribución a la heterogeneidad semántica.

- 13 -
Bases de datos distribuidas

d) Restricciones de política y transacción: tratan del criterio de


seriabilidad, compensación de transacciones y otras políticas de transacciones.
e) Derivación de resúmenes: la agregación, resumen y otras
características de procesamiento de datos y operaciones soportadas por el sistema.

La autonomía de comunicación se refiere a la habilidad de un sistema


componente de decidir si quiere comunicarse con otro sistema componente o no. La
autonomía de ejecución es la habilidad de poder ejecutar operaciones sin la intromisión
de otras operaciones de sistemas componentes externos, y también la capacidad de
decidir el orden de ejecución de las operaciones que tiene que ejecutar. La autonomía de
asociación es la capacidad de un sistema componente de decidir si quiere compartir su
funcionalidad y recursos con otros sistemas.

- 14 -
Bases de datos distribuidas

8.- Procesamientos de consultas en bases de datos distribuidas

8.1 Costos de la transferencia de datos en el procesamiento de consultas


distribuidas

Además de los mecanismos, para optimizar las consultas, propios de los sistemas
de bases de datos centralizadas, un SGBDD tiene que tener en cuenta otros factores a la
hora de optimizar. El factor más relevante a tener en cuenta es el tiempo de transmisión
de la información a través de la red. Este factor puede no ser muy importante en redes
de alta velocidad, pero llega a tener un aspecto importante en otro tipo de redes de
menores prestaciones. Por este motivo los SGBDD tienden a minimizar la cantidad de
transferencias de datos a través de la red, eligiendo estrategias de ejecución de consultas
distribuidas.

Los SGBD son capaces de escoger la mejor forma de ejecutar la consulta para
transferir el menor número de información posible a través de la red. Una instrucción
que suele dar buen resultado para realizar las consultas es la semirreunión, que
explicaremos mas adelante.

8.2 Consultas distribuidas por semirreunión

La idea de la semirreunión se basa en la idea de reducir lo máximo que se pueda


el número de tuplas de una relación antes de transferirla a otro sitio de la red. La idea es
enviar la columna de reunión de la relación R al sitio donde se encuentre la otra relación
S; esta columna se reúne entonces con S. Después, los atributos de reunión, junto con
los atributos requeridos en el resultado, se extraen por proyección y se devuelven al sitio
original donde se reúnen con R. Así pues, solo se transfiere la columna de reunión de R
en una dirección, y un subconjunto de S que no contenga muchas tuplas o atributos que
no intervengan en el resultado se transfiere en la otra dirección. Este método da buen
rendimiento si una pequeña fracción de las tuplas de S participa en la reunión.

8.3 Descomposición de actualizaciones y de consultas

En un SGBDD sin transparencia de distribución, un usuario que quiera hacer una


consulta tiene que especificar explícitamente el lugar de la base de datos del que quiere
extraer el fragmento de información, ya que puede haber varios sitios que tengan
información referente a la de la consulta que ha hecho el usuario. Si además el sistema
no tiene transparencia de replicación el usuario se tendrá que encargar también de
mantener la consistencia entre todos los datos replicados en la BDD.

Por el contrario un SGBDD con transparencia de distribución, de fragmentación


y de replicación completa, permitirá al usuario la realización de una consulta como si el
sistema estuviera centralizado. Para realizar esto, un modulo de descomposición de
consultas deberá dividir o descomponer la consulta en subconsultas que se puedan
ejecutar en sitio individuales. Además tiene que ser capaz de combinar toda la
información proveniente de las diferentes subconsultas generadas. Para realizar las
consultas de forma eficiente el SGBDD consulta toda la información de fragmentación,
replicación y distribución almacenada en el catálogo.

- 15 -
Bases de datos distribuidas

9.- Control de concurrencia y recuperación de BDD

Surgen multitud de problemas además de los que ya tiene un SGBD:


a) Manejar múltiples copias de los elementos de datos: el método de
control de concurrencia se ve obligado a mantener la consistencia de todas las copias de
la información.
b) Fallo de sitios individuales: el SGBDD debe seguir operando aunque
un nodo falle. Cuando un sitio falla y se recupera, su base de datos se tiene que poner al
día con respecto al resto de BD del sistema.
c) Fallo de enlaces de comunicación: Tiene que ser capaz de manejar
este fallo. En el caso más grave la red se puede particionar y se podrán comunicar los
sistemas que estén en la misma parte.
d) Confirmación distribuida: puede haber problemas para confirmar
una transacción que esta teniendo acceso a bases de datos almacenadas en múltiples
sitios si algunos de éstos fallan durante el proceso de confirmación.
e) Bloqueo mortal distribuido: Pueden ocurrir bloqueos mortales entre
diferentes sitios, lo que lleva a un refinamiento de las técnicas de manejo de bloqueos
mortales.

9.1 Control de concurrencia basado en una copia distinguida de un elemento.

En BDD se usan técnicas de control de concurrencia basadas en las técnicas


utilizadas en las bases de datos centralizadas. La idea en la que se basa este control de
concurrencia es la de realizar una copia determinada de cada elemento de datos como
copia distinguida. A partir de esa idea, los bloqueos y desbloqueos sobre ese elemento
se envían al sitio que contiene la copia. Hay diversos métodos que utilizan esta idea de
la copia distinguida, entre los métodos que podemos ver están:

a) Técnica de sitio primario: Se designa un solo sitio como sitio coordinador


para todos los elementos de la base de datos. Este método sigue el enfoque de bloqueo
centralizado. La ventaja de esta técnica es que al parecerse al centralizado es fácil de
implementar, pero como desventaja importante resulta que se pueden causar cuellos de
botella del sistema debido a una posible sobrecarga producida por multitud de
solicitudes sobre un mismo sitio. Otra desventaja es producida cuando se produce una
caída en el sitio que almacena la información de bloqueos, produciendo una
disminución de la fiabilidad y disponibilidad del sistema.

b) Sitio primario con sitio de respaldo: Con este sistema eliminamos la


segunda desventaja de la técnica anterior ya que generamos un sitio de respaldo que
almacena la misma información que el sitio principal. Gracias a este método si se
produce una caída en el sitio primario, el sitio de respaldo se colocaría en su lugar
realizando todas sus obligaciones. La desventaja de este sistema es que las peticiones de
bloqueos se ralentizan debido a que la información se tiene que mantener por duplicado.

c) Técnica de copia primaria: Con esta técnica se intenta distribuir la


coordinación de los bloqueos entre varios sitios que almacenarán información relativa a
diferentes elementos de datos. Gracias a esta técnica se saturan menos los sitios y
además la caída de uno solo influye en las peticiones de bloqueo sobre los elementos

- 16 -
Bases de datos distribuidas

que almacene el sitio. Esta técnica se puede solapar también con la técnica de sitios de
respaldo para así mejorar la fiabilidad y la disponibilidad.

Elección de un nuevo sitio coordinador en caso de fallo: Cuando se produce la


caída de un sitio coordinador de bloqueos el resto de sitios tiene que ser capaz de
escoger otro sitio para realizar dicha misión. Si el sistema no utiliza la técnica de sitios
de respaldo una caída del sitio coordinador provocaría un grave decremento del
rendimiento ya que habría que anular todas las transacciones que se estuvieran
realizando, escoger un sitio coordinador y volver a recoger la información de todas las
transacciones. Si por el contrario si que se dispusiera de un sitio de respaldo el
rendimiento no disminuiría tanto, ya que solo se pararían las transacciones durante el
proceso de elección del sitio coordinador y de la copia de la información contenida en el
sitio de respaldo.

9.2 Control de concurrencia distribuida basada en votación.

En este sistema no se posee una copia distinguida como en los casos anteriores.
Con este sistema cada solicitud de bloqueo se envía a todos los sitios que incluyan una
copia del elemento de datos. Cada copia mantiene su propio bloqueo y puede conceder
o rechazar la solicitud. Si la mayoría de las copias otorgan el bloqueo a la transacción
que lo solicita, esta poseerá el bloqueo e informará de su situación al resto de sitios. Si
una transacción no recibe la mayoría de los votos de concesión, cancelará su solicitud e
informará a todos los sitios.

- 17 -
Bases de datos distribuidas

10.- Recuperación distribuida

Con las BDD pueden surgir multitud de problemas como por ejemplo saber si
uno de los sitios está caído, ya que puede estar caído, puede haber fallado la
comunicación de subida o puede haber fallado la comunicación de bajada. Este
problema es difícil de determinar y causa mucho tráfico entre los sitios para poder
adivinar el problema al que se enfrenta.

La confirmación distribuida es otro problema que surge con las BDD. Cuando
una transacción está actualizando datos en varios sitios, no puede confirmarse hasta
asegurarse de que el efecto de la transacción no se puede perder en ningún sitio. Esto
significa que cada sitio debe haber almacenado primero permanentemente los efectos
locales de la transacción en el diario local en el disco del sitio.

11.- Relación entre las BDD y la arquitectura cliente-servidor

En un SGBDD típico, el software se divide en tres módulos:

a) El servidor: es el responsable de la gestión de los datos locales en un


sitio, al igual que el software del SGBD centralizado.

b) El cliente: Es el responsable de la mayoría de las funciones de


distribución y procesa todas las peticiones que requieren acceso a más
de un sitio. También maneja todas las interfaces de usuarios.

c) El software de comunicación: Es el que proporciona las primitivas


de comunicación que utiliza el cliente para transmitir instrucciones y
datos entre los sitios necesarios. Esta no es una parte estrictamente
del SGBDD, pero proporciona servicios y primitivas de
comunicación esenciales.

- 18 -
Bases de datos distribuidas

12.- Oracle como BDD

Oracle divide sus módulos software en dos partes, el cliente (o front-end) y el


servidor (o back-end). El cliente simplemente realiza petición, procesamiento y
presentación de los datos. La parte servidor se encarga de ejecutar las sentencias SQL
que genera el cliente, las procesa y devuelve los resultados. La arquitectura cliente-
servidor proporciona transparencias de localización.

Oracle utiliza el protocolo de confirmación en dos fases para gestionar las


transacciones distribuidas concurrentes. La sentencia commit dispara el mecanismo de
confirmación en dos fases, mientras que el proceso background RECO resuelve el
resultado de las transacciones distribuidas que se interrumpen con un commit. El
proceso RECO de cada servidor local confirma o deshace cualquier transacción
distribuida “en duda” consistentemente en todos los nodos involucrados. Para fallos de
larga duración Oracle permite al ABD confirmar o deshacer manualmente cualquier
transacción en duda.

En la arquitectura de oracle cada nodo puede ser tanto un cliente, como un


servidor, como ambas cosas a la vez.

Todas las BDD de oracle utilizan el software de red Oracle Net8 para
comunicarse entre bases de datos. Net8 permite a las BD comunicarse a través de redes
para soportar transacciones distribuidas y remotas. Las direcciones de las BD dentro de
un sistema distribuido son jerárquicas, por ej. ventas.us.americas, la cual sería la BD
ventas bajo el domino de red us a su vez bajo el dominio americas.

Oracle ofrece dos métodos de replicación:

a) Replicación básica: Sólo realiza réplicas para acceso como lectura.


Para modificaciones se debe acceder directamente al sitio primario.
b) Replicación avanzada: Permite réplicas tanto de lectura como de
escritura.

Gracias a Oracle Open Gateways se proporciona acceso a BD que no sean


Oracle formando así redes heterogéneas.

- 19 -

También podría gustarte