Tema 42 – Sistemas de bases de datos distribuidos

Tema 42 – Sistemas de bases de datos distribuidos

Contenido

TEMA 42. SISTEMAS DE BASE DE DATOS DISTRIBUIDOS. 1

1. INTRODUCCIÓN.. 1

2. DISTRIBUCIÓN DE LA BASE DE DATOS. 1

2.1 Réplica. 2

2.2 Fragmentación. 2

2.3 Ejemplos de distribución. 3

3. SISTEMA GESTOR DE BASE DE DATOS. 5

5. INTERCONEXIÓN DE LOS NODOS. 6

6. TRANSACCIONES DISTRIBUIDAS. 6

6. TRANSPARENCIA DE LOS DATOS. 7

7. DISPONIBILIDAD.. 7

8. AUTONOMÍA LOCAL. 7

9. CARACTERÍSTICAS DESEABLES EN UN SISTEMA DISTRIBUIDO.. 8

10. VENTAJAS DE UN SISTEMA DISTRIBUIDO.. 8

11. SISTEMAS DISTRIBUIDOS FRENTE A SISTEMAS CENTRALIZADOS. 8

1. INTRODUCCIÓN

Las primeras bases de datos eran centralizadas, (todos los datos almacenados en un gran ordenador) al que teníamos acceso.

Hoy en día la base de datos está distribuida entre varias computadoras. Mucho más barato comprar varios ordenadores pequeños que una máquina grande.

Esta conjunción de las redes de ordenadores y las bases de datos, dieron lugar a los primeros sistemas distribuidos, los cuales se usan hoy en día. (cajero automático)

Una base de datos distribuida es un conjunto de bases de datos interconectadas entre sí. La información almacenada en estas bases de datos debe estar relacionada entre sí.

2. DISTRIBUCIÓN DE LA BASE DE DATOS

El primer problema que debemos resolver es lógicamente cómo distribuir nuestra base de datos. Dada una relación “R” existen dos formas de distribuirla.

Réplica: El sistema almacena varias copias de la relación en diferentes ubicaciones.

o Disminuir los costes de comunicaciones en los diferentes nodos.

o Si cae un nodo de la red, puede seguir funcionando la base de datos.

Fragmentación: El sistema divide la relación R y almacena las distintas partes en distintas ubicaciones.

La réplica y la fragmentación suelen combinarse: podemos dividir una relación en distintos fragmentos y almacenarlos en diferentes ubicaciones.

2.1 Réplica

Consiste en almacenar copias de la relación en diferentes ubicaciones.

Va a facilitarnos las operaciones de lectura, ya que disponemos de los mismos datos en diferentes localizaciones. Aumenta la disponibilidad de la BD. Al realizar una operación de lectura compleja, pueden trabajar los diferentes nodos de forma cooperativa para acelerar el proceso de consulta

Sin embargo, nos va a complicar las operaciones de actualización, ya que cada vez que tengamos que modificar un dato, debemos realizarlo en todas las ubicaciones del mismo.

Pero para arreglar este problema se le da más peso a la copia principal que a las demás.

2.2 Fragmentación

Consiste en dividirla en varias relaciones: R1, R2,…,Rn. De manera que, a partir de estos fragmentos, podemos recomponer la relación original R. Podemos aplicar 2 estilos de fragmentación:

image

Fragmentación horizontal:

image

Fragmentación vertical:

image

Fragmentación VH: Primero le aplicamos la fragmentación horizontal y luego vertical. (Primero proyectamos y luego seleccionamos)

Fragmentación HV: Primero realizamos una división horizontal y luego vertical. (Primero seleccionamos y luego proyectamos)

Un parámetro que debemos controlar es el grado de fragmentación. Esta variable mide la cantidad de fragmentación que amos a aplicar a una tabla. Esto influirá en nuestra BD.

Grado de fragmentación 0: No hay ninguna división.

Máximo grado de fragmentación: Solo queda un único fragmento.

2.3 Ejemplos de distribución

Normalmente la fragmentación y la duplicación no se dan de forma independiente, sino que se crean esquemas que combinan ambas.

Supongamos que nuestra base de datos está dividida en 4 partes (X,Y,Z,T). Queremos informatizar un banco pequeño que tiene 4 sucursales distribuidas en 4 pueblos próximos. Cada sucursal es un nodo de la red. Por lo tanto, usamos el diseño centralizado.

Los diferentes diseños que podemos usar son:

1. Base de datos multiplicada: La base de datos global se copia en cada nodo. Un esquema de esta base de datos podría ser:

image

