Você está na página 1de 11

http://bdd1867.blogspot.com/2011/01/fragmentacion-de-datos-241242-243.

html

2.4 Fragmentacin de datos.


Definicin: La fragmentacin de datos ocurre cuando un pedazo de datos no es capaz de encajar en (disponible) de memoria de la ranura en su conjunto y se ha roto en muchos pedazos (que no estn prximos entre s) para que cada pieza es capaz de adaptarse a las posiciones de memoria disponibles. Ejemplo: los archivos en un sistema de archivos suelen ser gestionados en unidades llamadas bloques o grupos. Cuando un sistema de archivos se crea, no hay espacio libre para almacenar los bloques de archivos en conjunto de forma contigua. Esto permite un rpido archivo secuencial lee y escribe. Sin embargo, como los archivos se agregan, quitan, y cambiado de tamao, el espacio libre se convierte en el exterior fragmentado, dejando slo pequeos agujeros en el que colocar los nuevos datos. Cuando un nuevo archivo que est escrito, o cuando un archivo existente se ampla, los bloques de datos nuevos son necesariamente dispersa, el acceso lento debido a la demora y el tiempo de bsqueda de rotacin de la cabeza de lectura / escritura, y de incurrir en una sobrecarga adicional de administrar ubicaciones adicionales. Esto se llama fragmentacin de archivos del sistema. Bsicamente, dos tipos de fragmentacin se produce: La fragmentacin interna La fragmentacin externa

La fragmentacin interna La fragmentacin interna se produce cuando se asigna el almacenamiento sin la intencin de usarlo. Este espacio se desperdicia. A menudo se acept a cambio de una mayor eficiencia o simplicidad. El trmino "interior" se refiere al hecho de que el almacenamiento es inutilizable el interior de la regin asignada pero no se utiliza. La fragmentacin externa La fragmentacin externa es el fenmeno en el cual se convierte en espacio de almacenamiento gratuito dividido en muchos pedazos pequeos a travs del tiempo. Se trata de una debilidad de ciertos algoritmos de asignacin de almacenamiento, que se produce cuando una aplicacin asigna y desasigna ("libera") las regiones de almacenamiento de distintos tamaos, y el algoritmo de asignacin responde dejando las regiones asignadas y cancelar la asignacin intercalados. El resultado es que, aunque libre de almacenamiento est disponible, es efectivamente inutilizable porque se divide en piezas que son demasiado pequeas para satisfacer las demandas de la aplicacin.

El trmino "externo" se refiere al hecho de que el almacenamiento es inutilizable fuera de las regiones asignadas.

Fragmentacin
El problema de fragmentacin se refiere al particionamiento de la informacin para distribuir cada parte a los diferentes sitios de la red Objetivos de la fragmentacin El objetivo de la fragmentacin 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 unidad de fragmentacin ideal no es la tabla sino una subdivisin de sta. Esto es debido a:

Las aplicaciones usan vistas definidas sobre varias relaciones, es decir, se forman a partir de "trozos" de varias tablas. Si conseguimos que cada una de las vistas est definida sobre subtablas locales (o en su defecto lo mas "cerca" posible) a cada aplicacin, es de esperar un incremento en el rendimiento. Si mltiples vistas de diferentes aplicaciones estn definidas sobre una tabla no fragmentada, se tiene : Si la tabla no est replicada entonces se produce generacin de trfico por accesos remotos. Si la tabla est replicada en todos o algunos de los sitios donde residen cada una de las aplicaciones entonces la generacin de trafico innecesario es producida por la necesidad de la actualizacin de las copias.

Ventajas Al descomponer una relacin en fragmentos (unidades de distribucin) :

Permitimos el procesamiento concurrente de transacciones ya que no se bloquean tablas enteras sino subtablas, por lo que dos consultas pueden acceder a la misma tabla a fragmentos distintos. Permitimos la paralelizacin de consultas al poder descomponerlas en subconsultas, cada una de la cuales trabajar con un fragmento diferente incrementndose as el rendimiento.

Desventajas

Degradacin del rendimiento en vistas definidas sobre varios fragmentos ubicados en sitios distintos (es necesario realizar operaciones con esos trozos lo cual es costoso) El control semntico se dificulta y el rendimiento se degrada debido que la verificacin de restricciones de integridad (claves ajenas, uniques, etc) implican buscar fragmentos en mltiples localizaciones.

