2. Base de Datos en Múltiples Servidores Contenido del Curso I.II.II.III.IV.- 2.1. Diseño de Base de Datos Distribuidas 2.2. Consideraciones para Distribuir la BD 2.3. Procesamiento de Consultas Distribuidas Fundamentos de SBDDs. Bases de Datos en Múltiples Servidores Optimización de las Estrategias de Acceso Proceso de Transacciones en Bases de Datos Distribuidas 1 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 2 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II Problema de Diseño DISEÑO DISEÑO DE DE BASES BASES DE DE DATOS DATOS DISTRIBUIDAS DISTRIBUIDAS En un marco general tomar decisiones acerca de la ubicación de los datos y los programas, en los sitios de una red de computadoras, así como también posiblemente el diseño de la propia red. En los SABDDs, la ubicación de las aplicaciones supone ubicación del software de los SABDDs, y ubicación de las aplicaciones que corren sobre la base de datos. 3 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 4 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Diseño Descendente Análisis de requerimientos Diseño de la Distribución Req. del sistema (objetivos) Descendente. Principalmente en sistemas que inician de cero. Principalmente en sistemas homogeneos. Ascendente. Cuando las bases de datos ya existen en los diferentes sitios. Diseño conceptual Entrada del usuario Integración de vistas Esq. conep. global Información de acceso Diseño de vistas Definición del esquema externo Entrada del usuario Diseño de la distribución Esq. concep. local Diseño físico Esquema físico Retroalimentación Observ. y monit. Retroalimentación 5 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 6 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Problemática del Diseño de la Distribución ¿Por qué fragmentar todo? ¿Cómo fragmentar? ¿Cuánto fragmentar? ¿Cómo probar la correctez? ¿Cómo ubicar los fragmentos? ¿Qué requerimientos de información? CONSIDERACIONES CONSIDERACIONES PARA PARA DISTRIBUIR DISTRIBUIR LA LA BASE BASE DE DE DATOS DATOS 7 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 8 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Requerimientos de Información Requerimientos de Información Cuatro Categorías: Información de la base de datos. Información de la aplicación. Información de la red de comunicaciones. Información del sistema de cómputo. Información de la base de datos. Información de la aplicación. Información de la red de comunicaciones. Información del sistema de cómputo. Selectividad de fragmentos. Tamaño de un fragmento. Tipos de acceso y número. Acceso a sitios. Ancho de banda. Distancias entre sitios. Sobrecarga de protocolos. Unidad de costo de almacenar datos en un sitio. Unidad de costo de procesar datos en un sitio. 9 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 10 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Ejemplo Fragmentación Una relación r estará fragmentada, cuando se divida en cierto numero de fragmentos r1, r2, ... , rn. Estos Fragmentos contienen información suficiente para permitir la reconstrucción de la relación original r 11 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 12 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Fragmentación Grado de Fragmentación ¿Podemos distribuir sólo relaciones? ¿Cuál es la unidad razonable de distribución? Relación. Número finito de alternativas • Las vistas son subconjuntos de relaciones (localmente). • Comunicación extra. Fragmento de relación (sub-relación). Tuplas o atributos • Ejecución concurrente de un número de transacciones que acceden diferentes porciones de una relación. • Las vistas que no puedan ser definidas sobre un solo fragmento requerirán procesamiento extra. • El control de la semántica de datos (especialmente forzar la integridad) es más complejo. Relaciones Encontrar el nivel adecuado de particionamiento dentro de este rango. 13 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 14 Correctez de la Fragmentación Tipos de Fragmentación Completez. La descomposición de una relación R en fragmentos R1, R2, ..., Rn, es completa si y sólo si cada elemento de datos en R puede ser encontrado en algún Ri. Reconstrucción. Si la relación R se descompone en fragmentos R1, R2, ..., Rn, debiera existir un operador relacional ∇ tal que R = ∇Ri, Ri ∈ FR . Excluyente. Si la relación R se descompone en fragmentos R1, R2, ..., Rn, y datos del elemento di están en Rj, entonces di no debiera estar en algún otro fragmento Rk (j ≠ k). Fragmentación horizontal (FH). Fragmentación horizontal primaria (FHP). Fragmentación horizontal derivada (FHD). Fragmentación vertical (FV). Fragmentación híbrida o mixta (FM). 15 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 16 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Alternativas: Fragmentación Horizontal Fragmentación Horizontal Presupuesto J La relación r se divide en cierto número de subconjuntos de tuplas, r1, r2, ... , rn . Se define como una selección de la relación global r, utilizando un predicado P1 ri = σP1 (r) Cada Tupla de la relacion r debe pertenecer al menos a uno de los fragmentos Se puede reconstruir tomando la unión de todos los fragmentos r = r1 ∪ r2 ∪ ... ∪ rn J1: Proyectos con presupuesto menor que $200,000. J2: Proyectos con presupuesto mayor o igual a $200,000. JNO JNAME BUDGET LOC J1 J2 J3 J4 J5 Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM 150000 135000 250000 310000 500000 Montreal New York New York Paris Boston J1 J2 JNO LOC JNO JNAME BUDGET LOC Montreal New York J3 J4 J5 CAD/CAM Maintenance CAD/CAM 250000 310000 500000 New York Paris Boston J1 J2 JNAME BUDGET Instrumentation 150000 Database Develop. 135000 J1 = σBUDGET<200000 (J) J2 = σBUDGET≥200000 (J) 17 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 18 Base de Datos Distribuidas – Unidad II FHP - Requerimientos de Información FHP - Requerimientos de Información Información de la base de datos: Relaciones S TITLE, SAL E L1 J ENO, ENAME, TITLE L2 JNO, JNAME, BUDGET, LOC L3 G ENO, JNO, RESP, DUR Cardinalidad de cada relación: card(R). Información de la aplicación: Predicados simples: Dada R[A1,A2,...An], un predicado simple pj es pj : Ai θ Valor donde θ ∈{=, ≠, <, ≤, >, ≥}, Valor ∈Di y Di es el dominio de Ai. Ejemplo: JNAME = ‘Maintenance’ BUDGET ≤ 200000. Predicados minterm: Dado Ri y Pri = {pi1, pi2, ..., pim} definir Mi = {mi1, mi2, ..., miz} como Mi = {mij |mij = vpik ∈ Pri pik*}, 1≤ k≤ m, 1≤ j≤ z donde pik*= pi o pik*= ¬ pi. 19 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro M. en C. José Mario Martínez Castro 20 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro FHP - Requerimientos de Información FHP - Requerimientos de Información Ejemplos de predicados minterm: m1 : JNAME = ‘Maintenance’ BUDGET ≤ 200000 m2 : ¬ (JNAME = ‘Maintenance’) BUDGET ≤ 200000 m3 : JNAME = ‘Maintenance’ ¬ (BUDGET ≤ 200000) m4 : ¬ (JNAME = ‘Maintenance’) ¬ (BUDGET ≤ 200000) Información de la aplicación: Selectividad de predicados minterm: sel(mj) Número de tuplas de la relación que son accesadas por una consulta de usuario la cual está especificada por un predicado minterm mj dado. Frecuencias de acceso: acc(qj) Frecuencia con la cual la aplicación qj accesa datos. Análogamente se puede definir la frecuencia de acceso para un predicado minterm. 21 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Fragmentación Horizontal Primaria 22 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro FHP - Obtención de Predicados Simples Definición: Rij = σ Fj(Ri), 1≤ j≤ w donde Fj es la fórmula de selección usada para obtener el fragmento Rij, el cual es (preferentemente) un predicado minterm. Por lo tanto: Una fragmentación horizontal Ri de una relación R consiste de todas las tuplas de R las cuales satisfacen un predicado minterm. Dado un conjunto de predicados minterm M, hay tantas fragmentaciones horizontales de la relación R como predicados minterm existan. A los fragmentos horizontales también se les llama fragmentos minterm. Dados: Una relación R, y el conjunto de predicados simples Pr. Obtener: El conjunto de fragmentos de R = {R1, R2, ..., Rw} los cuales obedecen las reglas de fragmentación. Preliminares: Pr debe ser completo. Pr debe ser mínimo. 23 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 24 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Completez de los Predicados Simples Completez de los Predicados Simples Ejemplo: Se dice que un conjunto de predicados simples Pr es completo si y sólo si el acceso a las tuplas de los fragmentos minterm definidos sobre Pr requiere que dos tuplas del mismo fragmento minterm tengan la misma probabilidad de ser accesadas por todas y cada una de las aplicaciones. Suponemos que J(JNO, JNAME, BUDGET, LOC) tiene dos aplicaciones definidas para trabajar sobre J: Encontrar los presupuestos de los proyectos en cada localidad. Encontrar los proyectos con presupuesto menor que $200000. 25 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 26 Base de Datos Distribuidas – Unidad II Completez de los Predicados Simples M. en C. José Mario Martínez Castro Minimalidad de los Predicados Simples De acuerdo a (1) Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”} lo cual no es completo con respecto a (2). Si modificamos Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”, BUDGET≤200000, BUDGET>200000} Si un predicado influye en cómo se ejecuta la fragmentación (v.g. provoca que un fragmento f se particione en nuevos fragmentos fi y fj), entonces debiera existir al menos una aplicación que accese a fi y fj diferentemente. En otras palabras el predicado simple deberá ser relevante en determinar una fragmentación. Si todos los predicados de un conjunto Pr son relevantes, entonces Pr es mínimo. el cual es completo. 27 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 28 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Relevancia de los Predicados Simples Minimalidad de los Predicados Simples Ejemplo Sean mi y mj dos predicados minterm idénticos en su definición, excepto que mi contiene el predicado simple pi mientras que mj contiene ¬ pi, y sean fi y fj dos fragmentos definidos de acuerdo a mi y mj; entonces pi es relevante si y sólo si acc(mi) card(fi) ≠ Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”, BUDGET≤200000, BUDGET>200000} es mínimo además de ser completo. Sin embargo, si agregamos acc(mj) card(fj) JNAME=“Instrumentation” entonces Pr no es mínimo. 29 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 30 FHP - Ejemplo FHP - Ejemplo Dos relaciones candidatas: S y J. Fragmentación de la relación S: Fragmentación de la relación S (continúa): Implicaciones: Aplicación: verificar salario y determinar aumento. Los registros de empleados se manipulan en dos sitios => la aplicación corre en dos sitios. Predicados simples: p1 : SAL ≤ 30000 p2 : SAL > 30000 Pr : {p1, p2} el cual es completo y mínimo Pr’ = Pr Predicados minterm: m1 : (SAL ≤ 30000) (SAL > 30000) m2 : (SAL ≤ 30000) ¬ (SAL > 30000) m3 : ¬ (SAL ≤ 30000) (SAL > 30000) m4 : ¬ (SAL ≤ 30000) ¬ (SAL > 30000) i1 : (SAL ≤ 30000) => ¬ (SAL > 30000) i2 : ¬ (SAL ≤ 30000) => (SAL > 30000) i3 : (SAL > 30000) => ¬ (SAL ≤ 30000) i4 : ¬ (SAL > 30000) => (SAL ≤ 30000) m1 es contradictorio a i1, m4 es contradictorio a i2 S2 S1 TITLE SAL TITLE SAL Mech. Eng. Programmer 27000 24000 Elect. Eng. Syst. Anal. 40000 34000 31 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 32 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro FHP - Ejemplo FHP - Ejemplo Fragmentación de la relación J: Aplicaciones: Encontrar el nombre y el presupuesto de los proyectos dado su número. Estas consultas son emitidas en tres sitios. Accesar la información del proyecto de acuerdo a su presupuesto. Predicados simples para la aplicación (1): p1 : LOC = “Montreal” p2 : LOC = “New York” p3 : LOC = “Paris” Predicados simples para la aplicación (2): p4 : BUDGET ≤ 200000 p5 : BUDGET > 200000 Pr = Pr’ = {p1, p2, p3, p4, p5} Fragmentación de la relación J (continúa): Fragmentos minterm después de la eliminación: m1 : (LOC = “Montreal”) (BUDGET ≤ 200000) m2 : (LOC = “Montreal”) (BUDGET > 200000) m3 : (LOC = “New York”) (BUDGET ≤ 200000) m4 : (LOC = “New York”) (BUDGET > 200000) m5 : (LOC = “Paris”) (BUDGET ≤ 200000) m6 : (LOC = “Paris”) (BUDGET > 200000) 33 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 34 Fragmentación Horizontal Derivada FHP - Ejemplo J1 J2 JNO JNAME BUDGET LOC JNO J1 Instrumentation 150000 Montreal J2 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II JNAME BUDGET Database Develop. 135000 LOC New York Definida sobre una relación miembro de una liga según una operación de selección especificada sobre su relación propietaria. Cada enlace corresponde a una equireunión. S TITLE, SAL J6 J4 JNO JNAME BUDGET LOC JNO JNAME BUDGET LOC J3 CAD/CAM 250000 New York J4 Maintenance 310000 Paris E L1 J ENO, ENAME, TITLE L2 JNO, JNAME, BUDGET, LOC L3 G ENO, JNO, RESP, DUR 35 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 36 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro FHD - Ejemplo FHD - Definición Dado el enlace L1, donde propietario(L1)=S y miembro(L1)=E E1= E S1 E2= E S2 donde S1= σSAL ≤30000(S) S2= σSAL >30000(S) Dado un enlace L donde propietario(L)=S y miembro(L)=R, la fragmentación horizontal derivada de R se define como Ri = R Si, 1 ≤ i ≤ w Donde w es el número máximo de fragmentos que serán definidos en R, y Si = σFi(S), donde Fi es la formula mediante la cual se define la fragmentación horizontal primaria Si. Ε1 Ε2 ENO ENAME TITLE E3 A. Lee Mech. Eng. E4 J. Miller Programmer E7 R. Davis Mech. Eng. ENO E1 E2 E5 E6 E8 ENAME TITLE J. Doe Elect. Eng. M. Smith Syst. Anal. B. Casey Syst. Anal. L. Chu Elect. Eng. J. Jones Syst. Anal. 37 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 38 FHD - Correctez Fragmentación Vertical Completez. Integridad referencial. Sea R la relación miembro de un enlace cuyo propietario es la relación S la cual está fragmentada como Fs = {S1, S2, ..., Sw}. Además sea A el atributo de la reunión entre R y S. Entonces para cada tupla t de R, debiera existir una tupla t’ de S tal que t[A] = t’[A] Reconstrucción. Igual que la de la fragmentación horizontal primaria. Exclusión. Si el grafo de la reunión entre el propietario y los fragmentos miembro es simple. La relación R se divide en cierto número de subconjuntos de tuplas, R1, R2, ... , Rn . Se define como una descomposición de la relación R. ri = ΠRi (r) Se debe incluir la llave primaria en cada fragmento Cada Atributo de la relacion R debe pertenecer solo a uno de los fragmentos, a excepción de la llave primaria Se puede reconstruir tomando la reunión natural de todos los fragmentos r = r1 r2 ... rn 39 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 40 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro FV - Correctez Alternativas: Fragmentación Vertical Presupuesto J Una relación R, definida sobre un conjunto de atributos A y clave K, genera la partición vertical FR={R1, R2, ..., Rr}. J1: Información de los presupuestos de los proyectos. Completez. Lo siguiente debiera satisfacerse: A = ∪Ai Reconstrucción. La reconstrucción puede efectuarse mediante R = K Ri, ∀ Ri ∈ FR Exclusión. Los identificadores no se consideran para ser traslapados ya que son mantenidos por el sistema. Las llaves duplicadas no se consideran para ser traslapadas. JNO JNAME BUDGET LOC J1 J2 J3 J4 J5 Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM 150000 135000 250000 310000 500000 Montreal New York New York Paris Boston J2: Información de los nombres de los proyectos y su ubicación. J1 J2 JNO BUDGET JNO JNAME LOC J1 J2 J3 J4 J5 Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM Montreal New York New York Paris Boston J1 J2 J3 J4 J5 150000 135000 250000 310000 500000 J1 = ΠJNO, BUDGET (J) J2 = ΠJNO, JNAME, LOC (J) 41 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 42 Fragmentación Vertical Fragmentación Vertical Ha sido estudiada dentro del contexto centralizado. Metodología de diseño. Agrupamiento físico. Más difícil que la horizontal, debido a que existen más alternativas. Existen dos técnicas: Agrupamiento de atributos en fragmentos. División de la relación en fragmentos. Traslape de fragmentos. Agrupamiento. Sin traslape de fragmentos. División. No se considera traslape en los atributos llave replicados. Ventaja: facilita hacer cumplir las dependencias funcionales (para verificar integridad, etc.) 43 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 44 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Distribución de Fragmentos Fragmentación Híbrida Planteamiento del problema: Dado F = {F1, F2,...,Fn} es el conjunto de fragmentos. S = {S1, S2, ..., Sm} es el conjubto de sitios en la red, y Q = {q1, q2, ..., qq} es el conjunto de aplicaciones, encontrar la distribución “óptima” de F en S. R FH FH R1 FV R2 FV FV FV FV R11 R12 R21 R22 R23 45 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 46 Distribución de Fragmentos Distribución Optimalidad Problema de distribución de archivos (FAP) vs. problema de distribución de base de datos (DAP). Costo minimo. Comunicación + Almacenamiento + Procesamiento (lectura y actualizaciones). Costo en términos de tiempo (usualmente). Eficiencia. Tiempo de respuesta. Restricciones. Restricciones por sitio (almacenaje y procesamiento). Los fragmentos no pueden tratarse como archivos individuales. Se tienen que tomar en cuenta sus relaciones. El acceso a la base de datos es más complicado. El modelo de acceso a archivos remotos no aplica. Relación entre distribución y procesamiento de consultas. El costo de mantener la integridad debe considerarse. El costo del control de concurrencia debe considerarse. 47 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 48 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Distribución - Requerimientos de Información Distribución - Requerimientos de Información Información de la base de datos: Selectividad de fragmentos minterm. Tamaño de los fragmentos. Información de las aplicaciones: Número de accesos de lectura de una consulta a un fragmento. Número de accesos de actualización a un fragmento. Una matriz que indique cuáles consultas actualizan qué fragmentos. Una matriz similar para las lecturas. Sitio de origen de cada consulta. Información de los sitios: Unidad de costo de almacenar datos en un sitio. Unidad de costo de procesar datos en un sitio. Información de la red: Costo de comunicación de una trama entre dos sitios. Tamaño de la trama. 49 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 50 Modelo de Distribución Modelo de Distribución Forma general Costo Total : Σ todas las consultas costo de procesamiento de consulta + Σ todos los sitios Σ todos los fragmentos costo de almacenaje de un frag. en un sitio Costo de almacenaje (del fragmento Fj en Sk): (unidad de costo de almacenaje en Sk) * (tamaño de Fj) * xjk Costo de procesamiento de consulta: componente de procesamiento + componente de transmisión min(costo total) sujeto a restricciones de tiempo de respuesta restricción de almacenaje restricción de procesamiento variables de decisión: 1 si el fragmento Fi se almacena en el sitio Sj xij = 0 en caso contrario 51 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 52 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Modelo de Distribución Modelo de Distribución Componente de procesamiento: costo de acceso + costo de mantenimiento de integridad + costo de control de concurrencia Costo de Acceso: Σ todos los sitios Σ todos los fragmentos (no. de accesos de actualización + no. de accesos de lectura) * xjk * costo de procesamiento local en un sitio Los costos de mantenimiento de integridad y de control de concurrencia se pueden formaular de una manera similar. Componente de Transmisión: costo de procesar actualizaciones + costo de procesar lecturas Costo de actualizaciones: Σ todos los sitios Σ todos los fragmentos costo del mensaje de actualizar + Σ todos los sitios Σ todos los fragmentos costo de confirmación Costo de lecturas: Σ todos los fragmentos min todos los sitios (costo del comando de recuperación + costo de enviar los resultados) 53 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II Problema - Separación de los Pasos de Diseño Modelo de Distribución 54 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II Relaciones Globales Restricciones: Tiempo de respuesta: tiempo de ejecución de la consulta ≤ max. tiempo de resp. permisible para esa consulta Almacenamiento: Σ todos los fragmentos reqs. de almacenaje de un fragmento en ese sitio ≤ capacidad de almacenaje de ese sitio Procesamiento: Σ todas las consultas carga de proc. de una consultas en ese sitio ≤ capacidad de procesamiento de ese sitio FRAGMENTACION Fragmentos de Relaciones DISTRIBUCION Relaciones Locales 55 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 56 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Comparación de Alternativas de Réplica Alternativas de Asignación Réplica Total No Replicado. Particionada: cada fragmento reside en un solo sitio. Replicado. Réplica completa: cada fragmento en cada sitio. Réplica parcial: cada fragmento en algunos de los sitios. Regla del pulgar: Consultas sólo de lectura Si Consultas para actualizar ≥ 1 replicación es ventajosa, de lo contrario la réplica puede causar problemas. PROCESAMIENTO DE CONSULTAS Fácil ADMINISTRACION DE DICCIONARIO Fácil o no existente Réplica Parcial Particionado Misma Dificultad Misma Dificultad CONTROL DE CONCURRENCIA Moderado Difícil Fácil FIABILIDAD Muy Alta Alta Baja Posible Aplicación Realista FACTIBILIDAD Posible Aplicación 57 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 58 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II Procesamiento de Consultas Consulta de usuario en alto nivel PROCESAMIENTO PROCESAMIENTO DE DE CONSULTAS CONSULTAS DISTRIBUIDAS DISTRIBUIDAS Procesador de consultas Comandos de manipulación de datos en bajo nivel 59 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro 60 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Alternativas de Selección Componentes del Procesamiento de Consultas SELECT FROM WHERE AND Lenguaje de consultas utilizado. SQL “Intergalactic Dataspeak”. Metodología de ejecución de consultas. Los pasos necesarios para ejecutar una consulta de alto nivel (declarativa). Optimización de consultas. ¿Cómo determinar el “mejor” plan de ejecución? ENAME E, G E.ENO = G.ENO DUR > 37 Estrategia 1 ΠENAME(σDUR>37 ∧ E.ENO=G.ENO(E × G)) Estrategia 2 ΠENAME( E ENO (σDUR>37(G))) La estrategia 2 reduce el producto cartesiano, así que es “mejor” 61 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II 62 M. en C. José Mario Martínez Castro Base de Datos Distribuidas – Unidad II ¿Cuál es el Problema? ¿Cuál es el Problema? Sitio 1 Sitio 2 Sitio 3 Sitio 4 Sitio 5 Sitio 1 Sitio 2 Sitio 3 Sitio 4 Sitio 5 G1= σENO≤“E3”(G) G2= σENO>“E3”(G) E1= σENO≤“E3”(E) E2= σENO>“E3”(E) Resultado G1= σENO≤“E3”(G) G2= σENO>“E3”(G) E1= σENO≤“E3”(E) E2= σENO>“E3”(E) Resultado Estrategia 1 Estrategia 2 Sitio 5 Sitio 5 Resultado = (E1 ∪ E2) Resultado = E1’ ∪ E2’ Sitio 3 E1’ = E1 Sitio 4 ENO G 1’ G 1’ Sitio 1 G1’ = σDUR>37(G1) E2’ = E2 ENO G2’ G1 G2 Sitio 1 Sitio 2 E1 Sitio 3 ∪ G 2) E2 Sitio 4 G2’ Sitio 2 G2’ = σDUR>37(G2) 63 Base de Datos Distribuidas – Unidad II ENO σDUR>37(G1 M. en C. José Mario Martínez Castro 64 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro Alternativas de Costo Suponer lo siguiente: tamaño(E) = 400, tamaño (G) = 1000 costo de acceso a tuplas = 1 unidad; costo de trasferir una tupla = 10 unidades Estrategia 1. 1. Producir G’: 20*costo de acceso a tupla 20 2. Transferir G’ a los lugares de E: 20*costo de transferir tupla 200 3. Producir E’: (20*20)*costo de acceso a tupla 800 4. Transferir E’ a los lugares resultantes: 20*costo de trasferir tupla 200 Costo Total 1,220 Estrategia 2. 1. Transferir E al lugar 5: 400*costo de transferir tupla 4,000 2. Transferir E al lugar 5: 1,000*costo de transferir tupla 10,000 3. Producir G’: 1,000*costo de acceso a tupla 1,000 4. Reunión de E y G’: 20*1,000*costo de acceso a tupla 20,000 Costo Total 35,000 65 Base de Datos Distribuidas – Unidad II M. en C. José Mario Martínez Castro