You are on page 1of 19

FRAGMENTACION VERTICAL Introduccin

Recurdese que la fragmentacin vertical de una relacin R produce una serie de fragmentos R1, R2, ..., Rr, cada uno de los cuales contiene un subconjunto de los atributos de R as como la clave primaria de R. El objetivo de la fragmentacin vertical consiste en dividir la relacin en un conjunto de relaciones ms pequeas tal que algunas de las aplicaciones de usuario slo hagan uso de un fragmento. Sobre este marco, una fragmentacin ptima es aquella que produce un esquema de divisin que minimiza el tiempo de ejecucin de las aplicaciones que emplean esos fragmentos. La particin vertical resulta ms complicada que la horizontal. Esto se debe al aumento del nmero total de alternativas que tenemos disponibles. Por ejemplo, en la particin horizontal, si el nmero total de predicados simples de Pr es n, existen 2n predicados mintrminos posibles que puedan definirse. Adems, sabemos que algunos de estos predicados resultarn contradictorios con algunas de las aplicaciones existentes, por lo que podremos reducir el nmero inicial. En el caso vertical, si una relacin tiene m atributos clave no primarios, el nmero de posibles fragmentos es m igual a B(m), es decir el m-simo nmero de Bell [3]. Para valores grandes de m, B(m) m ; por ejemplo, para m = 10, B(m) 115.000, para m = 15, B(m) 109, para m = 30, B(m) = 1023. Estos valores indican que la obtencin de una solucin ptima de la fragmentacin vertical resultar una tarea intil, sino nos apoyamos en el uso de heursticos. Existen dos enfoques heursticos para la fragmentacin vertical de relaciones:

1. Agrupacin. Comienza asignando cada atributo a un fragmento, y en cada paso,


junta algunos de los fragmentos hasta que satisface un determinado criterio. La agrupacin sugiri en principio para bases de datos centralizadas y se us posteriormente para las bases de datos distribuidas. Escisin. A partir de la relacin se deciden que fragmentos resultan mejores, basndose en las caractersticas de acceso de las aplicaciones a los atributos. Esta tcnica se present, tambin, para bases de datos centralizadas. Posteriormente, se extendi al entorno distribuido.

2.

En este documento se tratar nicamente la tcnica de escisin, ya que es ms apropiada para la estrategia descendente y porque resulta ms probable encontrar la solucin para la relacin entera que a partir de un conjunto de fragmentos con un nico atributo. Adems, la escisin genera fragmentos no solapados mientras que la agrupacin normalmente produce fragmentos solapados. Dentro del contexto de los sistemas de bases de datos distribuidos, son preferibles los fragmentos no solapados por razones obvias. Evidentemente, los fragmentos no solapados se refieren nicamente a atributos clave no primarios. Antes de comenzar, vamos a aclarar un problema: la rplica de las claves de la relacin en los fragmentos. Esta es una caracterstica de la fragmentacin vertical que permite la reconstruccin de la relacin global. Por tanto, la escisin considera nicamente aquellos atributos que no son parte de la clave primaria. La rplica de los atributos clave supone una gran ventaja, a pesar de los problemas que pueda causar. La ventaja est relacionada con el esfuerzo para mantener la integridad semntica. Tenga en cuenta que cada dependencia (funcional, multivaluada ...) es, de hecho, una restriccin que influye sobre el valor de los atributos de las respectivas relaciones en todo momento. Tambin muchas de estas dependencias implican a los atributos clave de una relacin. Si queremos disear una base de datos tal que los atributos clave sean parte de una fragmento que est ubicado en un sitio, y los atributos relacionados sean parte de otro fragmento asignado a un segundo sitio, cada peticin de actualizacin provocar la verificacin de integridad que necesitar de una

comunicacin entre esos sitios. La rplica de los atributos clave de cada fragmento reduce esta problemtica, pero no elimina toda su complejidad, ya que la comunicacin puede ser necesaria para las restricciones de integridad que implican a las claves primarias, as como para el control de concurrencia. Una posible alternativa a la rplica de los atributos clave es el empleo de identificadores de tuplas, que son valores nicos asignados por el sistema a las tuplas de una relacin. Mientras el sistema mantenga los identificadores, los fragmentos permanecern disjuntos.

Informacin necesaria para la fragmentacin vertical.