Por lo tanto divisin y ubicacin de los fragmentos no es trivial.

Tipos de fragmentacin de datos La forma en como se pueden extraer los datos al ser consultados en un Ambiente distribuido, se puede hacer una fragmentacin de distintas tablas pertenecientes a diversas Bases de Datos localizadas en diversos servidores. Existen tres tipos de fragmentacin: 1. Fragmentacin horizontal 2. Fragmentacin vertical 3. Fragmentacin hbrida En las siguientes secciones revisaremos de manera informal cada uno de los tipos mencionados. Ms adelante, se presentar de manera ms formal la construccin de los diferentes tipos de fragmentacin.

2.4.1 Fragmentacin horizontal.


Fragmentacin Horizontal: Como se ha explicada anteriormente, la fragmentacin horizontal se realiza sobre las tuplas de la relacin. Cada fragmento ser un subconjunto de las tuplas de la relacin. Existen dos variantes de la fragmentacin horizontal: la primaria y la derivada. La fragmentacin horizontal primaria de una relacin se desarrolla empleando los predicados definidos en esa relacin. Por el contrario, la fragmentacin horizontal derivada consiste en dividir una relacin partiendo de los predicados definidos sobre alguna otra. Informacin necesaria para la fragmentacin horizontal Informacin sobre la base de datos. Esta informacin implica al esquema conceptual global. Es importante sealar cmo las relaciones de la base de datos se conectan con otras. En una conexin de relaciones normalmente se denomina relacin propietaria a aquella situada en la cola del enlace, mientras que se llama relacin miembro a la ubicada en la cabecera del vnculo. Dicho de otra forma podemos pensar en relaciones de origen cuando nos refiramos a las propietarias y relaciones destino cuando lo hagamos con las miembro. Definiremos dos funciones: propietaria y miembro, las cuales proyectarn un conjunto de enlaces sobre un conjunto de relaciones. Adems, dado un enlace, devolvern el miembro y el propietario de la relacin,

respectivamente. La informacin cuantitativa necesaria gira en torno a la cardinalidad de cada relacin, notada como card(R). Informacin sobre la aplicacin. Necesitaremos tanto informacin cualitativa como cuantitativa. La informacin cualitativa guiar la fragmentacin, mientras que la cuantitativa se necesitar en los modelos de asignacin. La principal informacin de carcter cualitativo son los predicados empleados en las consultas de usuario. Si no fuese posible investigar todas las aplicaciones para determinar estos predicados, al menos se deberan investigar las ms importantes. Podemos pensar en la regla "80/20" para guiarnos en nuestro anlisis, esta regla dice que el 20% de las consultas existentes acceden al 80% de los datos. Llegados a este punto, sera interesante determinar los predicados simples. A parte de los predicados simples, las consultas emplean predicados ms complejos resultado de combinaciones lgicas de los simples. Una combinacin especialmente interesante es la conjuncin de predicados simples, al predicado resultante se le denomina predicado mintrmino. Partiendo de que siempre es posible transformar una expresin lgica en su forma normal conjuntiva, usaremos los predicados mintrmino en los algoritmos para no causar ninguna prdida de generalidad. Sobre la informacin cuantitativa necesaria relativa a las aplicaciones, necesitaremos definir dos conjuntos de datos. Selectividad mintrmino. Es el nmero de tuplas de una relacin a las que accede una consulta de acuerdo a un predicado mintrmino dado. Por ejemplo, en el ejemplo anterior, la selectividad de m6 es 0 ya que no existe ninguna tupla que satisfaga las condiciones; en cambio, la selectividad de m1 es 2. Notaremos la selectividad de un mintrmino mi como sel(mi). Frecuencia de acceso. Es la frecuencia con la que un usuario accede a los datos. Si Q = {q1, q2, ..., qq} es un conjunto de consultas de usuario, acc(qi) indica la frecuencia de acceso a la consulta qi en un periodo dado. Fragmentacin horizontal primaria Antes de presentar un algoritmo formal que lleve a cabo la fragmentacin horizontal, intentaremos explicar de manera intuitiva los procesos de fragmentacin horizontal primaria y derivada. La fragmentacin horizontal primaria se define como una operacin de seleccin de las relaciones propietarias del esquema de la base de datos Ahora definiremos la fragmentacin horizontal ms formalmente. Un fragmento horizontal Ri de una relacin R contiene todas las tuplas de R que satisfacen un predicado mintrmino mi. Por tanto, dado un conjunto de predicados mintrmino M, existen tantos fragmentos horizontales de la relacin R como predicados mintrmino. Este conjunto de fragmentos horizontales tambin se conocen como conjuntos de fragmentos mintrmino. En los prrafos siguientes se asumir que la definicin de fragmentos horizontales se basa en los predicados mintrmino. Adems, el primer paso para el algoritmo de fragmentacin consiste en establecer un conjunto de predicados con ciertas propiedades. Un aspecto importante de los predicados simples es su complecin, as como su minimalidad. Un conjunto de predicados simples Pr se dice que es completo si y solo si existe una probabilidad idntica de acceder por cada aplicacin a cualquier par de tuplas pertenecientes a cualquier fragmento mintrmino que se define de acuerdo con Pr. Se puede apreciar como la definicin de complecin de un conjunto de predicados simples difiere de la regla de complecin de la fragmentacin. El segundo paso en el proceso de fragmentacin primaria consiste en derivar el conjunto de predicados mintrmino que pueden definirse sobre los predicados del conjunto Pr'. Estos

