fragmentacion horizontal

18
UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES - UNIANDES – FACULTAD DE SISTEMAS MERCANTILES ESCUELA DE SISTEMAS TEMA : “FRAGMENTACIÓN Y TIPOS DE FRAGMENTACIÓN” AUTOR : DANIEL YANEZ, PATRICIA SALDARRIAGA TUTOR : ING. JAVIER ULLOA

Upload: jonas-segovia-velazquez

Post on 06-Oct-2015

7 views

Category:

Documents


0 download

DESCRIPTION

fragmentacion

TRANSCRIPT

UNIVERSIDAD REGIONAL AUTNOMA DE LOS ANDES- UNIANDES

FACULTAD DE SISTEMAS MERCANTILESESCUELA DE SISTEMAS TEMA: FRAGMENTACIN Y TIPOS DE FRAGMENTACIN

AUTOR: DANIEL YANEZ, PATRICIA SALDARRIAGA TUTOR: ING. JAVIER ULLOA

SEXTO SEMESTRESANTO DOMINGO ECUADOR - 2012

1. INTRODUCCIN

La fragmentacin es un fenmeno que se produce con el uso habitual de los dispositivos de almacenamiento, ya sea memoria principal (RAM) o dispositivos de almacenamiento secundario como Discos Duros memorias flash.

Los discos duros organizan la memoria en bloques de informacin que almacenan de forma continua para facilitar su recuperacin o modificacin, a las cabezas de lectura y escritura. Las modificaciones creadas por el usuario, como el almacenamiento y borrado de informacin, hacen que esta organizacin tenga que variar puesto que el disco duro utiliza siempre el primer espacio en blanco de que dispone para guardar la informacin, por lo que en ocasiones los archivos son "partidos" y almacenados en diversos bloques de memoria que pueden estar bastante alejados entre s. Esta fragmentacin provoca que las cabezas lectoras deban recorrer mucha ms distancia para leer la informacin completa de un archivo o programa aumentando considerablemente el tiempo necesario para la ejecucin (en caso de los programas) o visualizacin (en caso de archivos). La solucin a este fenmeno es el uso ms o menos regular de herramientas dedesfragmentacin

Aunque esta definicin toma como base los discos duros, la fragmentacin en el resto de dispositivos es un fenmeno similar.

2. OBJETIVOS:

GENERAL:

Investigar todo lo relacionado al funcionamiento y conceptos de la fragmentacin y tipos de fragmentacin en Datos Distribuidos. ESPECFICOS

Buscar en las diferentes fuentes de consulta existentes ya sea por intermedio de la web o algn otro medio relacionado a los conceptos de la fragmentacin y sus tipos. Tener claro el funcionamiento respecto a la fragmentacin y tipos de fragmentacin.