La principal informacin que necesitaremos se referir a las aplicaciones. Por tanto, este punto tratar de especificar la informacin que de una aplicacin que funciona sobre la base de datos podamos extraer. Teniendo en cuenta que la fragmentacin vertical coloca en un fragmento aquellos atributos a los que se accede de manera simultnea, necesitaremos alguna medida que defina con ms precisin el concepto de simultaneidad. Esta medida es la afinidad de los atributos, que indica la relacin estrecha existente entre los atributos. Desgraciadamente, no es muy realista esperar que el diseador o los usuarios puedan especificar estos valores. Por ello, presentaremos una forma por la cual obtengamos esos valores partiendo de datos ms bsicos. El principal dato necesario relativo a las aplicaciones es la frecuencia de acceso. Sea Q = {q1, q2, ..., qq} el conjunto de consultas de usuario (aplicaciones) que funcionan sobre una relacin R(A1, A2, ..., An). Entonces, para cada consulta qi y cada atributo Aj, asociaremos un valor de uso de atributos, representado por uso(qi, Aj) y definido como sigue: uso(qi, Aj) = 1 si la consulta qi hace referencia a Aj uso(qi, Aj) = 0 en cualquier otro caso Los vectores uso(qi, ) pueden definirse muy fcilmente para cada aplicacin siempre que el diseador conozca las aplicaciones existentes en el sistema. La regla 80/20 expuesta pginas atrs podra resultar til para el desarrollo de esta tarea. Ejemplo 10. Sea la relacin CLIENTES de la base de datos. Asumamos que las siguientes aplicaciones van a hacer uso de ella. Se indica, tambin, la especificacin SQL. q1 : Encuntrese el nombre y la direccin del cliente a partir de su cdigo. SELECT CNOMCLI, CDIRCLI FROM CLIENTES WHERE CCODCLI = Valor q2 : Encuntrese el nombre y DNI de todos los clientes residentes en una determinada provincia. SELECT CNOMCLI, CDNICIF FROM CLIENTES WHERE NCODPROV = Valor q3 : Encuntrese el nombre de todos los clientes. SELECT CNOMCLI FROM CLIENTES q4 : Encuntrese la poblacin y el cdigo postal de un cliente a partir de su nmero.

SELECT CPOBCLI, CPTLCLI FROM CLIENTES WHERE CLIENTES = Valor De acuerdo a estas cuatro aplicaciones, se pueden especificar los valores de uso de los atributos. Como convenio de notacin, denominaremos A1 = CLIENTES, A2 = CCODCLI, A3 = CNOMCLI, A4 = CDIRCLI, A5 = CPOBCLI, A6 = NCODPROV, A7 = CPTLCLI y A8 = CDNICIF. Los valores de uso se definen en la matriz de uso de atributos siguiente. Cada entrada (i, j) corresponde a uso(qi, Aj).

Los valores del uso de los atributos en general no son suficientes para desarrollar la base de la escisin y la fragmentacin de los atributos, ya que estos valores no representan el peso de las frecuencias de la aplicacin. La dimensin de esta frecuencia puede incluirse en la definicin de la medida de los atributos afines afd(Ai, Aj), la cual mide el lmite entre dos atributos de una relacin de acuerdo a cmo las aplicaciones acceden a ellos. La medida de los atributos afines entre los dos atributos Ai y Aj de una relacin R(A1, A2, ..., An) con respecto a un conjunto de aplicaciones Q = {q1, q2, ..., qq} se define como

donde refl(qk) es el nmero de accesos a los atributos (Ai, Aj) por cada ejecucin de la aplicacin qk en el sitio Sl y acc(qk) es la medida de la frecuencia de acceso de una aplicacin definida anteriormente, pero modificada para incluir las frecuencias en los distintos sitios. El resultado de este clculo es una matriz de n x n, donde cada elemento es una de las medidas definidas antes. Denominaremos a esta matriz la matriz de atributos afines o MAA. Dicha matriz se emplear en el resto de este punto para mostrar el proceso de fragmentacin. El proceso implica una agrupacin de los atributos con alta afinidad, para luego realizar la escisin de los mismos. Ejemplo 11. Continuemos con el ejemplo 10. Para no complicar demasiado las cosas, asumiremos que refl(qk) = 1 para todo qk y Sl.. As mismo, supondremos que en nuestra red existen tres sitios. Si las frecuencias de acceso de las aplicaciones a los atributos son las siguientes

entonces la medida de afinidad entre los atributos A6 y A8 puede medirse como