predicados mintrmino establecen los fragmentos candidatos para el proceso de asignacin. El establecimiento de los predicados mintrmino es trivial; la dificultad radica en el tamao del conjunto de predicados mintrmino, que puede ser muy grande (de hecho, exponencial respecto al nmero de predicados simples). En el paso siguiente se presentarn formas de reducir el nmero de predicados mintrmino necesarios para la fragmentacin. El tercer paso aborda, como ya se ha citado, la eliminacin de algunos fragmentos mintrmino que puedan ser redundantes. Esta eliminacin se desarrolla identificando aquellos mintrminos que puedan resultar contradictorios sobre un conjunto de implicaciones. Fragmentacin horizontal derivada Una fragmentacin horizontal derivada se define sobre una relacin miembro de acuerdo a una operacin de seleccin especificada sobre su propietaria. Se deben dejar claros dos puntos. Primero, el enlace entre las relaciones propietaria y miembro se define como un equiyunto. Segundo, un equi-yunto puede desarrollarse a travs de semiyuntos. Este segundo punto es especialmente importante para nuestros propsitos, ya que deseamos fraccionar una relacin miembro segn la fragmentacin de su propietaria, adems es necesario que el fragmento resultante se defina nicamente sobre los atributos de la relacin miembro. Las tres entradas necesarias para desarrollar la fragmentacin horizontal derivada son las siguientes: el conjunto de particiones de la relacin propietaria, la relacin miembro y el conjunto se predicados resultados de aplicar el semi-yunto entre la propietaria y la miembro. El algoritmo de fragmentacin resulta tan trivial que no se ve la necesidad de entrar en detalles. Existe una posible complicacin que necesita nuestro estudio. En un esquema de base de datos, resulta frecuente que existan ms de dos enlaces sobre una relacin R. En este caso, aparecen ms de una posibilidad de fragmentacin horizontal derivada. La decisin para elegir una u otra se basa en dos criterios: Uno, la fragmentacin con mejores caractersticas de yunto. Dos, la fragmentacin empleada en ms aplicaciones. Discutamos el segundo criterio primero. Resulta sencillo de establecer si tomamos en consideracin la frecuencia con la que cada aplicacin accede a los datos. Si es posible, deberamos intentar facilitar el acceso a los usuarios que hagan mayor uso de los datos para, de esta manera, minimizar el impacto total del rendimiento del sistema.

Figura 5. Grafo de yuntos entre fragmentos. El primer criterio, sin embargo, no es tan sencillo. Considere, por ejemplo, la fragmentacin expuesta en el ejemplo 8. El objetivo de esta fragmentacin consiste en beneficiar a la consulta que haga uso de las dos relaciones al poder realizarse el yunto de CLIENTES y PROVINC sobre relaciones ms pequeas (es decir, fragmentos), y posibilitar la confeccin de yuntos de manera distribuida. El primer aspecto resulta obvio. Los fragmentos de CLIENTES son ms pequeos que la propia relacin CLIENTES. Por tanto, resultar ms rpido llevar a cabo el yunto de un fragmento de PROVINC con otro de CLIENTES que trabajar con las propias relaciones. El segundo punto, sin embargo, es ms importante ya que es la esencia de las bases de datos distribuidas. Si, adems de estar ejecutando un nmero de consultas en diferentes sitios, podemos ejecutar una consulta en paralelo, se espera que el tiempo de respuesta del sistema aumente. En el caso de yuntos, esto es posible bajo ciertas