3. DESARROLLOFRAGMENTACINEl problema de fragmentacin se refiere al particionamiento de la informacin para distribuir cada parte a los diferentes sitios de la redOBJETIVOS DE LA FRAGMENTACINEl 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 trfico innecesario es producida por la necesidad de la actualizacin de las copias.VENTAJASAl 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.TIPOS DE FRAGMENTACIN DE DATOSExisten tres tipos de fragmentacin: Fragmentacin horizontal Fragmentacin vertical Fragmentacin hbridaDado que una relacin se corresponde esencialmente con una tabla y la cuestin consiste en dividirla en fragmentos menores, inmediatamente surgen dos alternativas lgicas para llevar a cabo el proceso: la divisin horizontal y la divisin vertical. La divisin o fragmentacin horizontal trabaja sobre las tuplas, dividiendo la relacin en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. La fragmentacin vertical, en cambio, se basa en los atributos de la relacin para efectuar la divisin. Estos dos tipos de particin podran considerarse los fundamentales y bsicos. Sin embargo, existen otras alternativas. Fundamentalmente, se habla de fragmentacin mixta o hbrida cuando el proceso de particin hace uso de los dos tipos anteriores. La fragmentacin mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentacin vertical y, posteriormente, aplicando la particin horizontal sobre los fragmentos verticales (denominada particin VH), o aplicando primero una divisin horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentacin vertical (llamada particin HV), o bien, de forma directa considerando la semntica de las transacciones. Otro enfoque distinto y relativamente nuevo, consiste en aplicar sobre una relacin, de forma simultnea y no secuencial, la fragmentacin horizontal y la fragmentacin vertical; en este caso, se generara una rejilla y los fragmentos formaran las celdas de esa rejilla, cada celda ser exactamente un fragmento vertical y un fragmento horizontal (ntese que en este caso el grado de fragmentacin alcanzado es mximo, y no por ello la descomposicin resultar ms eficiente).Volviendo a la figura, puede observarse como los casos C y D se basan en la mencionada generacin de la rejilla, con la diferencia que en el primero de ellos se produce una fusin, una desfragmentacin de las celdas, agrupndolas de la manera ms adecuada para obtener mayor rendimiento, ya que los fragmentos generados son muy pequeos. En el segundo caso se asignan las celdas a los sitios y luego se realiza una rigurosa optimizacin de cada sitio. El caso E sera aquel en el que se utiliza la fragmentacin VH o la fragmentacin HV.

Grado de fragmentacin. Cuando se va a fragmentar una base de datos deberamos sopesar qu grado de fragmentacin va a alcanzar, ya que ste ser un factor que influir notablemente en el desarrollo de la ejecucin de las consultas. El grado de fragmentacin puede variar desde una ausencia de la divisin, considerando a las relaciones unidades de fragmentacin; o bien, fragmentar a un grado en el cada tupla o atributo forme un fragmento. Ante estos dos casos extremos, evidentemente se ha de buscar un compromiso intermedio, el cual debera establecerse sobre las caractersticas de las aplicaciones que hacen uso de la base de datos. Dichas caractersticas se podrn formalizar en una serie de parmetros. De acuerdo con sus valores, se podr establecer el grado de fragmentacin del banco de datos.