ya que la nica aplicacin que accede a ambos atributos es q2. A continuacin se muestran todos los resultados en la matriz de atributos afines. Advierta que los valores de la diagonal tambin se calculan, pese a que el par de atributos sea el mismo y, por tanto, su valor irrelevante.

Algoritmo de agrupacin.
No confunda la agrupacin de atributos con la tcnica heurstica del mismo nombre presentada al principio, no tiene nada que ver. La tarea fundamental consiste en disear un algoritmo de fragmentacin vertical que encuentre un trmino medio de agrupacin de los atributos de una relacin basndose en los valores de afinidad de atributos contenidos en MAA. Se ha sugerido por parte de muchos autores [4][5][6] que el algoritmo de energa lmite o BEA[1] resulta muy apropiado para tal propsito. Se considera adecuado por las siguientes razones:

1. Se dise especficamente para determinar grupos de elementos similares frente a 2. 3. 4.


una ordenacin lineal de los elementos (es decir, grupos de atributos con gran afinidad frente a grupos de atributos con valores pequeos de la misma). Los grupos resultantes no eran sensibles al orden en el cual los elementos se dispusiesen por el algoritmo. 2 El tiempo de clculo del algoritmo es razonable, O(n ), donde n es el nmero de atributos. La interrelacin secundaria entre grupos de atributos es identificable.

El algoritmo de energa lmite toma como entrada la matriz de atributos afines, permuta filas y columnas y genera una matriz de grupos afines (MGA). La permutacin se hace de tal manera, que se maximice la siguiente medida de afinidad global (AG):

donde CV son los cuatro vecinos de un elemento de la matriz, es decir

A su vez,

El ltimo conjunto de condiciones toma en consideracin los casos en los que los atributos se sitan en la MGA a la izquierda del atributo extremo izquierdo o a la derecha del atributo extremo derecho durante la permutacin de columnas, e igualmente respecto a la fila que se sita en la parte superior durante la permutacin de filas. En estos casos, tomaremos el cero como valor de afinidad entre los atributos considerados para su ubicacin y sus vecinos izquierdos o derechos (superiores o inferiores), que no existen en la MGA. La funcin de maximizacin considera slo los vecinos ms prximos, resultando en el grupo de valores grandes solo stos, y en el grupo de valores pequeos solo stos. Adems, la matriz de atributos afines es simtrica, lo cual reduce la funcin objetiva de la formulacin a El algoritmo se presenta a continuacin. Para la generacin de la matriz de grupos afines se siguen tres pasos:

1. Iniciacin. Sita y fija una de las columnas de MAA arbitrariamente dentro de MGA. 2.
En el algoritmo se escoge la columna 1. Iteracin. Se toma cada una de las columnas restantes n - i (donde i es el nmero de columnas que ya se han situado en MGA) y se intenta situarlas en las n - i posiciones restantes de la matriz MGA. Se escoge como lugar de emplazamiento aquel que proporciones una mayor contribucin a la medida de afinidad global descrita anteriormente. Se contina con este paso hasta que se agote el nmero de columnas a situar. Ordenacin de las filas. Una vez que la ordenacin de las columnas ha finalizado, se debe proceder a ordenar las filas de tal modo que su posicin relativa coincida con la de las columnas. Por ejemplo, si la columna 3 se ha situado en la primera posicin, la fila nmero 3 tambin debera pasar a ocupar la primera posicin.

3.

Para la segunda parte del algoritmo, necesitaramos definir que significa la contribucin de un atributo a la medida de afinidad. Esta contribucin puede derivarse como se expondr ahora. Partiremos de la definicin dada de la medida de afinidad global que se escribi como

la cual puede rescribirse como

Definamos el lmite lm entre dos atributos Ax y Ay como

Entonces podemos escribir AG como

Consideremos ahora los siguientes n atributos

La medida de afinidad global para estos atributos puede escribirse como

Consideremos ahora que entre los atributos Ai y Aj de la matriz de grupos afines se sita un nuevo atributo Ak. La nueva medida de afinidad global sera entonces

Por tanto, la contribucin a la red de la medida de afinidad global al situar el atributo Ak entre Ai y Aj es

Ejemplo 12. Consideremos la matriz MAA que se desarroll anteriormente para la relacin CLIENTES. Estudiemos la contribucin que se realiza al colocar el atributo A4 entre los atributos A1 y A2.