circunstancias. Considere, por ejemplo, el grafo de yunto (los enlaces) entre los fragmentos de CLIENTES y la derivada PROVINC. Hay nicamente un enlace entrando o saliendo de un fragmento. De ah, que se denomine a este grafo, grafo simple. La ventaja de este diseo donde la relacin de yunto entre los fragmentos es simple, radica en la asignacin a un sitio tanto de la propietaria como de la miembro y los yuntos entre pares diferentes de fragmentos pueden realizarse independientemente y en paralelo. Desgraciadamente, la obtencin de grafos de yunto simples no siempre es posible. En tal caso, la mejor alternativa sera realizar un diseo que provoque un grafo de yuntos fragmentados. Un grafo fragmentado consiste en dos o ms subgrafos que no estn enlazados entre ellos. Por tanto, los fragmentos que se obtengan no se distribuirn para ejecuciones paralelas de un modo tan fcil como aquellos obtenidos a travs de grafos simples, pero su asignacin an ser posible. Procederemos ahora a probar la correccin de los algoritmos presentados con respecto a los tres criterios enunciados pginas atrs. Complecin. La complecin de una fragmentacin horizontal primaria se basa en la seleccin de los predicados a usar. En la medida que los predicados seleccionados sean completos, se garantizar que el resultado de la fragmentacin tambin lo ser. Partiendo de la base que el algoritmo de fragmentacin es un conjunto de predicados completos y mnimos Pr', se garantiza la complecin siempre que no aparezcan errores al realizar la definicin de Pr'. La complecin de una fragmentacin horizontal derivada es algo ms difcil de definir. La dificultad viene dada por el hecho de que los predicados que intervienen en la fragmentacin forman parte de dos relaciones. Definamos la regla de complecin formalmente. Sea R la relacin miembro de un enlace cuya propietaria es la relacin S, la cual est fragmentada como FS = {S1, S2, ..., Sw}. Adems, sea A el atributo de yunto entre R y S. Entonces para cada tupla t de R, existir una tupla t' de S tal que t[A] = t'[A]. Reconstruccin. La reconstruccin de una relacin global a partir de sus fragmentos se desarrolla con el operador de unin tanto para la fragmentacin horizontal primaria como para la derivada. Disyuncin. Resulta sencillo establecer la disyuncin de la fragmentacin tanto para la primaria como para la derivada. En el primer caso, la disyuncin se garantiza en la medida en que los predicados mintrmino que determinan la fragmentacin son mutuamente exclusivos. En la fragmentacin derivada, sin embargo, implica un semi-yunto que aade complejidad al asunto. La disyuncin puede garantizarse si el grafo de yunto es simple. Si no es simple, ser necesario investigar los valores de las tuplas. En general, no se desea juntar una tupla de una relacin miembro con dos o ms tuplas de una relacin propietaria cuando estas tuplas se encuentran en fragmentos diferentes a los de la propietaria. Esto no es fcil de establecer, e ilustra por qu los esquemas de la fragmentacin derivada que generan un grafo de yunto simple son siempre ms atractivos.

2.4.2 Fragmentacin vertical.

Fragmentacin 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 igual a B(m), es decir el m-simo nmero de Bell [3]. Para valores grandes de m, B(m) mm; 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: 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. 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). 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. 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.

2.4.3 Fragmentacin hbrida.