La ventaja es que la BD completa está en cada nodo. Son independientes entre sí para realizar consultas a la misma. Si por un problema técnico cayese un nodo, los demás podrían seguir funcionando.

La desventaja es que necesitamos más almacenamiento. Se complican las operaciones de borrado, inserción y modificación. Si tenemos que eliminar un dato de un nodo debemos hacerlo de todos. Esto generará tráfico de datos.

2. Base de datos particionada: Es el opuesto al anterior. Cada nodo va a almacenar una parte de nuestra base, sin usar replicación de datos.

image

La ventaja de esta organización es que ocupa lo mismo que la BD centralizada. Las operaciones de actualización son muy sencillas porque solo es necesario alterar la info en un único nodo.

La desventaja es que las operaciones de consulta resultan muy complicadas. Si cayera algún nodo, no podríamos acceder a parte de información de la BD. El tráfico de datos entre nodos es muy alto.

3. Base de datos con nodo principal: Cada nodo contiene una parte de la BD y un nodo contiene la BD completa.

image

La ventaja es que tenemos una BD híbrida entre una BD distribuida y centralizada.

4. Base de datos distribuida con duplicación en nodos seleccionados: Ningún nodo contiene la base de datos completa. EN cada nodo se duplica una parte de la BD.

image

En este caso si cualquier nodo, la red puede seguir funcionando.

3. SISTEMA GESTOR DE BASE DE DATOS

Ya hemos distribuido nuestra BD, ahora debemos elegir el sistema gestor de la BD. Cada nodo puede tener un sistema gestor diferente, y compartir la información con otros nodos. Podemos clasificarlos en:

­Sistema homogéneo:

o Todos los nodos usan el mismo sistema gestor de BD.

o Las interacciones entre las diferentes BDs son sencillas.

Sistema heterogéneo:

o Cada nodo puede usar un sistema gestor de base de datos distinto.

o Se tienen que realizar conversiones entre los diferentes sistemas gestores de BDs empleados.

o Consiste en una capa de SW adicional que se sitúa por encima de los gestores de BDs y se encarga de realizar las conversiones necesarias.

5. INTERCONEXIÓN DE LOS NODOS

image

6. TRANSACCIONES DISTRIBUIDAS

En una BD distribuida podemos realizar 2 tipos de transacciones:

Transacciones locales: Sólo implican al nodo desde el que estamos trabajando.

Transacciones globales: Implican como mínimo, a otro nodo, distinto del que estamos trabajando. En este caso tenemos que usar la red que interconecta a todos los nodos entre sí.

Las transacciones locales se realizan de igual manera que una base de datos centralizada. Donde aparece un problema nuevo es en las transacciones globales.

Para resolver este inconveniente, una de las soluciones más extendidas consiste en dividir el sistema gestor de transacciones en 2 partes:

image

La idea consiste en dividir las transacciones en 2 partes: aquellas que son locales, las lleva a cabo el gestor de transacciones y las transacciones globales son llevadas a cabo por los coordinadores de transacciones.

6. TRANSPARENCIA DE LOS DATOS

Es la medida en la que podemos desentendernos de la localización física de los datos. Se compone de 3 partes:

Transparencia de copia o de réplica: El usuario no es consciente de las existentes copias de los objetos del sistema.

Transparencia de ubicación: El usuario de la BD no requiere conocer la ubicación de un objeto para usarlo.

Transparencia de fragmentación: El usuario maneja como un nodo la base de datos.

Para conseguir esta transparencia uno de los métodos más empleados es el servidor de nombres.

7. DISPONIBILIDAD

Cuando se crea una BD es importante generar una alta disponibilidad (que este en uso lo máximo posible).

La disponibilidad está fuertemente relacionada con la tolerancia a fallos del sistema, su capacidad de recuperación y reconfiguración (robustez)

8. AUTONOMÍA LOCAL

Es la medida en que un nodo es independiente de los demás. Un nodo es completamente autónomo cuando no depende de ningún otro. Es necesario que todos los nodos tengan cierta autonomía para evitar que dependan completamente de otros elementos de la red.

9. CARACTERÍSTICAS DESEABLES EN UN SISTEMA DISTRIBUIDO

Algunas cualidades que nuestros sistemas distribuido debería tener:

image

image

10. VENTAJAS DE UN SISTEMA DISTRIBUIDO

-Buen rendimiento: La respuesta de las operaciones es más rápida.

– Mayor fiabilidad. Un sistema distribuido es más resistente que uno centralizado.

– Posibilidad de compartir los datos de diferentes bases de datos.

ORACLE SERVER, SDD-1…

11. SISTEMAS DISTRIBUIDOS FRENTE A SISTEMAS CENTRALIZADOS

image