cont(A1, A4, A2) = 2lm(A1, A4) + 2lm(A4, A2) 2lm(A1, A2) Haciendo los clculos para cada trmino, se obtiene lm(A1, A4) = 30 + 045 + 045 + 045 + 30 + 00 + 30 + 00 = 0 lm(A4, A2) = 2025 lm(A1, A2) = 0 Por lo tanto, cont(A1, A4, A2) = 20 + 22025 20 = 4050 El algoritmo se concentra en las columnas de la matriz de atributos afines. Podemos emplear los mismos argumentos y redisearlo de tal manera que opere sobre las filas tambin. Otro punto importante de este algoritmo es que mejora la eficiencia, la segunda columna tambin se fija y se sita tras la primera durante el proceso de iniciacin. Esto es perfectamente vlido, ya que A2 puede situarse a la derecha o a la izquierda de A1. El lmite entre las dos, sin embargo, es independiente de las posiciones relativas que tengan la una sobre la otra. Finalmente, deberamos indicar el problema de calcular cont en los extremos. Si un atributo Ai se debe situar a la izquierda del atributo ms a la izquierda, una de las ecuaciones del lmite se calcular sobre un elemento inexistente, el de la izquierda, y sobre Ak. Entonces, necesitamos referirnos a las condiciones impuestas en la definicin de la medida de afinidad global, donde MGA(0, k) = 0. El caso contrario se produce cuando Aj es el atributo situado ms a la derecha, ubicado ya en la matriz MGA, y queremos saber cul es la contribucin de situar el atributo Ak a la derecha de Aj. Ante tal situacin se debe calcular el lm(k, k+1). Ya que no existe un atributo situado todava en la columna k+1 de la MGA, la medida de afinidad no puede establecerse. Por tanto, de acuerdo a las condiciones de los extremos, el valor del lmite es tambin 0. Ejemplo 13. Volviendo a la matriz de grupos afines de la relacin CLIENTES, vamos a desarrollar los pasos del algoritmo para decidir en qu posicin se ha de colocar, por ejemplo, el atributo A 3. Como ya se ha comentado el algoritmo deja fijas en un principio las dos primeras columnas A1 y A2. Por tanto, las posibles ubicaciones para el atributo A3 seran: a la izquierda de A1 (ordenacin 0-3-1), entre A1 y A2 (ordenacin 1-3-2) y a la derecha de A2 (ordenacin 2-3-4). Tenga en cuenta dos cosas. Primero, ya se ha citado que el lmite de cualquier atributo respecto al extremo, A0 en este caso, es siempre cero. Segundo, para la ordenacin 2-3-4, el atributo A4 en la matriz MGA todava no se ha colocado, por tanto no existe y su lmite con otro atributo tambin es cero. Aclarados estos dos puntos, se realizan los siguientes clculos: Ordenacin (0-3-1) cont(A0, A3, A1) = 2lm(A0, A3) + 2lm(A3, A1) 2lm(A0, A1) lm(A0, A3) = 0 lm(A0, A1) = 0 lm(A3, A1) = 03 + 450 + 1250 + 450 + 03 + 50 + 03 + 50 = 0 cont(A0, A3, A1) = 0 Ordenacin (1-3-2) cont(A1, A3, A2) = 2lm(A1, A3) + 2lm(A3, A2) 2lm(A1, A2) lm(A1, A3) = lm(A3, A1) = 0 lm(A3, A2) = 9630 lm(A1, A2) = 0 cont(A1, A3, A2) = 19260 Ordenacin (2-3-4). Esta ordenacin representa la condicin de inmovilidad, ya que A3 ocupara su posicin natural.

cont(A2, A3, A4) = 2lm(A2, A3) + 2lm(A3, A4) 2lm(A2, A4) lm(A2, A3) = lm(A3, A2) = 9630 lm(A3, A4) = 0 lm(A2, A4) = 0 cont(A2, A3, A4) = 19260 Por los resultados obtenidos habr podido observar que la mxima contribucin la aportan las ordenaciones (1- 3-2) y (2-3-4). Adems, dicha contribucin es idntica. En este caso, se deja el criterio en manos del lector. En nuestro caso la condicin de inmovilidad se prefiere hacer prevalecer sobre el resto, por tanto el atributo A3 se situara en MGA en la posicin 3, la misma posicin que ocupaba en la matriz MAA. Completando el proceso para el resto de los atributos se obtienen los resultados que se muestran a continuacin:

a. Como se ha expuesto, A3 permanece en la posicin nmero 3. Lo mismo sucede


con el atributo A4.

b. El atributo A5 pasa a la posicin nmero 1.

c. La mayor contribucin para el atributo A6 se da en su posicin natural.

d. El atributo A7 se desplaza hasta la primera posicin.

e. La mayor contribucin de A8 se da entre los atributos A3 y A4.

f. Por ltimo, se ordenan las filas segn la posicin relativa de las columnas.

Algoritmo de particin.
El objetivo de la escisin consiste en encontrar conjuntos de atributos a los que se acceda conjuntamente, o a un gran nmero de ellos, por los distintos grupos de aplicaciones. Por ejemplo, si es posible identificar dos atributos, A1 y A2, a los que accede nicamente la aplicacin q1, y unos atributos A3 y A4, a los que acceden dos aplicaciones q2 y q3, sera muy sencillo decidir qu fragmentos establecer. Por ello, es necesario encontrar un algoritmo que identifique estos grupos. Considere la matriz de grupos afines de la figura 6. Si se fija un punto a lo largo de la diagonal, se pueden establecer dos conjuntos de atributos. Un conjunto {A1, A2, ..., Ai} situado en la esquina superior izquierda y un segundo conjunto {Ai+1, ..., An} en la parte inferior derecha de este punto. Denominaremos al primero de ellos el conjunto superior y al segundo el conjunto inferior y notaremos sus conjuntos de atributos como AS y AI, respectivamente.

Figura 6. Escisin de la matriz.

Detengmonos ahora en el conjunto de aplicaciones Q = {q1, q2, ..., qq} y definamos los conjuntos de aplicaciones que acceden solamente a AS o a AI, o a ambas. Estos conjuntos se definen como sigue:

La primera de estas ecuaciones define el conjunto de atributos a los que accede la aplicacin qi; SQ e IQ son el conjunto de aplicaciones que slo acceden a los conjuntos AS y AI, respectivamente, y XQ es el conjunto de aplicaciones que accede a ambos. Nos encontramos ante un problema de optimizacin. Si hay n atributos en una relacin, existen n 1 posibles posiciones en las que situar el punto de divisin a lo largo de la diagonal, para producir los conjuntos SQ e IQ, tal que el acceso total a un nico fragmento se maximice mientras que el acceso por las aplicaciones a varios fragmentos se minimice. Definiremos, por ello, las siguientes ecuaciones de coste:

Cada una de las ecuaciones cuenta el nmero total de accesos a los atributos por parte de cada aplicacin para sus respectivas clases. Basndonos en esta medida, el problema de optimizacin se define encontrando el punto x (1 x n) tal que la expresin siguiente sea mxima:

La caracterstica fundamental de esta expresin es que define dos fragmentos tales que los valores de CSQ y CIQ son tan prximos como sea posible. Esto permite el equilibrio de la carga de procesamiento cuando los fragmentos estn distribuidos entre varios sitios. Est claro que el algoritmo de particin tiene complejidad lineal con respecto al nmero de atributos de la relacin, que es O(n). Existen dos complicaciones que necesitan apuntarse. La primera es relativa a la escisin. Como el lector habr podido percatarse, el procedimiento de escisin nicamente divide el conjunto de atributos de dos formas: generando el conjunto AS y el conjunto AI. En el caso que el conjunto de atributos sea grande, seguramente ser necesario un mtodo de particin que soporte n-formas de divisin. El diseo de este algoritmo es posible, pero computacionalmente costoso. A lo largo de la diagonal de la matriz MGA es necesario probar 1, 2, ..., n - 1 puntos de divisin y para cada uno de estos verificar el lugar que maximice a z. Por tanto, la complejidad del algoritmo alcanzara un valor n de O(2 ). Sin embargo, puede llevarse a cabo una solucin alternativa consistente en una llamada