Fragmentacin mixta o hbrida: En muchos casos la fragmentacin vertical u horizontal del esquema de la base de datos no ser suficiente para satisfacer los requisitos de las aplicaciones. Como ya se cit al comienzo de este documento podemos combinar ambas, utilizando por ello la denominada fragmentacin mixta. Cuando al proceso de fragmentacin vertical le sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentacin mixta HV. En el caso contrario, estaremos ante una fragmentacin VH. Una caracterstica comn a ambas es la generacin de rboles que representan la estructura de fragmentacin (vea la figura 8). Considere, por ejemplo, la relacin PROVINC. Recordar que se le aplic una fragmentacin horizontal de acuerdo al valor del atributo CCODZONA resultando cuatro fragmentos horizontales. Podramos pensar en aplicarle una nueva fragmentacin de carcter vertical. Entonces resultaran cuatro fragmentos horizontales divididos, por ejemplo, en dos fragmentos verticales. En este caso el nmero total de fragmentos ascendera, lgicamente, a ocho.

Figura 8. Estructura arbrea de fragmentacin mixta. No se desea entrar en excesivos detalles sobre las reglas y condiciones para efectuar la fragmentacin mixta. Entre otras razones porque, tanto a la fragmentacin HV como la fragmentacin VH, se le pueden aplicar los mismos criterios y reglas que a la fragmentacin horizontal y vertical. Es decir, volviendo al ejemplo anterior, al cual le practicamos la fragmentacin HV, al realizar la fragmentacin horizontal tal como se ha expuesto, lo que se obtienen no son ms que subrelaciones, la unin de las cuales da lugar a la relacin PROVINC. Por tanto, para fragmentar cada subrelacin sera perfectamente viable aplicarle el mtodo de fragmentacin vertical que se ha desarrollado. Como, en este caso, se han querido generar dos fragmentos verticales por cada uno horizontal, simplemente deberamos confeccionar la matriz de grupos afines (a travs del algoritmo BEA) para cada fragmento horizontal y aplicarle, posteriormente, el algoritmo de fragmentacin binaria PARTICIN. Tambin debe tenerse en cuenta el nmero de niveles arbreos que se generen, es decir, nadie impide que tras realizar una fragmentacin VH, podamos aplicar a los fragmentos resultantes una nueva fragmentacin vertical, y a estos ltimos una nueva fragmentacin horizontal, etc. Dicho nmero puede ser grande, pero tambin ser ciertamente finito. En el caso horizontal, el nivel mximo de profundidad se alcanzar cuando cada fragmento albergue una nica tupla, mientras que en el caso vertical el final llegar cuando cada fragmento contenga un nico atributo. Sin embargo, aunque no deba tomarse como dogma, el nmero de niveles no debera superar el par (VH y HV). El porqu de esta afirmacin es bien sencillo, piense, por ejemplo, en el coste que supondra realizar la unin o el yunto de una relacin con fragmentacin nivel 7. Evidentemente, el coste sera muy elevado y ese aumento de rendimiento que se persigue al aplicar estas tcnicas, quizs, no se produzca. Antes de pasar a estudiar el problema de la asignacin se desea comentar la tcnica de fragmentacin mixta basada en celdas [2]. Esta tcnica se basa en la generacin de celdas de rejilla. Qu es una celda de rejilla, podramos definirla como un fragmento horizontal y vertical simultneo. La tcnica aplica un algoritmo de fragmentacin vertical y otro horizontal de manera concurrente sobre la relacin. Los algoritmos realizan una fragmentacin mxima, es decir, se persigue que en cada celda nicamente haya un atributo y una tupla. Quiz el lector pueda encontrar el mtodo contradictorio con lo citado anteriormente respecto a la eficiencia, dada la gran cantidad de fragmentos generados, el nmero es, efectivamente, el mximo. Sin embargo, este slo es el primer paso del proceso. Una vez generadas las celdas se aplica un mtodo para optimizar la rejilla mediante fusin o desfragmentacin, de acuerdo, fundamentalmente, a las aplicaciones que acten sobre esos fragmentos. El mtodo, por tanto, persigue una fragmentacin los ms especfica posible acorde con las aplicaciones y los sitios existentes en la red. Informacin necesaria En esta etapa de la asignacin, necesitaremos datos cuantitativos sobre la base de datos, las aplicaciones que funcionan sobre ella, la red de comunicaciones, las caractersticas de proceso, y el lmite de almacenamiento de cada sitio de la red. Procederemos a discutirlos en detalle. Informacin de la base de datos. Para desarrollar la fragmentacin horizontal, definimos la selectividad de los mintrminos. Ahora, necesitamos extender esta definicin a los fragmentos y definir la selectividad de un fragmento Fj con respecto a una consulta qi. Es el nmero de tuplas de Fj a las que se necesita acceder para procesar qi. Este valor lo notaremos como seli(Fj). Otro elemento informativo de los fragmentos de la base de datos es su tamao. El tamao de un fragmento Fj viene dado por tamao(Fj) = card(Fj)*long(Fj), donde long(Fj) es la longitud (en octetos) de una tupla del fragmento Fj. Informacin de los sitios. Sobre cada ordenador necesitamos conocer sus capacidades de procesamiento y almacenamiento. Obviamente, estos valores pueden calcularse a travs de

