BDD-U3

Embed Size (px)

Citation preview

  • 8/18/2019 BDD-U3

    1/52

      J=m2C

    BASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDAS

    Expositor:

    M.C. José Mario Martínez Castro

    C U R S O

      J=m2C

    Contenido

    1. Fundamentos de SBDDs.

    2. Arquitectura Cliente/Servidor.

    3. Diseño de Bases de Datos Distribuidas.

    4. Procesamiento Distribuido de Consultas.

    5. Manejo Distribuido de Transacciones.

  • 8/18/2019 BDD-U3

    2/52

      J=m2C

    3. DISEÑO3. DISEÑO DE BASES DEDE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDAS

    3. DISEÑO3. DISEÑO DE BASES DEDE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDAS

      J=m2C

    Problema de Diseño

    En un marco general

    tomar decisiones acerca de la ubicación de los datos ylos programas, en los sitios de una red de computado-ras, 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 basede datos.

  • 8/18/2019 BDD-U3

    3/52

      J=m2C

    Dimensiones del ProblemaPatrón de acceso

    Compartimiento

     Nivel deconocimiento

    Estático

    Datos

    Datos + programa

    Dinámico

    Información parcial

    Información

    completa

      J=m2C

    Diseño de la Distribución

    Descendente.

    Principalmente en sistemas que inician de cero.

    Principalmente en sistemas homogeneos.

    Ascendente.

    Cuando las bases de datos ya existen en los diferentes

    sitios.

  • 8/18/2019 BDD-U3

    4/52

      J=m2C

    Diseño DescendenteAnálisis de

    requerimientos

    Req. del sistema(objetivos)

    Diseñoconceptual

    Diseñode vistas

    Entrada del usuario

    Integración de vistas

    Esq. conep. global Informaciónde acceso

    Definición delesquema externo

    Diseño de ladistribución

    Esq. concep. local

    Diseño físico

    Esquema físico

    Observ. y monit.

    Entradadel usuario

    Retroalimentación Retroalimentación

      J=m2C

    ¿Por qué fragmentar todo?

    ¿Cómo fragmentar?

    ¿Cuánto fragmentar?

    ¿Cómo probar la correctez?

    ¿Cómo ubicar los fragmentos?

    ¿Qué requirimientos de información?

    Problemática del Diseño de la Distribución

  • 8/18/2019 BDD-U3

    5/52

      J=m2C

    ¿Podemos distribuir sólo relaciones?

    ¿Cuál es la unidad razonable de distribución?

    Relación. Las vistas son subconjuntos de relaciones (localmente).

    Comunicación extra.

    Fragmento de relación (sub-relación). Ejecución concurrente de un número de transacciones que

    accesan 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.

    Fragmentación

      J=m2C

    Alternativas: Fragmentación Horizontal

    J1: Proyectos con presupuestomenor que $200,000.

    J2: Proyectos con presupuestomayor o igual a $200,000.

    J

    J1 J2

    JNO JNAME BUDGET LOC

    J1J2J3J4J5

    InstrumentationDatabase Develop.

    CAD/CAMMaintenanceCAD/CAM

    150000135000250000310000500000

    Montreal New York  New York 

    ParisBoston

    JNO JNAME BUDGET LOCJ1J2

    InstrumentationDatabase Develop.

    150000135000

    Montreal New York 

    JNO JNAME BUDGET LOC

    J3J4J5

    CAD/CAMMaintenanceCAD/CAM

    250000310000500000

     New York Paris

    Boston

  • 8/18/2019 BDD-U3

    6/52

      J=m2C

    Alternativas: Fragmentación VerticalJ1: Información de los presupuestos

    de los proyectos.

    J2: Información de los nombres delos proyectos y su ubicación.

    J

    J1 J2

    JNO JNAME BUDGET LOC

    J1J2J3J4J5

    InstrumentationDatabase Develop.

    CAD/CAMMaintenanceCAD/CAM

    150000135000250000310000500000

    Montreal New York  New York 

    ParisBoston

    JNO BUDGET

    J1J2J3J4J5

    150000135000250000310000500000

    JNO JNAME LOC

    J1J2

    J3J4J5

    InstrumentationDatabase Develop.

    CAD/CAMMaintenanceCAD/CAM

    Montreal New York 

     New York Paris

    Boston

      J=m2C

    Grado de Fragmentación

    Encontrar el nivel adecuado de particionamientodentro de este rango.

     Número finito de alternativas

    Tuplas oatributos

    Relaciones

  • 8/18/2019 BDD-U3

    7/52

      J=m2C

    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 F  R .

    Excluyente.

    Si la relación R se descompone en fragmentos R1 , R2 , ..., Rn,y datos del elemento d i están en R j, entonces d i no debieraestar en algún otro fragmento Rk ( j  k ).

    Correctez de la Fragmentación

      J=m2C

     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 lossitios.

    Regla del pulgar:Si 1 replicación es ventajosa,

    de lo contrario la réplica puede causar problemas.

    Alternativas de Asignación

    Consultas sólo de lecturaConsultas para actualizar 

  • 8/18/2019 BDD-U3

    8/52

      J=m2C

    Comparación de Alternativas de Réplica

    Réplica Total Réplica Parcial Particionado

    PROCESAMIENTODE CONSULTAS

    FácilMisma Dificultad 

    ADMINISTRACIONDE DICCIONARIO

    Fácil ono existente

    Misma Dificultad 

    CONTROL DECONCURRENCIA

    Moderado Difícil Fácil

    FIABILIDAD Muy AltaAlta Baja

    FACTIBILIDAD PosibleAplicación

    RealistaPosible

    Aplicación

      J=m2C

    Cuatro Categorias:

    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.

    Requerimientos de Información

  • 8/18/2019 BDD-U3

    9/52

      J=m2C

    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).

    Tipos de Fragmentación

      J=m2C

    FHP - Requerimientos de Información

    Información de la base de datos:

    Relaciones

    TITLE, SAL

    ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC

    ENO, JNO, RESP, DUR 

    S

    E J

    G

    L1

    L2 L3

    Cardinalidad de cada relación: card(R).

  • 8/18/2019 BDD-U3

    10/52

      J=m2C

    FHP - Requerimientos de Información

    Información de la aplicación:

    Predicados simples: Dada  R[ A1 ,A2 ,...An], un predicadosimple p j es

     p j : Ai  Valor 

    donde {=, , }, Valor  Di y Di es eldominio de Ai.

    Ejemplo: JNAME = ‘Maintenance’BUDGET 200000.

    Predicados minterm: Dado Ri y Pr i = { pi1 , pi2 , ..., pim}

    definir Mi = {mi1 , mi2 , ..., miz} comoMi = {mij |mij = v pik   Pri  pik *}, 1 k  m, 1 j z

    donde pik *= pi o pik *= pi.

      J=m2C

    Ejemplos de predicados minterm:

    m1 : JNAME = ‘Maintenance’ BUDGET 200000

    m2 : (JNAME = ‘Maintenance’) BUDGET 200000

    m3 : JNAME = ‘Maintenance’ (BUDGET 200000)

    m4 :

    (JNAME = ‘Maintenance’)

    (BUDGET 200000)

    FHP - Requerimientos de Información

  • 8/18/2019 BDD-U3

    11/52

      J=m2C

    FHP - Requerimientos de Información

    Información de la aplicación:

    Selectividad de predicados minterm: sel(m j) Número de tuplas de la relación que son accesadas

     por una consulta de usuario la cual está especificada por un predicado minterm m j dado.

    Frecuencias de acceso: acc(q j)Frecuencia con la cual la aplicación q j accesa datos.

    Análogamente se puede definir la frecuencia de

    acceso para un predicado minterm.

      J=m2C

    Fragmentación Horizontal Primaria

    Definición: Rij = F  j(Ri), 1 j w

    donde F  j es la fórmula de selección usada para obtener el frag-mento Rij, el cual es (preferentemente) un predicado minterm.

    Por lo tanto:

    Una fragmentación horizontal Ri de una relación R consiste detodas las tuplas de R las cuales satisfacen un predicado minterm.

    Dado un conjunto de predicados minterm  M , hay tantasfragmentaciones horizontales de la relación R como predicadosminterm existan.

    A los fragmentos horizontales también se les llama fragmentosminterm.

  • 8/18/2019 BDD-U3

    12/52

      J=m2C

    FHP - Obtención de Predicados Simples

    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.

      J=m2C

    Completez de los Predicados Simples

    Se dice que un conjunto de predicados simples Pr es com- pleto si y sólo si el acceso a las tuplas de los fragmentosminterm definidos sobre Pr requiere que dos tuplas delmismo fragmento minterm tengan la misma probabilidadde ser accesadas por todas y cada una de las aplicaciones.

  • 8/18/2019 BDD-U3

    13/52

      J=m2C

    Ejemplo:

    Suponemos que J(JNO, JNAME, BUDGET, LOC) tiene dosaplicaciones definidas para trabajar sobre J:

    Encontrar los presupuestos de los proyectos en cadalocalidad.

    Encontrar los proyectos con presupuesto menor que$200000.

    Completez de los Predicados Simples

      J=m2C

    Completez 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”,BUDGET200000, BUDGET>200000}

    el cual es completo.

  • 8/18/2019 BDD-U3

    14/52

      J=m2C

    Minimalidad de los Predicados Simples

    Si un predicado influye en cómo se ejecuta la fragmenta-ción (v.g. provoca que un fragmento f se particione ennuevos fragmentos f i y f  j), entonces debiera existir almenos una aplicación que accese a f i y f  j diferentemente.

    En otras palabras el predicado simple deberá ser relevanteen determinar una fragmentación.

    Si todos los predicados de un conjunto Pr son relevantes,entonces Pr es mínimo.

      J=m2C

    Relevancia de los Predicados Simples

    acc(mi)card ( f i)

    acc(m j)card ( f  j)

    Sean mi y m j dos predicados minterm idénticos en su defini-ción, excepto que mi contiene el predicado simple pi mien-tras que m j contiene

     pi, y sean f i y f  j dos fragmentos defini-dos de acuerdo a mi y m j; entonces pi es relevante si y sólo si

  • 8/18/2019 BDD-U3

    15/52

      J=m2C

    Minimalidad de los Predicados Simples

    Sin embargo, si agregamos

    JNAME=“Instrumentation”

    Ejemplo

    Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”,BUDGET200000, BUDGET>200000}

    es mínimo además de ser completo.

    entonces Pr no es mínimo.

      J=m2C

    Algoritmo COM-MIN

    Entrada: Una relación  R y un conjunto de predicados simplesPr .

    Salida: Un conjunto de predicados simples completo ymínimo Pr ’ para Pr.

    Regla I: Una relación o fragmento se particiona en al menosdos partes las cuales son accesadas de maneradiferente por al menos una aplicación.

  • 8/18/2019 BDD-U3

    16/52

      J=m2C

    Algoritmo COM-MIN

    Inicialización:

    Encontrar un pi  Pr tal que pi particione R de acuerdoa la Regla 1.

    Hacer Pr’  pi; Pr Pr - pi; F   f i Agregar predicados iterativamente a Pr’ hasta que esté

    completo.

    Encontrar un p j  Pr tal que p j particione algún f k definido por un predicado minterm de Pr’ de acuerdoa la Regla 1.

    Hacer Pr’ Pr’  pi; Pr Pr - pi; F F  f i Si  pk   Pr’ el cual no es relevante, entonces

    Hacer Pr’ Pr’ - pk ; F F - f k 

      J=m2C

    Algoritmo P-HORIZONTAL

    Hacer Pr’ COM-MIN( R,Pr )

    Determinar el conjunto M de predicados minterm

    Determinar el conjunto de implicaciones I entre pi  Pr 

    Eliminar los predicados minterm contradictorios de M 

    Hacer uso de COM-MIN para efectuar fragmentación.

    Entrada: Una relación R y un conjunto de predicados sim- ples Pr .

    Salida: Un conjunto de fragmentos minterm M de R.

  • 8/18/2019 BDD-U3

    17/52

      J=m2C

    Dos relaciones candidatas: S y J.

    Fragmentación de la relación S: Aplicación: verificar salario y determinar aumento.

    Los registros de empleados se manipulan en dos sitios => laaplicación corre en dos sitios.

    Predicados simples: p1 : SAL 30000 p2 : SAL > 30000Pr : { p1 , p2} el cual es completo y mínimo Pr’ = Pr 

    Predicados minterm:m

    1

    : (SAL 30000) (SAL 30000)m2 : (SAL 30000)

    (SAL 30000)m3 :

    (SAL 30000) (SAL 30000)m4 :

    (SAL 30000) (SAL 30000)

    FHP - Ejemplo

      J=m2C

    Fragmentación de la relación S (continúa): Implicaciones:

    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

    FHP - Ejemplo

    TITLE SAL

    Mech. Eng.Programmer 

    2700024000

    TITLE SAL

    Elect. Eng.Syst. Anal.

    4000034000

    S2S1

  • 8/18/2019 BDD-U3

    18/52

      J=m2C

    Fragmentación de la relación J: Aplicaciones:

    Encontrar el nombre y el presupuesto de los proyectos dado sunú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}

    FHP - Ejemplo

      J=m2C

    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)

    FHP - Ejemplo

  • 8/18/2019 BDD-U3

    19/52

      J=m2C

    FHP - Ejemplo

    JNO JNAME BUDGET LOC

    J1 Instrumentation 150000 Montreal

    JNO JNAME BUDGET LOC

    J2 Database Develop. 135000 New York 

    JNO JNAME BUDGET LOC

    J3 CAD/CAM 250000 New York  

    JNO JNAME BUDGET LOC

    J4 Maintenance 310000 Paris

    J1

    J4 J6

    J2

      J=m2C

    Definida sobre una relación miembro de una liga segúnuna operación de selección especificada sobre su relación propietaria.

    Cada enlace corresponde a una equireunión.

    Fragmentación Horizontal Derivada

    TITLE, SAL

    ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC

    ENO, JNO, RESP, DUR 

    S

    E J

    G

    L1

    L2 L3

  • 8/18/2019 BDD-U3

    20/52

      J=m2C

    FHD - DefiniciónDado un enlace L donde propietario( L)=S y miembro( L)= R,la fragmentación horizontal derivada de R se define como

     Ri = R S i , 1 i w

    Donde w es el número máximo de fragmentos que serándefinidos en R, y S i = Fi(S ), donde F i es la formula mediantela cual se define la fragmentación horizontal primaria S i.

      J=m2C

    FHD - Ejemplo

    ENO ENAME TITLEE3 A. Lee Mech. Eng.E4 J. Miller Programmer  E7 R. Davis Mech. Eng.

    ENO ENAME TITLEE1 J. Doe Elect. Eng.E2 M. Smith Syst. Anal.E5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E8 J. Jones Syst. Anal.

    Dado el enlace L1, donde  propietario( L1)=S ymiembro( L1)=E

    E1= E S1E2= E S2

    dondeS1= SAL 30000(S)S2= SAL >30000(S)

  • 8/18/2019 BDD-U3

    21/52

      J=m2C

    FHD - Correctez Completez.

    Integridad referencial.

    Sea R la relación miembro de un enlace cuyo propieta-rio es la relación S la cual está fragmentada como F s ={S 1 , S 2 , ..., S w}. Además sea A el atributo de la reuniónentre R y S . Entonces para cada tupla t de R, debieraexistir 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 frag-

    mentos miembro es simple.

      J=m2C

    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ásalternativas.

    Existen dos técnicas:

    Agrupamiento de atributos en fragmentos. División de la relación en fragmentos.

    Fragmentación Vertical

  • 8/18/2019 BDD-U3

    22/52

      J=m2C

    Traslape de fragmentos.

    Agrupamiento.

    Sin traslape de fragmentos.

    División.

    Fragmentación Vertical

     No se considera traslape en los atributos llave replicados.

    Ventaja: facilita hacer cumplir las dependencias funcionales

    (para verificar integridad, etc.)

      J=m2C

    FV - Requerimientos de Información

    Información de la aplicación:

    Afinidad de los atributos, la cual es una medida que indi-ca qué tanta relación existe entre los atributos.

    Esto se obtiene de las primitivas de uso de los datos.Dado un conjunto de consultas Q = {q1 , q2 , ..., qq} quecorren sobre la relación  R[ A1 , A2 , ..., An],

    uso(qi ,A j) =1 si el atributo A j es referido en la consulta qi0 en caso contrario

    uso(qi, ) se puede definir análogamente.

  • 8/18/2019 BDD-U3

    23/52

      J=m2C

    FV - Ejemplo de uso(qi , A j)

    Considerar las siguientes 4 consultas para la relación J:

    q1: SELECT BUDGETFROM JWHERE JNO=Valor 

    q3: SELECT JNAMEFROM JWHERE LOC=Valor 

    q2: SELECT JNAME, BUDGETFROM J

    q4: SELECT SUM(BUDGET)FROM JWHERE LOC=Valor 

    Sean  A1=JNO,  A2=JNAME,  A3=BUDGET,  A4=LOC

    A1 A2 A3 A4

    q1 1 0 1 0q2 0 1 1 0q3 0 1 0 1q4 0 0 1 1

      J=m2C

    FV - Medida de Afinidad aff ( Ai , A j)

    La medida de afinidad entre dos atributos Ai y A j de una rela-ción R[ A1 , A2 , ..., An] con respecto al conjunto de aplicacionesQ = {q1 , q2 , ..., qn} se define como sigue

    aff ( Ai , A j) = todas las consultas que accesan  Ai y Aj   ref l(qk ) acc(qk )S l

  • 8/18/2019 BDD-U3

    24/52

      J=m2C

    FV - Cálculo de aff ( Ai , A j)Suponemos que cada consulta en el ejemplo anterior accesalos atributos una vez durante cada ejecución.

    También suponemos lasfrecuencias de acceso

    Entoncesaff ( A1 , A3) = 15*1 + 20*1 +10*1

    = 45

    y la matriz de afinidad deatributos AA es

    S1 S2 S3q1 15 20 10q2 5 0 0q3 25 25 25q4 3 0 0

    A1 A2 A3 A4A1 45 0 45 0

    A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78

      J=m2C

    FV - Algoritmo de Agrupamiento

    Toma la matriz de afinidad de atributos AA y reorganiza elorden de los atributos para formar grupos donde los atribu-tos en cada grupo demuestran alta afinidad unos con otros.

    El algoritmo de energía de cohesión (BEA) se usado paraagrupamiento de entidades. BEA encuentra un orden deatributos tal que la medida de afinidad global

    AM = (afinidad de Ai y A j con sus vecinos)

    se maximiza.

    i j

  • 8/18/2019 BDD-U3

    25/52

      J=m2C

    Algoritmo de Energía de CohesiónEntrada: La matriz AA.Salida: La matriz de afinidad CA agrupada, la cual es unaderivación de AA.

     Inicialización: Colocar y ajustar una de las columnas de AA en CA.

    Iteración: Colocar las n-i columnas restantes en el resto dei +1 posiciones en la matriz CA. Por cada columna, elegirel lugar que más contribuya a la medida de afinidad global.

    Ordenar filas: Ordenar las filas de acuerdo al orden decolumna.

      J=m2C

    Algoritmo de Energía de Cohesión

    La “mayor contribución” se encuentra de acuerdo a la siguien-te fórmula:

    cont ( Ai , Ak  , A j) = 2bond ( Ai , Ak ) + 2bond ( Ak  , A j) - 2bond ( Ai , A j)

    donde:

    bond ( A x , A y) = aff ( A z , A x) aff ( A z , A y) z=1

    n

  • 8/18/2019 BDD-U3

    26/52

      J=m2C

    BEA - Ejemplo

    Considerar la siguiente matriz AA y la correspondiente matriz CAdonde A1 y A2 han sido ubicados como sigue:

     AA = CA =

    A1 A2 A3 A4A1 45 0 5 0A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78

    A1 A2A1 45 0A2 0 80A3 45 5A4 0 75

    Ordenar (0-3-1):cont ( A0 , A3 , A1) = 2bond ( A0 , A3) + 2bond ( A3 , A1) - 2bond ( A0 , A1)

    = 2*0 + 2*4410 - 2*0 = 8820Ordenar (1-3-2):

    cont ( A1 , A3 , A2) = 2bond ( A1 , A3) + 2bond ( A3 , A2) - 2bond ( A1 , A2)= 2*4410 + 2*890 - 2*225 = 10150

    Ordenar (2-3-4):cont ( A2 , A3 , A4) = 1780

      J=m2C

    BEA - Ejemplo

    Por lo tanto la matriz CA tiene la forma

    La forma final de la matriz CA (después de organizar lasfilas) es

    A1 A3 A2 A4A1 45 45 0 0A3 45 53 5 3A2 0 5 80 75A4 0 3 75 78

    A1 A3 A2A1 45 5 0A2 0 5 80A3 45 53 5A4 0 3 75

    A4

  • 8/18/2019 BDD-U3

    27/52

      J=m2C

    FV - Algoritmo

    ¿Cómo puede dividirse un conjunto de atributos agrupados { A1 , A2 , ..., An} en dos (o más) conjuntos { A1 , A2 , ..., Ai} y { Ai+1 , ..., An} tal que no haya (o sea mínimo el número de) aplicacionesque accesen ambos (o más de un) conjuntos?

     A1 ,A2 ,A3 , ..., Ai  Ai+1 , ..., An A1 A2 A3

     Ai

     Ai+1

     An

    TA

    BA

     

    J=m2C

    Definir TQ = conjunto de las aplicaciones que accesan sólo TA, BQ = conjunto de las aplicaciones que accesan sólo BA,OQ = conjunto de las aplicaciones que accesan TA y BA,yCTQ = número total de accesos a los atributos por las aplica-

    ciones que accesan sólo TA,CBQ = número total de accesos a los atributos por las aplica-

    ciones que accesan sólo BA,COQ = número total de accesos a los atributos por las aplica-

    ciones que accesan TA y BA.

    Entonces encontrar el punto sobre la diagonal que maximiza

    CTQ*CBQ-COQ2

    FV - Algoritmo

  • 8/18/2019 BDD-U3

    28/52

      J=m2C

    FV - Algoritmo

    Dos problemas:

    Un fragmento a la mitad de la matriz CA. Cambiar la columna más izquierda hasta la derecha,

    reordenar las filas, y aplicar el algorimo para encontrarel “mejor” punto de particionamiento.

    Hacer esto para todos los cambios posibles. Costo O(n2).

    Para más de dos grupos. Particionamiento en n grupos. Probar 1, 2, ..., n-1 puntos de división a lo largo de la

    diagonal y tratar de encontrar el mejor punto para cadauno de éstos.

    Costo O(2n).

      J=m2C

    Completez. Lo siguiente debiera satisfacerse: A =  Ai

    Reconstrucción. La reconstrucción puede efectuarsemediante

    R = K Ri,  Ri F  R

    Exclusión. Los identificadores no se consideran para ser trasla-

     pados ya que son mantenidos por el sistema. Las llaves duplicadas no se consideran para ser

    traslapadas.

    FV - Correctez

    Una relación R, definida sobre un conjunto de atributos Ay clave K , genera la partición vertical F  R={ R1, R2, ..., Rr }.

  • 8/18/2019 BDD-U3

    29/52

      J=m2C

    Fragmentación Híbrida

    R 1 R 2

    R 11 R 12 R 21 R 22 R 23

    FH FH

    FV FV FVFV

    FV

      J=m2C

    Distribución de Fragmentos

    Planteamiento del problema:

    Dado

    F = {F 1, F 2,...,F n} es el conjunto de fragmentos.

    S = {S 1, S 2, ..., S m} 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.

  • 8/18/2019 BDD-U3

    30/52

      J=m2C

    Distribución de Fragmentos

    Costo minimo.

    Comunicación + Almacenamiento + Procesamiento (lecturay actualizaciones).

    Costo en términos de tiempo (usualmente).

    Eficiencia.

    Tiempo de respuesta.

    Restricciones.

    Restricciones por sitio (almacenaje y procesamiento).

    Optimalidad 

      J=m2C

    Información de la base de datos. Selectividad de fragmentos. Tamaño de un fragmento.

    Información de la aplicación. Tipos de acceso y número. Acceso a sitios.

    Información de la red de comunicaciones. Ancho de banda. Distancias entre sitios.

    Sobrecarga de protocolos.

    Información del sistema de cómputo. Unidad de costo de almacenar datos en un

    sitio.

    Unidad de costo de procesar datos en un sitio.

    Requerimientos de Información

  • 8/18/2019 BDD-U3

    31/52

      J=m2C

    Los fragmentos no pueden tratarse como archivos indivi-duales.

    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.

    Distribución

    Problema de distribución de archivos (FAP) vs. problema dedistribución de base de datos (DAP).

      J=m2C

    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 unfragmento.

     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.

  • 8/18/2019 BDD-U3

    32/52

      J=m2C

    Distribución - Requerimientos de Información

    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.

      J=m2C

    Modelo de Distribución

    Forma generalmin(costo total)

    sujeto arestricciones de tiempo de respuestarestricción de almacenajerestricción de procesamiento

    variables de decisión:

    1 si el fragmento F i se almacena en el sitio S  j0 en caso contrario

     xij =

  • 8/18/2019 BDD-U3

    33/52

      J=m2C

    Modelo de Distribución

    Costo Total : todas las consultas costo de procesamiento de consulta + todos los sitios todos los fragmentos costo de almacenaje de un frag. en unsitio

    Costo de almacenaje (del fragmento F  j en S k ):(unidad de costo de almacenaje en S k ) * (tamaño de F  j) * x jk 

    Costo de procesamiento de consulta:componente de procesamiento + componente de transmisión

    J=m2C

    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) * x jk * costo de procesamiento local en un sitio

    Los costos de mantenimiento de integridad y de control deconcurrencia se pueden formaular de una manera similar.

  • 8/18/2019 BDD-U3

    34/52

      J=m2C

    Modelo de Distribución

    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)

      J=m2C

    Modelo de Distribución

    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

  • 8/18/2019 BDD-U3

    35/52

      J=m2C

    Problema - Separación de los Pasos de Diseño

    Relaciones Globales

    FRAGMENTACION

    Fragmentos de Relaciones

    DISTRIBUCION

    Relaciones Locales

      J=m2C

    Fragmentación Vertical

  • 8/18/2019 BDD-U3

    36/52

      J=m2C

    Introducción En esta sección se presenta un modelo que unifica la

    fragmentación vert ical, la ubicación y la reubicacióndinámica en sistemas de bases de datos distribuídas.

    Este modelo permite mejorar el desempeño de sistemasexpuestos a cambios en los patrones de uso de los datos.

    La naturaleza de muchos sistemas distribuídos es diná-mica, con cambios en la topología de la red, patrones yfrecuencias de acceso, nuevos datos, número de nodos,costos, y recursos. Este aspecto dinámico se trata incor- porándolo en el modelo matemático.

      J=m2C

    Introducción

    El uso generalizado de redes de comunicaciones paracomputadoras, incluyendo Internet, facilita la implemen-tación de sistemas de bases de datos distribuídas.

    Sin embargo, uno de los problemas más difíciles para sudesarrollo es la falta de metodologías y herramientas paraefectuar su diseño.

  • 8/18/2019 BDD-U3

    37/52

      J=m2C

    Introducción

    Tradicionalmente, se ha considerado que el diseño de ladistribución consiste de dos fases separadas: fragmentacióny ubicación de fragmentos.

    Contrariamente a la creencia generalizada, se demuestraque es más sencillo resolver simultáneamente los proble-mas de fragmentación y ubicación.

    En este sentido, el modelo propuesto es innovador.

      J=m2C

    Descripción del Problema

    S n

    S3S2

    S1

    RED

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Dada una red de computadoras

  • 8/18/2019 BDD-U3

    38/52

      J=m2C

    Descripción del Problema

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Q = {q1, q2, ..., qq }: aplicaciones

    S n

    S3S2

    S1

    RED

     q2q1

    q1q1

     q2

    Un conjunto de aplicaciones y una base de datos relacional

      J=m2C

    Descripción del Problema

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Q = {q1, q2, ..., qq }: aplicaciones

    F = { f 1, f 2, ..., f n}: fragmentos

    S n

    S3

    S2

    S1

    RED

     q2q1

    q1q1

     q2 f 2

    f 1

    El problema consiste en la determinación y ubicación defragmentos de tal forma que se minimice el costo total decomunicación y almacenamiento

  • 8/18/2019 BDD-U3

    39/52

      J=m2C

    Modelo MatemáticoEn este modelo, la decisión de almacenar un atributo  en el sitio   j   se representa con una variable binariax 

     j . Así   x  j = 1 si    se almacena en   j , y   x  j  = 0 en

    caso contrario.

    ++ j    jijii j2 j

     xd cawc

    +=kjki jk i j    jijk k i kik 

     y f c1 xclq f  zmin

    Costo de comunicación   Costo de acceso avarios fragmentos

    Costo dealmacenamiento

    Costo dereubicación

      J=m2C

    S n

    S3S2

    S1

    RED

    q1q1f 1

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Q = {q1, q2, ..., qq }: aplicaciones

    F = { f 1, f 2, ..., f n}: fragmentos

    Costo de Comunicación

  • 8/18/2019 BDD-U3

    40/52

      J=m2C

    Costo de Comunicación

     j    j jijk k i kik 

     x xclq f 

      J=m2C

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Q = {q1, q2, ..., qq }: aplicaciones

    F = { f 1, f 2, ..., f n}: fragmentos

    Costo de Acceso a Varios Fragmentos

    S n

    S3S2

    S1

    RED

     q2q2 f 2

    f 1

  • 8/18/2019 BDD-U3

    41/52

      J=m2C

    Costo de Acceso a Varios Fragmentos

    kjkjki j 1k i

     y y f c

      J=m2C

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    F = { f 1, f 2, ..., f n}: fragmentos

    Costo de Almacenamiento de Fragmentos

    S n

    S3S2

    S1

    RED

    f 1

    f 2

  • 8/18/2019 BDD-U3

    42/52

      J=m2C

    Costo de Almacenamiento de Fragmentos

     j j2 j

    wwc

      J=m2C

    Costo de Reubicación

    S n

    S3S2

    S1

    RED

    q1q1f 1

    f 1

    f 1f 1

    f 1f 1

    f 1f 1

    f 1f 1 f 1f 1 f 1 f 1 f 1 f 1

    S = {S 1, S 2, ..., S n }: sitios o nodos en la red 

    Q = {q1, q2, ..., qq }: aplicaciones

    F = { f 1, f 2, ..., f n}: fragmentos

  • 8/18/2019 BDD-U3

    43/52

      J=m2C

    Costo de Reubicación

     j    j jijii

     x xd ca

      J=m2C

    Modelo Matemático

    donde

     f ki = frecuencia de emisión de la consulta k desde el sitio i;

    qk  = parámetro de uso, qk  = 1 si la consulta k usa el atributo, en caso contrario qk  = 0;

    lk  = número de paquetes de comunicación necesarios paratransportar al atributo requerido por la consulta k 

    = (p

    sk )/PA

     p

    = tamaño en bytes del atributo ;sk = selectividad de la consulta k ;PA = tamaño del paquete de comunicación en bytes;

  • 8/18/2019 BDD-U3

    44/52

      J=m2C

    cij = costo de comunicación entre el sitio i y el sitio j;

    c1 = costo por accesar varios fragmentos para satisfacer unaconsulta;

    c2 = costo por ubicar un fragmento en un sitio;

     ykj = variable de decisión, ykj = 1 si la consulta k accede auno o más atributos localizados en el sitio j, y ykj = 0en caso contrario;

    w j = variable de decisión, w j = 1 si existe uno o másatributos en el sitio j, y w j = 0 en caso contrario;

    Modelo Matemático

      J=m2C

    ai = indicador de ubicación previa, ai = 1 si el atributo

    está localizado actualmente en el sitio i, en casocontrario a

    i = 0;

    = número de paquetes de comunicación necesarios para mover el atributo a otro sitio en caso necesario;

    = (p * CA)/PAdondeCA = cardinalidad de la relación.

    Modelo Matemático

  • 8/18/2019 BDD-U3

    45/52

      J=m2C

    Modelo Matemático

    Restricciones intrínsecas del problema:

     j

     j j x

    "

    = 1

    i

    kik  i q x

    ,"

      j 

    1)

    2)

    cada atributo debe almacenarse en sólo

    un sitio;

    0si,0

    0si,1

    ki

    ki

    ki f 

     f  

    cada atributo   debe ubicarse en unsitio i que ejecute por lo menos unaconsulta que involucre al atributo;

    donde

      J=m2C

    Restricciones intrínsecas del problema:

    3)

    4)

    esta restricción fuerza el valor de w j a 1cuando cualquier  x

     j es igual a 1, einduce w j a 0 en caso contrario;

    esta restricción fuerza ykj a 1 cuan-

    do cualquier qk  x j es igual a 1, einduce ykj a 0 en caso contrario;

     j

     xwt 

     j j

    "

    - 0

     jk,

    q

     jk   x yt kj

    "

    -   0

    Modelo Matemático

  • 8/18/2019 BDD-U3

    46/52

      J=m2C

    Restricciones intrínsecas del problema:

    5) la suma de los tamaños de los frag-mentos asignados al sitio  j no debeexceder la capacidad de éste. j

    CA

     p  x j  CS  j

    Modelo Matemático

      J=m2C

    Solución Factible Actual

     z

     z( x)

     x

  • 8/18/2019 BDD-U3

    47/52

      J=m2C

    Vecindad de Solución Actual

     z

     z( x)

     x H ( x)

      J=m2C

    La Nueva Solución se Genera Aleatoriamente

     z

     z( x)

     x y H ( x)

  • 8/18/2019 BDD-U3

    48/52

      J=m2C

    Diferencia de Valores de la Función Objetivo

     z

     z( x)

     z( y)

     x y

     z = z( y) - z( x)

    J=m2C

    Regla de Aceptación

     z

     x y

     z = z( y) - z( x)

    La nueva solución y se acepta si  z < T 

  • 8/18/2019 BDD-U3

    49/52

      J=m2C

    Se Obtiene una Nueva Solución Actual

     z

     Nueva  x

      J=m2C

    Algoritmo de Aceptación por Umbral

    Inicio

    real T ,  entero i, S  x = la mejor de un conjunto de S 

    soluciones factibles

    T = valor inicial alto de temperatura

  • 8/18/2019 BDD-U3

    50/52

      J=m2C

    Algoritmo de Aceptación por Umbral

    repetirrepetir

    para i = 1 hasta S  y = solución vecinasi z( y) - z( x) < T entonces x = y

    en caso contrariono se acepta la nueva solución

    fin_sii = i + 1

    fin_si

    hasta alcanzar el equilibrio térmicoT =  T hasta alcanzar el congelamiento

    Fin

      J=m2C

    0

    0.05

    0.1

    0.15

    0.2

    0.25

    0.3

    0.35

    0.4

    1 2 3 4 5 6 7 8 9 10 11 12 13

    B&B

    AU

    P R O B L E M A S

    Desviación Porcentual Respecto al Óptimo

  • 8/18/2019 BDD-U3

    51/52

      J=m2C

    0

    1

    2

    3

    4

    5

    6

    7

    8

    1 2 3 4 5 6 7 8 9 10 11 12 13

    B&B

    AU

    P R O B L E M A S

    Comparación en Tiempo de Ejecución

      J=m2C

    Conclusiones

    Se han propuesto varios métodos para el diseño de bases dedatos distribuídas. Invariablemente el problema de diseño seha dividido en dos fases: fragmentación y ubicación.

    El modelo propuesto muestra la factibilidad de integrar la

    fragmentación y ubicación en una sola fase, lo cual resultaen una solución más eficiente.

  • 8/18/2019 BDD-U3

    52/52

      J=m2C

    Conclusiones

    El modelo se resolvió usando dos algoritmos: Branch and Bound para programación entera, y Aceptación por Umbral.Los resultados experimentales muestran que el algoritmo deAceptación por Umbral encuentra la solución óptima para problemas pequeños.

    Los resultados muestran la eficiencia del algoritmo de Acep-tación por Umbral, con un buen desempeño para problemas

     pequeños y mostrando su potencial para resolver problemasgrandes.