iterativa al algoritmo de fragmentacin binaria para cada uno de los fragmentos obtenidos en la 3 iteracin previa. Esta solucin cuyo coste computacional es de O(n ) se presenta ms adelante. La segunda complicacin se refiere a la localizacin de un bloque de atributos que debera formar un fragmento. Nuestra discusin no va ms all de considerar que el punto de escisin es nico y simple, y que divide a la matriz MGA en una particin superior izquierda y en una particin con el resto de los atributos. La particin, sin embargo, podra formarse en el medio de la matriz. En este caso, necesitamos modificar el algoritmo levemente. La columna ms a la izquierda de la matriz MGA se desplaza para convertirse en la columna ms a la derecha y la fila superior se desplaza para pasar a ser la inferior. A la operacin de desplazamiento le sigue la verificacin de las n - 1 posiciones de la diagonal para encontrar el mximo de z. La idea que esconde el desplazamiento consiste en mover el bloque de atributos que debera formar un grupo a la esquina superior izquierda, donde se identificar ms fcilmente. Con el aadido de la operacin de desplazamiento, la complejidad del algoritmo de particin se eleva en un factor n convirtindose en 2 O(n ). Asumiendo que el procedimiento de desplazamiento, denominado DESPLAZAR, ya se ha desarrollado, el algoritmo se presenta a continuacin. La entrada del algoritmo PARTICIN[1] es la matriz de grupos afines y la relacin R a fragmentar. La salida es el conjunto de fragmentos FR = {R1, R2}, donde Ri {A1, A2, ..., An} y R1 R2 = los atributos clave de R. Tenga en cuenta, que para el algoritmo de n-formas esta rutina debera invocarse iterativamente, o desarrollarse como procedimiento recursivo.

Ejemplo 14. Al aplicar el algoritmo PARTICIN sobre la matriz MGA obtenida para la relacin CLIENTES se obtiene el grupo de fragmentos FCLIENTES = {CLIENTES1, CLIENTES2} donde CLIENTES1 = {A7, A5, A1} y CLIENTES2 = {A1, A2, A3, A8, A4, A6} teniendo en cuenta que se considera clave primaria a A1. Por lo tanto, CLIENTES1 = {CPTLCLI, CPOBCLI, CLIENTES} CLIENTES2 = {CLIENTES, CCODCLI, CNOMCLI, CDNICIF, CDIRCLI, NCODPROV}

Fragmentando relaciones grandes.


Se ha citado anteriormente la necesidad existente en muchos casos de fragmentar una relacin en ms de dos partes, especialmente si sta es grande, contiene un nmero considerable de atributos. Existen dos alternativas para desarrollar el algoritmo de n-formas que haga esto posible. Por un lado podramos modificar el algoritmo de particin para que llevase a cabo esta tarea, lo cual resultara bastante complicado y, por otra, hacer uso de ste tal cual pero siendo la base del

nuevo algoritmo, es decir, lo utilizaramos iterativamente para fragmentar binariamente cada uno de los fragmentos que se generen en el paso anterior. La opcin elegida es esta ltima. El algoritmo [7] mostrado a continuacin es bastante sencillo, slo hay que tener en cuenta el nmero de grupos de fragmentacin que se van generando.

Evidentemente el coste computacional de todo el proceso aumenta. Partiendo de que el coste del 2 algoritmo PARTICIN es de O(n ), el coste aadido es el siguiente. En los pasos 2, 4, 5 y 6 es de O(1). En el paso 3 se necesita buscar el esquema de grupo de atributos actual para TF, es decir, el conjunto de fragmentos que representa la actual MGA. En otras palabras, TF = FS FI. Esta bsqueda puede llevar consigo como mucho n iteraciones dado que el tamao del grupo de fragmentos actual no puede ser mayor que n, es decir, cada grupo en el grupo de fragmentos actual slo puede contener un fragmento en l. Los pasos 7 y 8 se ejecutan como mximo n veces. Por todo ello, la complejidad del algoritmo n-formas se incrementa en un factor n a partir de la 3 complejidad temporal de PARTICIN, entonces el coste total alcanza un valor de O(n ). Ejemplo 15. Al emplear el algoritmo N-FORMAS sobre la relacin clientes, se obtienen los siguientes esquemas de fragmentacin . Observe como en cada paso se produce un fragmento ms respecto al inmediato anterior. Debido a esta caracterstica se dice que los esquemas de fragmentacin generados son jerrquicos.

Esquema Fragmentos 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7

Esquema de fragmentacin (12345678) (751) (23846) (751) (234) (86) (751) (23) (4) (86) (7) (51) (23) (4) (86) (7) (5) (1) (23) (4) (86) (7) (5) (1) (23) (4) (8) (6)

8 (7) (5) (1) (2) (3) (4) (8) (6)

