Você está na página 1de 35

Diseo y Optimizacin de Bases de Datos:

Bases de Datos Distribuidas

Departamento de O.E.I. - U.P.M.

Diseo y Optimizacin de Bases de Datos

NDICE
1. 2. 3. 4. 5.

Introduccin. Almacenamiento distribuido de datos. Transparencia de la red. Procesamiento distribuido de consultas. Transacciones distribuidas.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 2

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z

Visin general
Los datos se encuentran en diferentes mquinas,

generalmente situados en localizaciones geogrficas diferentes (homogneas o no). Nodo o emplazamiento: Cada uno de los ordenadores que integran el sistema de Bases de Datos distribuido. Tipos de transacciones:
z z

Locales: cuando se accede a los datos del nico emplazamiento donde se inici la transaccin. Globales: Cuando se accede a datos de emplazamientos distintos al nodo donde se inici la transaccin.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 3

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z

Visin general. Ejemplo de BD distribuida:


Nodo NodoEUIT EUIT

Nodo NodoEUI EUI Alumnos

RED

Alumnos

Comunicacin a travs de la red

Nodo NodoRectorado Rectorado Escuelas

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 4

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z z

Visin general. Ejemplo de BD distribuida: Nodos de las Escuelas:


DNI Escuela Nombre Nota ingreso Beca

Nodo del Rectorado:


Escuela Situacin Nmero alumnos

z z

Nuevo alumno en la secretara del centro: transaccin local. Nuevo alumno en el rectorado: transaccin global
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 5

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z
z

Visin general. Ejemplo de BD distribuida:


Este sistema ser distribuido si cumple que: Los distintos nodos estn informados sobre los dems. Aunque algunas tablas estn almacenadas slo en algunos nodos, stos comparten un esquema global comn. Cada nodo proporciona un entorno de ejecucin de transacciones, tanto local, como global. Generalmente, los nodos ejecutan el mismo software de gestin distribuida. En caso contrario se dice que el sistema es heterogneo.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 6

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z

Ventajas de las Bases de Datos Distribuidas


Compartimiento de datos. Los usuarios de un nodo son

capaces de acceder a los datos de otro nodo. Por ejemplo, desde el Rectorado, se puede consultar los datos de los alumnos de Informtica. Autonoma. Cada nodo tiene cierto grado de control sobre sus datos, en un sistema centralizado, hay un administrador del sistema responsable de los datos a nivel global. Cada administrador local puede tener un nivel de autonoma local diferente. Disponibilidad. Si en un sistema distribuido falla un nodo, los nodos restantes pueden seguir funcionando. Si se duplican los datos en varios nodos, la transaccin que necesite un determinado dato puede encontrarlo en cualquiera de los diferentes nodos.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 7

Diseo y Optimizacin de Bases de Datos

1. Introduccin
z

Inconvenientes de la Bases de Datos Distribuidas


Coste de desarrollo del software. La complejidad aadida

que es necesaria para mantener la coordinacin entre nodos hace que el desarrollo de software sea ms costoso. Mayor probabilidad de errores. Como los nodos que constituyen el sistema funcionan en paralelo, es ms difcil asegurar el funcionamiento correcto de los algoritmos, as como de los procedimientos de recuperacin de fallos del sistema. Mayor sobrecarga de procesamiento. El intercambio de mensajes y ejecucin de algoritmos para el mantenimiento de la coordinacin entre nodos supone una sobrecarga que no se da en los sistemas centralizados.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 8

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Rplica:
El sistema conserva varias copias o rplicas idnticas de

una tabla. Cada rplica se almacena en un nodo diferente. Ventajas:


z

Disponibilidad: el sistema sigue funcionando an en caso de cada de uno de los nodos. Aumento del paralelismo: Varios nodos pueden realizar consultas en paralelo sobre la misma tabla. Cuantas ms rplicas existan de la tabla, mayor ser la posibilidad de que el dato buscado se encuentre en el nodo desde el que se realiza la consulta, minimizando con ello el trfico de datos entre nodos.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 9

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Rplica:
Inconveniente: z Aumento de la sobrecarga en las actualizaciones: El sistema debe asegurar que todas las rplicas de la tabla sean consistentes. Cuando se realiza una actualizacin sobre una de las rplicas, los cambios deben propagarse a todas las rplicas de dicha tabla a lo largo del sistema distribuido.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 10

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin horizontal: z Una tabla T se divide en subconjuntos, T , T , 1 2 ...Tn. Los fragmentos se definen a travs de una operacin de seleccin y su reconstruccin se realizar con una operacin de unin de los fragmentos componentes. z Cada fragmento se sita en un nodo. z Pueden existir fragmentos no disjuntos: combinacin de fragmentacin y replicacin.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 11

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin horizontal: Ejemplo.
z

Tabla inicial de alumnos de la UPM (T)


