Escolar Documentos
Profissional Documentos
Cultura Documentos
NDICE
1. 2. 3. 4. 5.
Introduccin. Almacenamiento distribuido de datos. Transparencia de la red. Procesamiento distribuido de consultas. Transacciones distribuidas.
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.
1. Introduccin
z
RED
Alumnos
1. Introduccin
z z
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
1. Introduccin
z
z
1. Introduccin
z
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
1. Introduccin
z
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
Rplica:
El sistema conserva varias copias o rplicas idnticas de
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.
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.
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
Fragmentacin de datos
Fragmentacin horizontal: Ejemplo.
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
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.
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
Escuela,Nmero_alumnos(R)
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
DNI,Escuela,Escuela,Nombre,Beca(E)
Nota ingreso 5.6 7.2 5.0 7.5 Beca No Si No Si
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.
3. Transparencia de la red
z
3. Transparencia de la red
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.
3. Transparencia de la red
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
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
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
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
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.
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
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.
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
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
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.
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
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.
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
Recuperacin
z
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.
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
Recuperacin
z
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.
5. Transacciones distribuidas
z
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