Dado que el mtodo n-formas para una relacin R que se desee fragmentar y que consta de m atributos, puede generar desde 2 hasta m fragmentos diferentes, es fcil preguntarse cul de todos los esquemas generados es el mejor. Para responder a esto se va a proceder a estudiar en detalle el Examinador de Particiones (EP) [8], que no es ms que una funcin de coste que determina el mejor esquema. Este punto muy relacionada con la fase de asignacin se expone en siguientes apartados. Pero antes de ello, resulta necesario verificar la correccin del algoritmo de particin.

Comprobacin de la correccin.
Emplearemos argumentos similares a los de la fragmentacin horizontal para probar que el algoritmo de fragmentacin vertital es correcto.

1. Complecin. La complecin se garantiza ya que cada atributo de la relacin global


se asigna a uno de los fragmentos. Independientemente del tamao del conjunto de atributos A sobre el que se define la relacin R, este est formado por A = AS AI, por lo que la complecin est asegurada. Reconstruccin. Ya se ha mencionado que la reconstruccin de la relacin es posible si se hace uso de la operacin de yunto. Entonces, para una relacin R con un conjunto de fragmentos verticales FR = {R1, R2, ..., Rr} y el atributo o los atributos clave K,

2.

Por tanto, dado que cada Ri es completo, la operacin de yunto podr reconstruir adecuadamente R. Otro punto importante es que cada Ri debera contener el o los atributos claves de R, o bien, albergar el identificador de tupla asignado por el sistema.

3. Disyuncin. La disyuncin de los fragmentos no es tan importante en la


fragmentacin vertical como en la horizontal. Existen dos casos:

a. Se usan identificadores de tuplas, en este caso los fragmentos son b.


disjuntos ya que los identificadores que se replican en cada fragmento se asignan por el sistema y son totalmente invisibles al usuario. Los atributos clave se replican en cada fragmento, en este caso no se puede decir que sean disjuntos en un sentido estricto. Sin embargo, es importante que esta duplicacin de los atributos clave se conozca y

gestione por el sistema. Resumiendo, los fragmentos son disjuntos excepto para los atributos clave.

c. Seleccionando el mejor esquema de particin. El Examinador de Particiones. d. Llegados a este punto, ya sabemos que el objetivo fundamental de la particin y la
asignacin consiste en conseguir un mnimo coste entre las operaciones que se lleven a cabo entre diferentes sitios. Se puede intuir que ese coste tiene dos componentes fundamentales, por un lado el coste de proceso local y por otro, un coste de proceso remoto. Por tanto se debera encontrar una medida de la eficacia del esquema de particin vertical tal que comprendiese a esos dos costes. Esos costes los denominaremos "coste de acceso a atributos locales irrelevantes" y "coste de acceso a atributos remotos relevantes". Para simplificar, asumiremos que el acceso simple a un fragmento de datos corresponde a una unidad de coste. El coste de atributos locales irrelevantes mide el coste de procesamiento de las operaciones que acceden a atributos irrelevantes de datos para esa operacin, siempre teniendo en cuenta que todos los atributos necesarios para esa aplicacin no se encuentran en el sitio local y que hay que acceder a sitios remotos. El coste de acceso a atributos remotos relevantes mide el coste de procesamiento remoto dado que habr atributos a los que tengan que acceder las aplicaciones de forma remota. Dado que realizando el proceso de fragmentacin nosotros no conocemos como se asignarn los fragmentos, calcularemos el segundo coste asumiendo que los fragmentos de datos necesarios para una aplicacin se asignan a sitios diferentes (al menos uno de ellos). Evidentemente, si dispusisemos de datos estadsticos o estimaciones fiables, podramos enfocar este coste de forma diferente. El coste se determinara por la media de todos los costes de los accesos remotos obtenidos durante la ejecucin de la aplicacin en cada sitio que contenga fragmentos necesarios para dicha aplicacin, o asumiendo que la aplicacin nicamente se ejecutar haciendo uso de un fragmento. La caracterstica ideal de la funcin se puede observar en la figura 7, donde se muestra el comportamiento de los dos componentes como una funcin del tamao de la particin. El primer componente debera ser mximo para un tamao igual a 1 y debera ser cero para un tamao igual al nmero de atributos de la relacin. Por otra parte, el segundo componente debera ser 0 y mximo, respectivamente, para estos dos casos extremos. Entre estos dos extremos, el primer componente debera ser ms sensible a las particiones ms pequeas mientras que el segundo debera serlo ante particiones ms grandes.

e.

f.

Figura 7. Caracterstica ideal del E.P.

g. Vamos a mostrar ahora la derivacin del Examinador de Particiones. Se hace