DNI 87633483 99855743 33887293 05399075 44343234 44543324 66553234 Escuela EUI EUI EUIT EUI EUIT EUI EUIT Nombre Concha Queta Josechu Letn Oscar Romato Bill Gates Pepe Ptamo Maite Clado Ernesto Mate Nota ingreso 5.6 7.2 6.1 5.0 8.0 7.5 6.6 Beca No Si Si No No Si No

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 12

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin horizontal: Ejemplo.
Fragmento de la EUI: Escuela="EUI"(T)
DNI 87633483 99855743 05399075 44543324 Escuela EUI EUI EUI EUI Nombre Concha Queta Josechu Letn Bill Gates Maite Clado Nota ingreso 5.6 7.2 5.0 7.5 Beca No Si No Si

Fragmento de la EUIT: Escuela="EUIT"(T)


DNI 33887293 44343234 66553234 Escuela EUIT EUIT EUIT Nombre Oscar Romato Pepe Ptamo Ernesto Mate Nota ingreso 6.1 8.0 6.6 Beca Si No No

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 13

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin vertical:
z

z z

Una tabla T se divide en subconjuntos, T1, T2, ...Tn. Los fragmentos se definen a travs de una operacin de proyeccin. Cada fragmento debe incluir la clave primaria de la tabla. Su reconstruccin se realizar con una operacin de join de los fragmentos componentes. Cada fragmento se sita en un nodo. Pueden existir fragmentos no disjuntos: combinacin de fragmentacin y replicacin.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 14

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin vertical: Ejemplo
Departamento infraestructura
Escuela EUI EUIT TOPOGRAFIA ETSIT FI Nmero alumnos 3000 2800 800 2500 2100 Situacin Campus sur Campus sur Campus sur Ciudad Universitaria Campus Montegancedo

Escuela,Situacin(R)
Datos Rectorado (R)
Escuela
EUI EUIT TOPOGRAFIA ETSIT FI Situacin Campus sur Campus sur Campus sur Ciudad Universitaria Campus Montegancedo

Departamento ordenacin acadmica


Escuela EUI EUIT TOPOGRAFIA ETSIT FI Nmero alumnos 3000 2800 800 2500 2100

Escuela,Nmero_alumnos(R)

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 15

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Fragmentacin de datos
Fragmentacin Mixta: Ejemplo
DNI 87633483 99855743 05399075 44543324 Escuela EUI EUI EUI EUI Nombre Concha Queta Josechu Letn Bill Gates Maite Clado Beca No Si No Si

Secretara

Datos EUI (E)


DNI 87633483 99855743 05399075 44543324 Escuela EUI EUI EUI EUI Nombre Concha Queta Josechu Letn Bill Gates Maite Clado

DNI,Escuela,Escuela,Nombre,Beca(E)
Nota ingreso 5.6 7.2 5.0 7.5 Beca No Si No Si

Resultante Resultantede de fragmentacin fragmentacin horizontal horizontalprevia previa


Nota ingreso 5.6 7.2 5.0 7.5

DNI,Escuela,Nombre,Nota ingreso(E) Jefatura estudios


DNI 87633483 99855743 05399075 44543324 Escuela EUI EUI EUI EUI Nombre Concha Queta Josechu Letn Bill Gates Maite Clado

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 16

Diseo y Optimizacin de Bases de Datos

2. Almacenamiento distribuido de datos


z

Rplica y fragmentacin de datos


Las tcnicas de rplica y fragmentacin se

pueden aplicar sucesivamente a la misma relacin de partida. Un fragmento se puede replicar y a su vez esa rplica ser fragmentada, para luego replicar alguno de esos fragmentos.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 17

Diseo y Optimizacin de Bases de Datos

3. Transparencia de la red
z

Se apoya en los siguientes aspectos:


La denominacin de los elementos de datos. La rplica de los elementos de datos. La fragmentacin de los elementos de datos. La ubicacin de los fragmentos y las rplicas.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 18

Diseo y Optimizacin de Bases de Datos

3. Transparencia de la red
z

Denominacin de los elementos de datos


Elementos de datos: relaciones, fragmentos y

rplicas. Nombre nico para cada elemento. Denominacin centralizada de elementos


z

Servidor de nombres central en el que se registren los elementos. Servidor de nombres que direcciona los elementos. Problemas:
Cuello de botella para acceder a los nombres de los elementos. Si falla, es posible que ningn nodo siga funcionando.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 19

Diseo y Optimizacin de Bases de Datos

3. Transparencia de la red
z

Denominacin de los elementos de datos


Denominacin distribuida de fragmentos:
z

z z