funciones elaboradas o por simples estimaciones. La unidad de coste de almacenar datos en el sitio Sk ser denotada como UCAk. As mismo, especificaremos como medida de coste UPTk al coste de procesar una unidad de trabajo en el sitio Sk. La unidad de trabajo debera ser idntica a aquella utilizada en las medidas RR y UR. Informacin sobre la red. En nuestro modelo asumiremos la existencia de una red simple donde el coste de comunicaciones se define respecto a una trama de datos. Entonces gij nota el coste de comunicacin por trama entre los sitios Si y Sj. Para permitir el clculo del nmero de mensajes, usaremos ftamao como el tamao (en octetos) de una trama. Es evidente que existen modelos de red mucho ms elaborados que toman en cuenta las capacidades del canal, las distancias entre sitios, las caractersticas del protocolo, etc. Sin embargo, se cree que la derivacin de estas ecuaciones se sale fuera de este documento. Procesamiento distribuido de consultas Existen varios medios para calcular la respuesta a una consulta. En el caso de sistemas centralizado, el criterio principal para determinar el costo de una estrategia especifica es el nmero de accesos al disco. En un sistema distribuido es preciso tener en cuenta otros factores, como son:

El costo de transmisin de datos en la red. El beneficio potencial que supondra en la ejecucin el que varias localidades procesaran en paralelo partes de la consulta. El costo relativo de la transferencia de datos en la red y la transferencia de datos entre la memoria y el disco varia en forma considerable, dependiendo del tipo de red y de la velocidad de los discos. Por tanto, en un caso general, no podemos tener en cuenta solo los costos del disco o los de la red. es necesario llegar a un equilibrio adecuado entre los dos. Repeticin y fragmentacin Considere una consulta muy sencilla: encontrar todas las tuplas de la relacin depsito. Aunque la consulta es muy simple, de hecho es trivial; su procesamiento no es trivial, ya que es posible que la relacin depsito est fragmentada, repetido o las dos cosas, como ya se vio. Si la relacin deposito est repetida, es preciso decidir qu copia se va a utilizar. Si ninguna de las copias est fragmentada, se elige la copia que implique costos de transmisin ms reducidos. Pero si una copia est fragmentada, la eleccin no se tan sencilla, ya que es preciso calcular varios productos o uniones para reconstruir la relacin depsito. En tal caso, el nmero de estrategias para este ejemplo sencillo puede ser grande. De hecho, la eleccin de una estrategia puede ser una tarea tan compleja como hacer una consulta arbitraria. Procesamiento de interseccin simple Considere la expresin en lgebra relacional: cliente x deposito x sucursal Suponemos que ninguna de las tres relaciones est repetida o fragmentada y que cliente est almacenada en la localidad Lc, deposito en la Ld y sucursal en la Lb. Sea Li la localidad donde se origin la consulta. El sistema debe producir el resultado en la localidad Li. Entre las posibles estrategias para procesar esta consulta se encuentran las siguientes:

Enviar copias de las tres relaciones a la localidad Li. Al emplear las tcnicas de procesamiento de consulta, escoger una estrategia para procesar en forma local la consulta completa en Li. Enviar una copia de la relacin cliente a la localidad Li y calcular cliente x depsito de Ld. Enviar cliente x depsito de Ld a Lb, donde se calcula (cliente x depsito) x sucursal. El resultado de esta operacin es enviado a Li.

Pueden elaborarse estrategias similares a la anterior al intercambiar los papeles de Lc, Ld y Lb. No puede garantizarse que una estrategia sea la mejor en todos los casos. entre los factores que deben tomarse en cuenta estn la cantidad de datos que debe transmitirse, el costo de transmitir un bloque de datos entre dos localidades determinadas y la velocidad de procesamiento relativa en cada localidad.

Você também pode gostar