GRADO DE FRAGMENTACIN.Cuando se va a fragmentar una base de datos deberamos sopesar qu grado de fragmentacin va a alcanzar, ya que ste ser un factor que influir notablemente en el desarrollo de la ejecucin de las consultas. El grado de fragmentacin puede variar desde una ausencia de la divisin, considerando a las relaciones unidades de fragmentacin; o bien, fragmentar a un grado en el cada tupla o atributo forme un fragmento. Ante estos dos casos extremos, evidentemente se ha de buscar un compromiso intermedio, el cual debera establecerse sobre las caractersticas de las aplicaciones que hacen uso de la base de datos. Dichas caractersticas se podrn formalizar en una serie de parmetros. De acuerdo con sus valores, se podr establecer el grado de fragmentacin del banco de datos.REGLAS DE CORRECCIN DE LA FRAGMENTACIN.A continuacin se enuncian las tres reglas que se han de cumplir durante el proceso de fragmentacin, las cuales asegurarn la ausencia de cambios semnticos en la base de datos durante el proceso.1. Complecin. Si una relacinRse descompone en una serie de fragmentosR1, R2, ..., Rn, cada elemento de datos que pueda encontrarse enRdeber poder encontrarse en uno o varios fragmentosRi. Esta propiedad extremadamente importante asegura que los datos de la relacin global se proyectan sobre los fragmentos sin prdida alguna. Tenga en cuenta que en el caso horizontal el elemento de datos, normalmente, es una tupla, mientras que en el caso vertical es un atributo.2. Reconstruccin. Si una relacinRse descompone en una serie de fragmentosR1, R2, ..., Rn, puede definirse una operador relacionaltal que3. Disyuncin. Si una relacinRse descompone horizontalmente en una serie de fragmentosR1, R2, ..., Rn, y un elemento de datos di se encuentra en algn fragmentoRj, entonces no se encuentra en otro fragmentoRk(kj). Esta regla asegura que los fragmentos horizontales sean disjuntos. Si una relacinRse descompone verticalmente, sus atributos primarios clave normalmente se repiten en todos sus fragmentos.ALTERNATIVAS DE ASIGNACIN.Partiendo del supuesto que el banco de datos se haya fragmentado correctamente, habr que decidir sobre la manera de asignar los fragmentos a los distintos sitios de la red. Cuando una serie de datos se asignan, stos pueden replicarse para mantener una copia. Las razones para la rplica giran en torno a la seguridad y a la eficiencia de las consultas de lectura. Si existen muchas reproducciones de un elemento de datos, en caso de fallo en el sistema se podra acceder a esos datos ubicados en sitios distintos. Adems, las consultas que acceden a los mismos datos pueden ejecutarse en paralelo, ya que habr copias en diferentes sitios. Por otra parte, la ejecucin de consultas de actualizacin, de escritura, implicara la actualizacin de todas las copias que existan en la red, cuyo proceso puede resultar problemtico y complicado. Por tanto, un buen parmetro para afrontar el grado de rplica consistira en sopesar la cantidad de consultas de lectura que se efectuarn, as como el nmero de consultas de escritura que se llevarn a cabo. En una red donde las consultas que se procesen sean mayoritariamente de lectura, se podra alcanzar un alto grado de rplica, no as en el caso contrario. Una base de datos fragmentada es aquella donde no existe rplica alguna. Los fragmentos se alojan en sitios donde nicamente existe una copia de cada uno de ellos a lo largo de toda la red. En caso de rplica, podemos considerar una base de datos totalmente replicada, donde existe una copia de todo el banco de datos en cada sitio, o considerar una base de datos parcialmente replicada donde existan copias de los fragmentos ubicados en diferentes sitios. El nmero de copias de un fragmento ser una de las posibles entradas a los algoritmos de asignacin, o una variable de decisin cuyo valor lo determine el algoritmo. La tabla compara las tres alternativas de rplica con respecto a distintas funciones de un sistema de base de datos distribuido.Rplica totalRplica parcialParticin

Procesamiento de consultasfcildificultadsimilar

Gestin del directoriofcil o inexistentedificultadsimilar

Control de concurrenciamoderadodifcilfcil

Seguridadmuy altaaltabaja

Realidadposible aplicacinrealistaposible aplicacin

Comparacin de las alternativas de rplica