Cada elemento tiene como prefijo el nodo en el que se encuentra. Se pierde transparencia de la red. Sistema de alias para recuperar la transparencia. Las tablas de conversin de alias deben estar en todos los nodos. Cada fragmento y rplica debe ser identificado de forma nica mediante sufijos. Ejemplo: EUI.ALUMNOS.f3.r2 hace referencia a la rplica 2 del fragmento 3 del elemento ALUMNOS del nodo EUI.

Existir Existiruna unatabla tablaen enel elcatlogo catlogoque quepermita permitaal alsistema sistemadeterminar determinaren enqu qu fragmentos fragmentosoorplicas rplicasestn estnlos losdatos datosque queel elusuario usuariosolicita solicitayymantendr mantendrlas las rplicas rplicasactualizadas actualizadascuando cuandose seproduzca produzcauna unasentencia sentenciaque quemodifique modifiquelos losdatos. datos.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 20

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


Se estudia el coste de las comunicaciones. z Objetivo: la reduccin de la cantidad de datos transferidos. z Optimizacin mediante operacin de semijoin.
z

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 21

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z
Nombre

Ejemplo de consulta distribuida


COD
Dir Sexo Sueldo fecha Nac. Dpto.

NODO1: EMPLEADO

Apellido

10.000 tuplas. Cada tupla tiene 100 bytes de longitud. El campo COD tiene 9 bytes de longitud. El campo Dpto tiene 4 bytes de longitud. El campo Nombre tiene 15 bytes de longitud. El campo Apellido tiene 15 bytes de longitud. Tamao de la relacin: 100 * 10.000 = 106 bytes
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 22

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Ejemplo de consulta distribuida


NombreDpto NDpto Responsable Edificio

NODO2: DEPARTAMENTO

100 tuplas. Cada tupla tiene 35 bytes de longitud. El campo NombreDpto tiene 10 bytes de longitud. El campo NDpto tiene 4 bytes de longitud. El campo Responsable tiene 9 bytes de longitud. Tamao de la relacin: 35 * 100 = 3500 bytes
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 23

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas z Ejemplos de consulta distribuida:


Por cada empleado, obtener el nombre del empleado y el

nombre del departamento al que pertenece Q1(1): Nombre,Apellido,NombreDPto(EMPLEADO*DEPARTAMENTO) La consulta se lanza desde el nodo 3 (nodo respuesta) que no tiene datos implicados en la consulta. El resultado de sta consulta constar de 10.000 tuplas. Cada tupla resultante ser de una longitud de 40 bytes. El tamao del resultado ser por tanto de 400.000 bytes. Existen tres alternativas para resolver la consulta.
(1) Query (Q): Identificador de Consulta
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 24

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Ejemplos de consulta distribuida


Primera alternativa:

Transferir, tanto la relacin EMPLEADO, como la relacin DEPARTAMENTO al nodo respuesta (nodo 3) y realizar all mismo la operacin de join. En ste caso se transfieren:
1.000.000 + 3.500 = 1.003.500 bytes.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 25

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Ejemplos de consulta distribuida


Segunda alternativa:

Transferir la relacin EMPLEADO al nodo 2, ejecutar el join en este nodo y enviar el resultado al nodo 3. Esto implicara transferir:
1.000.000 + 400.000 (resultado) = 1.400.000 bytes

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 26

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Ejemplos de consulta distribuida


Tercera alternativa:

Transferir la relacin DEPARTAMENTO al nodo 1, ejecutar el join en este nodo y enviar el resultado al nodo 3. En este caso, los bytes transferidos sern:
3.500 + 400.000 (resultado) = 403.500 bytes.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 27

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Ejemplos de consulta distribuida


Para cada departamento, obtener el nombre del departamento y el de su

director Q2: NombreDPto,Nombre,Apellido(DEPARTAMENTO * EMPLEADO) La consulta se lanza desde el nodo 3. El resultado de sta consulta constar de 100 tuplas (4.000 bytes). Opcin 1: transferimos las relaciones DEPARTAMENTO y EMPLEADO al nodo 3. Se transfieren:
3.500 + 1.000.000 = 1.003.500 bytes. Opcin 2: transferimos la relacin EMPLEADO al nodo 2 y enviamos el

resultado del join al nodo 3. Se transfieren:

1.000.000 + 4.000 = 1.004.000 bytes. Opcin 3: transferimos la relacin DEPARTAMENTO al nodo 1 y 3.500 + 4.000 = 7.500 bytes.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 28

enviamos el resultado del join al nodo 3. Se transfieren en este caso:

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas z Ejemplos de consulta distribuida


NUEVO SUPUESTO: las consultas anteriores se lanzan

desde el nodo 2.
z