partiendo de una matriz de uso de atributos, que refleja la frecuencia de acceso de cada aplicacin a cada uno de los atributos que forman la relacin. Como ya sabemos, los fragmentos que se obtienen no se solapan excepto para los atributos clave de la relacin de entrada. Los atributos claves forman parte de cada fragmento. Clculo del coste de acceso a los atributos locales irrelevantes. Para el primero de los componentes, usaremos el criterio de error cuadrado [9] para la agrupacin de datos. El objetivo consiste en obtener una particin tal que minimice el error cuadrado para un nmero fijo de fragmentos. El criterio asigna un factor de penalizacin cuando se accede a los atributos irrelevantes de un determinado fragmento. Vamos a asumir que se han fragmentado n atributos en M fragmentos (P1, P2, ..., PM) con ni atributos en cada fragmento. Entonces definimos el vector principal Vi para el fragmento i como sigue.

h. i.

j.

k. l. donde Aij es el vector del atributo j del fragmento i. Es decir, si, por ejemplo, el
atributo 1 de la matriz de uso de atributos forma parte del fragmento nmero 2 denotaramos Aij como A21. El vector principal Vi representa una media de accesos por parte de las aplicaciones sobre todos los atributos del fragmento i. Dado el vector de atributos Aij se denomina vector diferencia a (Aij Vi) para el atributo j del fragmento i. El error cuadrado del fragmento Pi es la suma de los cuadrados de las longitudes de los vectores diferencia de todos los atributos del fragmento i. La expresin matemtica viene dada por

m. n. donde T es el nmero total de aplicaciones que se estn considerando. Si Aij = Vi


entonces e i ser cero. Esto suceder cuando haya un nico atributo en cada
2

o.

fragmento o en el caso de que todos los atributos de cada fragmento sean relevantes para todas las aplicaciones que acceden a ese fragmento. El error cuadrado para el esquema de particin con M fragmentos es

p. q. El valor ms pequeo de E2M es el coste ms pequeo de acceder a atributos


irrelevantes. E M, sin embargo, no refleja el coste que implica acceder a atributos remotos cuando los fragmentos se encuentran en sitios diferentes. Por ello, para aplicaciones de bases de datos distribuidas, no podemos examinar las particiones 2 2 basndonos nicamente en E M. El valor mnimo de E M se alcanza para n particiones en un sistema con n atributos. Clculo del coste de acceso a atributos remotos relevantes. Dado un conjunto de particiones, para cada aplicacin que haga uso de una particin se calcula la razn del nmero de atributos remotos a los que se accede frente al nmero total de atributos que existen en cada particin remota. Esto se suma para todas las particiones y para todas las aplicaciones a travs de la siguiente ecuacin.
2

r. s.

t. u. donde T sigue siendo el nmero total de aplicaciones, qt es la frecuencia de


acceso de la aplicacin t, |Ritk| es el nmero de atributos relevantes del fragmento k a los que se accede remotamente con respecto al fragmento i por la aplicacin t, nritk es el nmero total de fragmentos que estn en el fragmento k a los que se accede remotamente respecto al fragmento i por la aplicacin t, y es un operador que puede ser la media, el mnimo o el mximo aplicado a todo i, a todo fragmento. La eleccin de este operador depender si deseamos establecer una estimacin del coste de acceso remoto media, optimista o pesimista, respectivamente. Por tanto la funcin de evaluacin de las particiones viene dada por la suma de ambos factores de coste, resultando

v.

w. x. Ejemplo 16. Para probar la eficacia del EP podramos partir de los ocho esquemas
de fragmentacin que gener el algoritmo N-FORMAS en un ejemplo anterior. Para cada esquema de particin se han de calcular el vector principal de cada fragmento, posteriormente los vectores diferencia y, por ltimo, el error cuadrado de cada atributo que forma parte del fragmento. Sumando estos resultados obtendramos el primer componente de la funcin. Del mismo modo, aplicando la frmula expuesta, se calcularan los resultados para el segundo componente de la funcin. Aquel esquema de fragmentacin cuya suma de los dos componentes sea la menor, se escoger como el esquema de fragmentacin idneo. Como podr percatarse las operaciones a realizar son sencillas, sin embargo, son muy numerosas. Apelando a este hecho se desea posponer la presentacin de los resultados hasta el momento en el que se desarrolle mediante programa el Examinador de Particiones.

You might also like