INFORMACIN NECESARIA.Un aspecto importante en el diseo de la distribucin es la cantidad de factores que contribuyen a un diseo ptimo. La organizacin lgica de la base de datos, la localizacin de las aplicaciones, las caractersticas de acceso de las aplicaciones a la base de datos y las caractersticas del sistema en cada sitio, tienen una decisiva influencia sobre la distribucin. La informacin necesaria para el diseo de la distribucin puede dividirse en cuatro categoras: la informacin del banco de datos, la informacin de la aplicacin, la informacin sobre la red de ordenadores y la informacin sobre los ordenadores en s. Las dos ltimas son de carcter cuantitativo y servirn, principalmente, para desarrollar el proceso de asignacin. Se entrar en detalle sobre la informacin empleada cuando se aborden los distintos algoritmos de fragmentacin y asignacin.FRAGMENTACIN HORIZONTALLa fragmentacin horizontal primaria de una relacin se obtiene usando predicados que estn definidos en esa relacin. La fragmentacin horizontal derivada, por otra parte, es el particionamiento de una relacin como resultado de predicados que se definen en otra relacin.Para poder construir una fragmentacin, es necesario proporcionar informacin acerca de la base de datos y acerca de las aplicaciones que las utilizan. En primer trmino, es necesario proporcionar la informacin acerca del esquema conceptual global. En este sentido es importante dar informacin acerca de las relaciones que componen a la base de datos, la cordinalidad de cada relacin y las dependencias entre relaciones.En segundo lugar se debe proporcionar informacin acerca de la aplicacin que utiliza la base de datos. Este tipo de informacin es cuantitativa y consiste de los predicados usados en las consultas de usuario.FRAGMENTACIN VERTICALUna fragmentacin vertical de una relacin R produce fragmentos R1, R2, , Rr, cada uno de los cuales contiene un subconjunto de los atributos de R as como la llave primaria de R. El objetivo de la fragmentacin vertical es particionar una relacin en un conjunto de relaciones ms pequeas de manera que varias de las aplicaciones de usuario se ejecutarn sobre un fragmento. En este contexto, una fragmentacin ptima es aquella que produce un esquema de fragmentacin que minimiza el tiempo de ejecucin de las consultas de usuario.La fragmentacin vertical ha sido estudiada principalmente dentro del contexto de los sistemas de manejo de bases de datos centralizados como una herramienta de diseo, la cual permite que las consultas de usuario traten con relaciones ms pequeas haciendo, por tanto, un nmero menor de accesos a pginas.La fragmentacin vertical es inherentemente ms complicada que particionamiento horizontal ya que existe un gran nmero de alternativas para realizarla. Por lo tanto, se utilizan heursticas para hacer el particionamiento. Los dos enfoques bsicos son:Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algn criterio se unen para formar un solo fragmento.Divisin. Inicia con una sola relacin realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos.La fragmentacin vertical se realiza mediante el operador algebraico de proyecciny su notacin es la siguiente:Ri = PJ 1..i( R ) donde i = 1..n y Ri es el conjunto de fragmentos en que se divide la relacin original R.Veamos un ejemplo de este tipo de fragmentacin. Supongamos que tenemos una base de datos centralizada de unos grandes almacenes y que una de las relaciones es:EMPLEADOS (Apellido, nombre,direccin, telfono, funcin, localizacin, extensin)Se requieren distribuir los datos de EMPLEADOS teniendo en cuenta que se tiene dos sedes o nodos enlazados por una red de rea local y que en el NODO1 se encuentra el departamento de contabilidad y desde aqu se manejan los datos personales del empleado (nombre, apellidos, direccin, telfono y funcin), mientras que en el NODO2 se encuentra centralita y en este nodo se consultan los datos correspondientes a la localizacin del empleado (localizacin y extensin).Fragmentamos verticalmente la tabla EMPLEADOS creando dos nuevas relaciones:EMPLEADO_CONTABILIDAD = PJapellidos, nombre, direccin, telfono, funcin (EMPLEADOS)EMPLEADO_CENTRALITA = PJapellidos, nombre, localizacin, extensin (EMPLEADOS)La combinacin (JOIN) de ambas relaciones proporcionar la relacin original:EMPLEADOS = EMPLEADO_CONTABILIDAD JOIN apellidos, nombre EMPLEADO_CENTRALITAFRAGMENTACIN HIBRIDAEn 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.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.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 ltima 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. 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 la ms especfica posible acorde con las aplicaciones y los sitios existentes en la red.

4. CONCLUSIONES Esencialmente las instancias de relacin son tablas y una de las situaciones es encontrar un mtodo o forma de convertir la tabla completa en sub-tablas ms pequeas. Tenemos dos alternativas para esto, dividirlas en forma horizontal o en forma vertical.

La fragmentacin horizontal se da sobre las tuplas y la fragmentacin vertical se da sobre los atributos.

Si se usa ms de una fragmentacin estas deben estar anidadas y si se utilizan fragmentaciones anidadas de diferentes tipos la fragmentacin se convierte en una fragmentacin hibrida.

5. BIBLIOGRAFA http://www.monografias.com/trabajos82/base-datos-distribuidas/base-datos-distribuidas2.shtml#fragmentaa http://ccp.ucr.ac.cr/bvp/pdf/desarrollohumano/bd_distribuidas-rca.pdf http://html.rincondelvago.com/bases-de-datos-distribuidas_1.html http://luisantoniosr.webcindario.com/BDD/bdd_unidad2.html

Pgina 12