Opcin 1: transferir la relacin EMPLEADO al nodo 2, realizar el join y presentar el resultado al usuario del nodo 2. De sta manera se transferirn el mismo nmero de bytes para la consulta Q1 y la Q2: 1.000.000 bytes. Opcin 2: transferir la relacin DEPARTAMENTO al nodo 1, realizar el join y enviar el resultado al nodo 2. En este caso se transfieren:
Para la consulta Q1: 3.500 de DEPARTAMENTO y 400.00 de resultado = 403.500 bytes. Para la consulta Q2: 3.500 de DEPARTAMENTO y 4.000 de resultado = 7.500 bytes.

La Lasegunda segundaopcin opcines esms msoptima: optima:origen origendel delsemijoin. semijoin.


Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 29

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Proceso distribuido de consultas utilizando semijoin


Reduccin de el nmero de tuplas antes de ser transferidas a

otro nodo. Se enva la columna con la que se va a realizar el join de una relacin R al nodo donde se encuentra la otra relacin, all se realiza el join con la otra relacin S Se envan las columnas implicadas en el resultado al nodo inicial y se vuelve a realizar el join con R. Slo se transfieren las columnas de R que intervienen en la realizacin del join en una direccin y el subconjunto de columnas de S resultantes en la otra.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 30

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Proceso distribuido de consultas utilizando semijoin Semijoin de las consultas Q1 y Q2. Paso 1.
Consulta Q1: proyeccin en DEPARTAMENTO sobre atributos que van a intervenir en la operacin de join y transferencia al nodo 1. F1: NDpto(DEPARTAMENTO).
Tamao resultante: 4 bytes del atributo NDpto por 100 tuplas de DEPARTAMENTO = 400 bytes transferidos.

Consulta Q2: F2: Responsable(DEPARTAMENTO).


Tamao resultante: 9 bytes del atributo Responsable por 100 tuplas de DEPARTAMENTO = 900 bytes transferidos.

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 31

Diseo y Optimizacin de Bases de Datos

4. Procesamiento distribuido de consultas


z

Proceso distribuido de consultas utilizando semijoin


Semijoin de las consultas Q1 y Q2:
Paso 2. Consulta Q1: realizacin del join de los tuplas transferidas en el paso anterior. Transferencia del resultado del join de nuevo al nodo 1. Se transfieren slo los atributos necesarios para realizar el join final: R1: Dpto,Nombre,Apellido(F * EMPLEADO) Tamao: (4 + 15 + 15) * 10.000 = 340.000 bytes transferidos. Consulta Q2: R2: Responsable,Nombre,Apellido(F * EMPLEADO) Tamao: (9+ 15 + 15) * 100 = 3900 bytes transferidos.

Total Totaltransferido: transferido:340.400 340.400bytes bytespara paraQ1 Q1y y4.800 4.800bytes bytespara paraQ2. Q2.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 32

Diseo y Optimizacin de Bases de Datos

Recuperacin
z

Fallo de los nodos.


Cuando un nodo falla, el sistema deber continuar

trabajando con los nodos que an funcionan. Si el nodo a recuperar es una base de datos local, se debern separar los datos entre los nodos restantes antes de volver a unir de nuevo el sistema.

Copias mltiples de fragmentos de datos.


El subsistema encargado del control de concurrencia

es el responsable de mantener la consistencia en todas las copias que se realicen y el subsistema que realiza la recuperacin es el responsable de hacer copias consistentes de los datos de los nodos que han fallado y que despus se recuperarn.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 33

Diseo y Optimizacin de Bases de Datos

Recuperacin
z

Transaccin distribuida correcta.


Se pueden producir fallos durante la ejecucin de

una transaccin correcta si se plantea el caso de que al acceder a alguno de los nodos que intervienen en la transaccin, dicho nodo falla. fallos que se produzcan en las comunicaciones entre nodos. El caso mas extremo es el que se produce cuando se divide la red. Esto puede producir la separacin de dos o ms particiones donde las particiones de cada nodo pueden comunicarse entre si pero no con particiones de otros nodos.

Fallo de las conexiones de comunicaciones.


El sistema debe ser capaz de tratar los posibles

Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 34

Diseo y Optimizacin de Bases de Datos

5. Transacciones distribuidas
z

Protocolo de compromiso en dos fases. (Two phase commit


protocol) 1. El coordinador enva una solicitud de voto (vote request) a los nodos

participantes en la ejecucin de la transaccin. 2. Cuando los participantes reciben la solicitud de voto, responden enviando al coordinador un mensaje con su voto (S o No). Si un participante vota No, la transaccin se aborta (abort). 3. El coordinador recoge los mensajes con los votos de todos los participantes. Si todos han votado S, entonces el coordinador tambin vota si y enva un mensaje commit a todos los participantes. En otro caso, el coordinador decide abandonar y enva un mensaje abort a todos los participantes que han votado afirmativamente. 4. Cada participante que ha votado s, espera del coordinador un mensaje commit o abort para terminar la transaccin de forma normal o abortarla.
Dpto. O.E.I. - U.P.M. / Bases de Datos Distribuidas: 35

Você também pode gostar