SlideShare una empresa de Scribd logo
1 de 14
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




                          SEXTO SEMESTRE

               SANTO DOMINGO – ECUADOR - 2012
1. INTRODUCCIÓN


  La fragmentación es un fenómeno 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 información que
  almacenan de forma continua para facilitar su recuperación o modificación, a
  las cabezas de lectura y escritura. Las modificaciones creadas por el usuario,
  como el almacenamiento y borrado de información, hacen que esta
  organización tenga que variar puesto que el disco duro utiliza siempre el primer
  espacio en blanco de que dispone para guardar la información, por lo que en
  ocasiones los archivos son "partidos" y almacenados en diversos bloques de
  memoria que pueden estar bastante alejados entre sí. Esta fragmentación
  provoca que las cabezas lectoras deban recorrer mucha más distancia para leer
  la   información   completa    de   un   archivo   o   programa    aumentando
  considerablemente el tiempo necesario para la ejecución (en caso de los
  programas) ovisualización (en caso de archivos). La solución a este fenómeno
  es el uso más o menos regular de herramientas de desfragmentación


  Aunque esta definición toma como base los discos duros, la fragmentación en
  el resto de dispositivos es un fenómeno similar.




                                                                         Página 2
2. OBJETIVOS:



GENERAL:


    Investigar todo lo relacionado al funcionamiento y conceptos de
    la fragmentación y tipos de fragmentación en Datos Distribuidos.


ESPECÍFICOS




    Buscar en las diferentes fuentes de consulta existentes ya sea por
    intermedio de la web o algún otro medio relacionado                 a
    losconceptos de la fragmentación y sus tipos.



    Tener claro el funcionamiento respecto a la fragmentación y tipos
    de fragmentación.




                                                                       Página 3
3. DESARROLLO
                                FRAGMENTACIÓN

El problema de fragmentación se refiere al particionamiento de la información para
distribuir cada parte a los diferentes sitios de la red

OBJETIVOS DE LA FRAGMENTACIÓN

El objetivo de la fragmentación consiste en dividir la relación en un conjunto de
relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso
de un fragmento.

Sobre este marco, una fragmentación óptima es aquella que produce un esquema de
división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos
fragmentos.

La unidad de fragmentación ideal no es la tabla sino una subdivisión 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 aplicación, es de esperar un incremento en el rendimiento.
       Si múltiples vistas de diferentes aplicaciones están definidas sobre una tabla no
       fragmentada, se tiene :

       Si la tabla no está replicada entonces se produce generación de tráfico por
       accesos remotos.
       Si la tabla está replicada en todos o algunos de los sitios donde residen cada
       una de las aplicaciones entonces la generación de tráfico innecesario es
       producida por la necesidad de la actualización de las copias.

VENTAJAS

Al descomponer una relación en fragmentos (unidades de distribución) :

       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 paralelización de consultas al poder descomponerlas en
       subconsultas, cada una de la cuales trabajará con un fragmento diferente
       incrementándose así el rendimiento.

                                                                                Página 4
DESVENTAJAS

       Degradación 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 semántico se dificulta y el rendimiento se degrada debido que la
       verificación de restricciones de integridad (claves ajenas, uniques, etc) implican
       buscar fragmentos en múltiples localizaciones.

TIPOS DE FRAGMENTACIÓN DE DATOS

Existen tres tipos de fragmentación:

       Fragmentación horizontal
       Fragmentación vertical
       Fragmentación híbrida

Dado que una relación se corresponde esencialmente con una tabla y la cuestión
consiste en dividirla en fragmentos menores, inmediatamente surgen dos alternativas
lógicas para llevar a cabo el proceso: la división horizontal y la división vertical.

La división o fragmentación horizontal trabaja sobre las tuplas, dividiendo la relación
en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera.
La fragmentación vertical, en cambio, se basa en los atributos de la relación para
efectuar la división. Estos dos tipos de partición podrían considerarse los
fundamentales y básicos. Sin embargo, existen otras alternativas. Fundamentalmente,
se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de
los dos tipos anteriores. La fragmentación mixta puede llevarse a cabo de tres formas
diferentes: desarrollando primero la fragmentación vertical y, posteriormente,
aplicando la partición horizontal sobre los fragmentos verticales (denominada
partición VH), o aplicando primero una división horizontal para luego, sobre los
fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV),
o bien, de forma directa considerando la semántica de las transacciones. Otro enfoque
distinto y relativamente nuevo, consiste en aplicar sobre una relación, de forma
simultánea y no secuencial, la fragmentación horizontal y la fragmentación 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 (nótese
que en este caso el grado de fragmentación alcanzado es máximo, y no por ello la
descomposición resultará más eficiente).

Volviendo a la figura, puede observarse como los casos C y D se basan en la
mencionada generación de la rejilla, con la diferencia que en el primero de ellos se
produce una fusión, una desfragmentación de las celdas, agrupándolas de la manera

                                                                                Página 5
más adecuada para obtener mayor rendimiento, ya que los fragmentos generados son
muy pequeños. En el segundo caso se asignan las celdas a los sitios y luego se realiza
una rigurosa optimización de cada sitio. El caso E sería aquel en el que se utiliza la
fragmentación VH o la fragmentación HV.




Grado de fragmentación. Cuando se va a fragmentar una base de datos deberíamos
sopesar qué grado de fragmentación va a alcanzar, ya que éste será un factor que
influirá notablemente en el desarrollo de la ejecución de las consultas. El grado de
fragmentación puede variar desde una ausencia de la división, considerando a las
relaciones unidades de fragmentación; 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 debería establecerse sobre las
características de las aplicaciones que hacen uso de la base de datos. Dichas
características se podrán formalizar en una serie de parámetros. De acuerdo con sus
valores, se podrá establecer el grado de fragmentación del banco de datos.




                                                                             Página 6
GRADO DE FRAGMENTACIÓN.

Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de
fragmentación va a alcanzar, ya que éste será un factor que influirá notablemente en
el desarrollo de la ejecución de las consultas. El grado de fragmentación puede variar
desde una ausencia de la división, considerando a las relaciones unidades de
fragmentación; 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 debería establecerse sobre las características de las
aplicaciones que hacen uso de la base de datos. Dichas características se podrán
formalizar en una serie de parámetros. De acuerdo con sus valores, se podrá
establecer el grado de fragmentación del banco de datos.

REGLAS DE CORRECCIÓN DE LA FRAGMENTACIÓN.

A continuación se enuncian las tres reglas que se han de cumplir durante el proceso de
fragmentación, las cuales asegurarán la ausencia de cambios semánticos en la base de
datos durante el proceso.

   1. Compleción. Si una relación R se descompone en una serie de fragmentos R1,
      R2, ..., Rn, cada elemento de datos que pueda encontrarse en R deberá poder
      encontrarse en uno o varios fragmentos Ri. Esta propiedad extremadamente
      importante asegura que los datos de la relación global se proyectan sobre los
      fragmentos sin pérdida 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. Reconstrucción. Si una relación R se descompone en una serie de
      fragmentos R1, R2, ..., Rn, puede definirse una operador relacional tal que


   3. Disyunción. Si una relación R se descompone horizontalmente en una serie de
      fragmentos R1, R2, ..., Rn, y un elemento de datos di se encuentra en algún
      fragmento Rj, entonces no se encuentra en otro fragmento Rk (k j). Esta regla
      asegura que los fragmentos horizontales sean disjuntos. Si una relación R se
      descompone verticalmente, sus atributos primarios clave normalmente se
      repiten en todos sus fragmentos.

ALTERNATIVAS DE ASIGNACIÓN.

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


                                                                               Página 7
red. Cuando una serie de datos se asignan, éstos pueden replicarse para mantener una
copia. Las razones para la réplica 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 podría acceder a esos datos ubicados en sitios distintos.
Además, las consultas que acceden a los mismos datos pueden ejecutarse en paralelo,
ya que habrá copias en diferentes sitios. Por otra parte, la ejecución de consultas de
actualización, de escritura, implicaría la actualización de todas las copias que existan
en la red, cuyo proceso puede resultar problemático y complicado. Por tanto, un buen
parámetro para afrontar el grado de réplica consistiría en sopesar la cantidad de
consultas de lectura que se efectuarán, así como el número de consultas de escritura
que se llevarán a cabo. En una red donde las consultas que se procesen sean
mayoritariamente de lectura, se podría alcanzar un alto grado de réplica, no así en el
caso contrario. Una base de datos fragmentada es aquella donde no existe réplica
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 réplica, 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 número de copias de un fragmento
será una de las posibles entradas a los algoritmos de asignación, o una variable de
decisión cuyo valor lo determine el algoritmo. La tabla compara las tres alternativas de
réplica con respecto a distintas funciones de un sistema de base de datos distribuido.


                                Réplica total       Réplica parcial Partición

  Procesamiento de consultas fácil                  dificultad      similar

  Gestión del directorio        fácil o inexistente dificultad      similar

  Control de concurrencia       moderado            difícil         fácil

  Seguridad                     muy alta            alta            baja

  Realidad                      posible aplicación realista         posible aplicación

  Comparación de las alternativas de réplica



INFORMACIÓN NECESARIA.

Un aspecto importante en el diseño de la distribución es la cantidad de factores que
contribuyen a un diseño óptimo. La organización lógica de la base de datos, la
localización de las aplicaciones, las características de acceso de las aplicaciones a la
base de datos y las características del sistema en cada sitio, tienen una decisiva
influencia sobre la distribución. La información necesaria para el diseño de la

                                                                                Página 8
distribución puede dividirse en cuatro categorías: la información del banco de datos, la
información de la aplicación, la información sobre la red de ordenadores y la
información sobre los ordenadores en sí. Las dos últimas son de carácter cuantitativo y
servirán, principalmente, para desarrollar el proceso de asignación. Se entrará en
detalle sobre la información empleada cuando se aborden los distintos algoritmos de
fragmentación y asignación.

FRAGMENTACIÓN HORIZONTAL

La fragmentación horizontal primaria de una relación se obtiene usando predicados
que están definidos en esa relación. La fragmentación horizontal derivada, por otra
parte, es el particionamiento de una relación como resultado de predicados que se
definen en otra relación.

Para poder construir una fragmentación, es necesario proporcionar información acerca
de la base de datos y acerca de las aplicaciones que las utilizan. En primer término, es
necesario proporcionar la información acerca del esquema conceptual global. En este
sentido es importante dar información acerca de las relaciones que componen a la
base de datos, la cordinalidad de cada relación y las dependencias entre relaciones.

En segundo lugar se debe proporcionar información acerca de la aplicación que utiliza
la base de datos. Este tipo de información es cuantitativa y consiste de los predicados
usados en las consultas de usuario.

FRAGMENTACIÓN VERTICAL

Una fragmentación vertical de una relación 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 fragmentación vertical es particionar una relación en un
conjunto de relaciones más pequeñas de manera que varias de las aplicaciones de
usuario se ejecutarán sobre un fragmento. En este contexto, una fragmentación
“óptima” es aquella que produce un esquema de fragmentación que minimiza el
tiempo de ejecución de las consultas de usuario.

La fragmentación vertical ha sido estudiada principalmente dentro del contexto de los
sistemas de manejo de bases de datos centralizados como una herramienta de diseño,
la cual permite que las consultas de usuario traten con relaciones más pequeñas
haciendo, por tanto, un número menor de accesos a páginas.

La fragmentación vertical es inherentemente más complicada que particionamiento
horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se
utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son:



                                                                                Página 9
Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos
de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento.

División. Inicia con una sola relación realizar un particionamiento basado en el
comportamiento de acceso de las consultas sobre los atributos.

La fragmentación vertical se realiza mediante el operador algebraico de proyección y
su notación es la siguiente:

Ri = PJ 1..i( R ) donde i = 1..n y Ri es el conjunto de fragmentos en que se divide la
relación original R.

Veamos un ejemplo de este tipo de fragmentación. Supongamos que tenemos una
base de datos centralizada de unos grandes almacenes y que una de las relaciones es:

EMPLEADOS(Apellido, nombre, dirección, teléfono, función, localización, extensión)

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, dirección, teléfono y función), mientras que en el
NODO2 se encuentra centralita y en este nodo se consultan los datos correspondientes
a la localización del empleado (localización y extensión).

Fragmentamos verticalmente la tabla EMPLEADOS creando dos nuevas relaciones:

EMPLEADO_CONTABILIDAD          =    PJapellidos,   nombre,      dirección,     teléfono,
función(EMPLEADOS)

EMPLEADO_CENTRALITA = PJapellidos, nombre, localización, extensión (EMPLEADOS)

La combinación(JOIN) de ambas relaciones proporcionará la relación original:

EMPLEADOS   =     EMPLEADO_CONTABILIDAD                JOIN     apellidos,      nombre
EMPLEADO_CENTRALITA

FRAGMENTACIÓN HIBRIDA

En muchos casos la fragmentación 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 fragmentación mixta. Cuando al proceso de fragmentación vertical le
sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos
verticales resultantes, se habla de la fragmentación mixta HV. En el caso contrario,

                                                                               Página 10
estaremos ante una fragmentación VH. Una característica común a ambas es la
generación de árboles que representan la estructura de fragmentación.

Considere, por ejemplo, la relación PROVINC. Recordará que se le aplicó una
fragmentación horizontal de acuerdo al valor del atributo CCODZONA resultando
cuatro fragmentos horizontales. Podríamos pensar en aplicarle una nueva
fragmentación de carácter vertical. Entonces resultarían cuatro fragmentos
horizontales divididos, por ejemplo, en dos fragmentos verticales. En este caso el
número total de fragmentos ascendería, lógicamente, a ocho.

No se desea entrar en excesivos detalles sobre las reglas y condiciones para efectuar la
fragmentación mixta. Entre otras razones porque, tanto a la fragmentación HV como la
fragmentación VH, se le pueden aplicar los mismos criterios y reglas que a la
fragmentación horizontal y vertical. Es decir, volviendo al ejemplo anterior, al cual le
practicamos la fragmentación HV, al realizar la fragmentación horizontal tal como se
ha expuesto, lo que se obtienen no son más que subrelaciones, la unión de las cuales
da lugar a la relación PROVINC. Por tanto, para fragmentar cada subrelación sería
perfectamente viable aplicarle el método de fragmentación vertical que se ha
desarrollado. Como, en este caso, se han querido generar dos fragmentos verticales
por cada uno horizontal, simplemente deberíamos confeccionar la matriz de grupos
afines (a través del algoritmo BEA) para cada fragmento horizontal y aplicarle,
posteriormente, el algoritmo de fragmentación binaria PARTICIÓN.

También debe tenerse en cuenta el número de niveles arbóreos que se generen, es
decir, nadie impide que tras realizar una fragmentación VH, podamos aplicar a los
fragmentos resultantes una nueva fragmentación vertical, y a estos última una nueva
fragmentación horizontal, etc. Dicho número puede ser grande, pero también será
ciertamente finito. En el caso horizontal, el nivel máximo 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 número de niveles no debería superar el par (VH y
HV). El porqué de esta afirmación es bien sencillo, piense, por ejemplo, en el coste que
supondría realizar la unión o el yunto de una relación con fragmentación nivel 7.
Evidentemente, el coste sería muy elevado y ese aumento de rendimiento que se
persigue al aplicar estas técnicas, quizás, no se produzca.

Antes de pasar a estudiar el problema de la asignación se desea comentar la técnica de
fragmentación mixta basada en celdas. Esta técnica se basa en la generación de celdas
de rejilla. Qué es una celda de rejilla, podríamos definirla como un fragmento
horizontal y vertical simultáneo. La técnica aplica un algoritmo de fragmentación
vertical y otro horizontal de manera concurrente sobre la relación. Los algoritmos
realizan una fragmentación máxima, es decir, se persigue que en cada celda
únicamente haya un atributo y una tupla. Quizá el lector pueda encontrar el método

                                                                              Página 11
contradictorio con lo citado anteriormente respecto a la eficiencia, dada la gran
cantidad de fragmentos generados, el número es, efectivamente, el máximo. Sin
embargo, este sólo es el primer paso del proceso. Una vez generadas las celdas se
aplica un método para optimizar la rejilla mediante fusión o desfragmentación, de
acuerdo, fundamentalmente, a las aplicaciones que actúen sobre esos fragmentos. El
método, por tanto, persigue una fragmentación la más específica posible acorde con
las aplicaciones y los sitios existentes en la red.




   4. CONCLUSIONES
          Esencialmente las instancias de relación son tablas y una de las
          situaciones es encontrar un método o forma de convertir la tabla
          completa en sub-tablas más pequeñas. Tenemos dos alternativas para
          esto, dividirlas en forma horizontal o en forma vertical.



          La fragmentación horizontal se da sobre las tuplas y la fragmentación
          vertical se da sobre los atributos.



          Si se usa más de una fragmentación estas deben estar anidadas y si se
          utilizan fragmentaciones anidadas de diferentes tipos la fragmentación
          se convierte en una fragmentación hibrida.




                                                                         Página 12
Consiste del particionamiento en tuplas de una
                                                         relación global en subconjuntos, donde cada
                                                         subconjunto puede contener datos que tienen
                                                         propiedades comunes y se puede definir expresando
                                                         cada fragmento como una operación de selección
                                                         sobre la relación global.
                                         FRAGMENTACIÓN
                                           HORIZONTAL    Ejemplo    Las siguientes relaciones definen una
                                                         fragmentación horizontal derivada de la relación.
                                                         Almacen(cod_almacen, dirección, teléfono, área)
                                                         Se desea distribuir los datos en dos sedes ubicadas en
                                                         el área norte y sur
                                                         Almacensur= select * from almacen where area= ‘sur’
                                                         Almacensur= select * from almacen where area=
       El objetivo de la fragmentación                   ‘Norte’
       es encontrar un nivel de
       particionamiento adecuado en
       el rango que va desde tuplas o
       atributos hasta relaciones                        La fragmentación vertical es inherentemente más
       completas.                                        complicada que particionamiento horizontal ya que
                                                         existe un gran número de alternativas para realizarla.
                                                         Por lo tanto, se utilizan heurísticas para hacer el
                                                         particionamiento. Los dos enfoques básicos son:
                                                         Agrupamiento. Inicia asignando cada atributo a un
                                                         fragmento, y en cada paso, algunos de los fragmentos
                                                         satisfaciendo algún criterio se unen para formar un
                                                         solo fragmento.
                                                         División. Inicia con una sola relación realizar un
                                         FRAGMENTACIÓN   particionamiento basado en el comportamiento de
FRAGMENTACIÓN                               VERTICAL     acceso de las consultas sobre los atributos.


                                                         La fragmentación vertical es la subdivisión de
                                                         atributos en grupos. Los fragmentos se obtienen
                                                         proyectando la relación global sobre cada grupo.
                                                         Una fragmentación vertical de esta relación puede
                                                         ser definida como:
                                                         EMP1 = select cedula, nombre, dirección, teléfono
                                                         From EMP
                                                         EMP2 = select cedula, función, localización, extensión
                                                         , cod_almacen From EMP
                                                         Se desea distribuir los datos de EMP1 en la sede
                                                         norte, los demás datos de EMP2 se llevan a las dos
                                                         localidades de la sede norte y sur.



                                                          se habla de fragmentación mixta o híbrida cuando el
                                                          proceso de partición hace uso de los dos tipos
                                                          anteriores. La fragmentación mixta puede llevarse a
                                                          cabo de tres formas diferentes: desarrollando
                                         FRAGMENTACIÓN    primero         la      fragmentación        vertical
                                            HIBRIDA       y, posteriormente, aplicando la partición horizontal
                                                          sobre los fragmentos verticales (denominada
                                                          partición VH), o aplicando primero una división
                                                          horizontal para luego, sobre los fragmentos
                                                          generados, desarrollar una fragmentación vertical
                                                          (llamada partición HV), o bien, de forma directa
                                                          considerando la semántica de las transacciones.




                                                                                   Página 13
5. BIBLIOGRAFÍA

      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




                                                                     Página 14

Más contenido relacionado

La actualidad más candente

Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windowsomfib123
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 
Proyecto De Base De Datos
Proyecto De Base De DatosProyecto De Base De Datos
Proyecto De Base De Datosguesta67b7c
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos DistribuidasJorge Guerra
 
Seguridad y respaldo de base de datos
Seguridad y respaldo de base de datosSeguridad y respaldo de base de datos
Seguridad y respaldo de base de datosCarlos Guerrero
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigaciónJhoel Dgez Garcia
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructuraProf. Javier Troya
 
Qué Son Las Bases De Datos
Qué Son Las Bases De DatosQué Son Las Bases De Datos
Qué Son Las Bases De DatosMarichelo Gómez
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datosZcnp1234
 

La actualidad más candente (20)

Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 
Proyecto De Base De Datos
Proyecto De Base De DatosProyecto De Base De Datos
Proyecto De Base De Datos
 
3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO
 
Mapa mental de hilos
Mapa mental de hilosMapa mental de hilos
Mapa mental de hilos
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos Distribuidas
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Seguridad y respaldo de base de datos
Seguridad y respaldo de base de datosSeguridad y respaldo de base de datos
Seguridad y respaldo de base de datos
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigación
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Qué Son Las Bases De Datos
Qué Son Las Bases De DatosQué Son Las Bases De Datos
Qué Son Las Bases De Datos
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datos
 

Similar a Fragmentacion

Fragmentacion marco macao
Fragmentacion marco macaoFragmentacion marco macao
Fragmentacion marco macaoAntonio Sanchez
 
Trabajo bdd
Trabajo bddTrabajo bdd
Trabajo bddqweryy
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Liz Ocampo
 
Bd centralizadas distribuidas
Bd centralizadas distribuidasBd centralizadas distribuidas
Bd centralizadas distribuidasJuanSaldaaRived
 
Arquitecturas de bd
Arquitecturas de bdArquitecturas de bd
Arquitecturas de bdLuis Jherry
 
Bases de datos distribuidas
Bases de datos distribuidasBases de datos distribuidas
Bases de datos distribuidasMax Perez
 
Bdii 26 distribuidas
Bdii 26 distribuidasBdii 26 distribuidas
Bdii 26 distribuidasRody Paredes
 
Bdd heterogeneas-julissa-aguilar-sindy-j.-velasco
Bdd heterogeneas-julissa-aguilar-sindy-j.-velascoBdd heterogeneas-julissa-aguilar-sindy-j.-velasco
Bdd heterogeneas-julissa-aguilar-sindy-j.-velascoJhoel Dgez Garcia
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos DistribuidasAndresSuarez
 
Inv Aplicada 3
Inv Aplicada 3Inv Aplicada 3
Inv Aplicada 3rgv127
 
La interfaz del servidor de directorios
La interfaz del servidor de directoriosLa interfaz del servidor de directorios
La interfaz del servidor de directoriospaola2545
 
La interfaz del servidor de directorios
La interfaz del servidor de directoriosLa interfaz del servidor de directorios
La interfaz del servidor de directoriospaola2545
 
Bases de datos Distribuidas
Bases de datos DistribuidasBases de datos Distribuidas
Bases de datos DistribuidasPatricia Flores
 

Similar a Fragmentacion (20)

Fragmentacion marco macao
Fragmentacion marco macaoFragmentacion marco macao
Fragmentacion marco macao
 
Bbd ddistribuidas
Bbd ddistribuidasBbd ddistribuidas
Bbd ddistribuidas
 
Trabajo bdd
Trabajo bddTrabajo bdd
Trabajo bdd
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
 
Bd centralizadas distribuidas
Bd centralizadas distribuidasBd centralizadas distribuidas
Bd centralizadas distribuidas
 
Arquitecturas de bd
Arquitecturas de bdArquitecturas de bd
Arquitecturas de bd
 
Bases de datos distribuidas
Bases de datos distribuidasBases de datos distribuidas
Bases de datos distribuidas
 
Bdii 26 distribuidas
Bdii 26 distribuidasBdii 26 distribuidas
Bdii 26 distribuidas
 
Bdd heterogeneas-julissa-aguilar-sindy-j.-velasco
Bdd heterogeneas-julissa-aguilar-sindy-j.-velascoBdd heterogeneas-julissa-aguilar-sindy-j.-velasco
Bdd heterogeneas-julissa-aguilar-sindy-j.-velasco
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos Distribuidas
 
Inv Aplicada 3
Inv Aplicada 3Inv Aplicada 3
Inv Aplicada 3
 
La interfaz del servidor de directorios
La interfaz del servidor de directoriosLa interfaz del servidor de directorios
La interfaz del servidor de directorios
 
La interfaz del servidor de directorios
La interfaz del servidor de directoriosLa interfaz del servidor de directorios
La interfaz del servidor de directorios
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Base de datos1024
Base de datos1024Base de datos1024
Base de datos1024
 
Bdd expo
Bdd expoBdd expo
Bdd expo
 
ATOMICIDAD
ATOMICIDADATOMICIDAD
ATOMICIDAD
 
Bases de datos Distribuidas
Bases de datos DistribuidasBases de datos Distribuidas
Bases de datos Distribuidas
 
SEGMENTACION
SEGMENTACIONSEGMENTACION
SEGMENTACION
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 

Fragmentacion

  • 1. 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 SEXTO SEMESTRE SANTO DOMINGO – ECUADOR - 2012
  • 2. 1. INTRODUCCIÓN La fragmentación es un fenómeno 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 información que almacenan de forma continua para facilitar su recuperación o modificación, a las cabezas de lectura y escritura. Las modificaciones creadas por el usuario, como el almacenamiento y borrado de información, hacen que esta organización tenga que variar puesto que el disco duro utiliza siempre el primer espacio en blanco de que dispone para guardar la información, por lo que en ocasiones los archivos son "partidos" y almacenados en diversos bloques de memoria que pueden estar bastante alejados entre sí. Esta fragmentación provoca que las cabezas lectoras deban recorrer mucha más distancia para leer la información completa de un archivo o programa aumentando considerablemente el tiempo necesario para la ejecución (en caso de los programas) ovisualización (en caso de archivos). La solución a este fenómeno es el uso más o menos regular de herramientas de desfragmentación Aunque esta definición toma como base los discos duros, la fragmentación en el resto de dispositivos es un fenómeno similar. Página 2
  • 3. 2. OBJETIVOS: GENERAL: Investigar todo lo relacionado al funcionamiento y conceptos de la fragmentación y tipos de fragmentación en Datos Distribuidos. ESPECÍFICOS Buscar en las diferentes fuentes de consulta existentes ya sea por intermedio de la web o algún otro medio relacionado a losconceptos de la fragmentación y sus tipos. Tener claro el funcionamiento respecto a la fragmentación y tipos de fragmentación. Página 3
  • 4. 3. DESARROLLO FRAGMENTACIÓN El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red OBJETIVOS DE LA FRAGMENTACIÓN El objetivo de la fragmentación consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento. Sobre este marco, una fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos. La unidad de fragmentación ideal no es la tabla sino una subdivisión 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 aplicación, es de esperar un incremento en el rendimiento. Si múltiples vistas de diferentes aplicaciones están definidas sobre una tabla no fragmentada, se tiene : Si la tabla no está replicada entonces se produce generación de tráfico por accesos remotos. Si la tabla está replicada en todos o algunos de los sitios donde residen cada una de las aplicaciones entonces la generación de tráfico innecesario es producida por la necesidad de la actualización de las copias. VENTAJAS Al descomponer una relación en fragmentos (unidades de distribución) : 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 paralelización de consultas al poder descomponerlas en subconsultas, cada una de la cuales trabajará con un fragmento diferente incrementándose así el rendimiento. Página 4
  • 5. DESVENTAJAS Degradación 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 semántico se dificulta y el rendimiento se degrada debido que la verificación de restricciones de integridad (claves ajenas, uniques, etc) implican buscar fragmentos en múltiples localizaciones. TIPOS DE FRAGMENTACIÓN DE DATOS Existen tres tipos de fragmentación: Fragmentación horizontal Fragmentación vertical Fragmentación híbrida Dado que una relación se corresponde esencialmente con una tabla y la cuestión consiste en dividirla en fragmentos menores, inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. La división o fragmentación horizontal trabaja sobre las tuplas, dividiendo la relación en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. La fragmentación vertical, en cambio, se basa en los atributos de la relación para efectuar la división. Estos dos tipos de partición podrían considerarse los fundamentales y básicos. Sin embargo, existen otras alternativas. Fundamentalmente, se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y, posteriormente, aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones. Otro enfoque distinto y relativamente nuevo, consiste en aplicar sobre una relación, de forma simultánea y no secuencial, la fragmentación horizontal y la fragmentación 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 (nótese que en este caso el grado de fragmentación alcanzado es máximo, y no por ello la descomposición resultará más eficiente). Volviendo a la figura, puede observarse como los casos C y D se basan en la mencionada generación de la rejilla, con la diferencia que en el primero de ellos se produce una fusión, una desfragmentación de las celdas, agrupándolas de la manera Página 5
  • 6. más adecuada para obtener mayor rendimiento, ya que los fragmentos generados son muy pequeños. En el segundo caso se asignan las celdas a los sitios y luego se realiza una rigurosa optimización de cada sitio. El caso E sería aquel en el que se utiliza la fragmentación VH o la fragmentación HV. Grado de fragmentación. Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de fragmentación va a alcanzar, ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de las consultas. El grado de fragmentación puede variar desde una ausencia de la división, considerando a las relaciones unidades de fragmentación; 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 debería establecerse sobre las características de las aplicaciones que hacen uso de la base de datos. Dichas características se podrán formalizar en una serie de parámetros. De acuerdo con sus valores, se podrá establecer el grado de fragmentación del banco de datos. Página 6
  • 7. GRADO DE FRAGMENTACIÓN. Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de fragmentación va a alcanzar, ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de las consultas. El grado de fragmentación puede variar desde una ausencia de la división, considerando a las relaciones unidades de fragmentación; 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 debería establecerse sobre las características de las aplicaciones que hacen uso de la base de datos. Dichas características se podrán formalizar en una serie de parámetros. De acuerdo con sus valores, se podrá establecer el grado de fragmentación del banco de datos. REGLAS DE CORRECCIÓN DE LA FRAGMENTACIÓN. A continuación se enuncian las tres reglas que se han de cumplir durante el proceso de fragmentación, las cuales asegurarán la ausencia de cambios semánticos en la base de datos durante el proceso. 1. Compleción. Si una relación R se descompone en una serie de fragmentos R1, R2, ..., Rn, cada elemento de datos que pueda encontrarse en R deberá poder encontrarse en uno o varios fragmentos Ri. Esta propiedad extremadamente importante asegura que los datos de la relación global se proyectan sobre los fragmentos sin pérdida 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. Reconstrucción. Si una relación R se descompone en una serie de fragmentos R1, R2, ..., Rn, puede definirse una operador relacional tal que 3. Disyunción. Si una relación R se descompone horizontalmente en una serie de fragmentos R1, R2, ..., Rn, y un elemento de datos di se encuentra en algún fragmento Rj, entonces no se encuentra en otro fragmento Rk (k j). Esta regla asegura que los fragmentos horizontales sean disjuntos. Si una relación R se descompone verticalmente, sus atributos primarios clave normalmente se repiten en todos sus fragmentos. ALTERNATIVAS DE ASIGNACIÓN. 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 Página 7
  • 8. red. Cuando una serie de datos se asignan, éstos pueden replicarse para mantener una copia. Las razones para la réplica 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 podría acceder a esos datos ubicados en sitios distintos. Además, las consultas que acceden a los mismos datos pueden ejecutarse en paralelo, ya que habrá copias en diferentes sitios. Por otra parte, la ejecución de consultas de actualización, de escritura, implicaría la actualización de todas las copias que existan en la red, cuyo proceso puede resultar problemático y complicado. Por tanto, un buen parámetro para afrontar el grado de réplica consistiría en sopesar la cantidad de consultas de lectura que se efectuarán, así como el número de consultas de escritura que se llevarán a cabo. En una red donde las consultas que se procesen sean mayoritariamente de lectura, se podría alcanzar un alto grado de réplica, no así en el caso contrario. Una base de datos fragmentada es aquella donde no existe réplica 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 réplica, 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 número de copias de un fragmento será una de las posibles entradas a los algoritmos de asignación, o una variable de decisión cuyo valor lo determine el algoritmo. La tabla compara las tres alternativas de réplica con respecto a distintas funciones de un sistema de base de datos distribuido. Réplica total Réplica parcial Partición Procesamiento de consultas fácil dificultad similar Gestión del directorio fácil o inexistente dificultad similar Control de concurrencia moderado difícil fácil Seguridad muy alta alta baja Realidad posible aplicación realista posible aplicación Comparación de las alternativas de réplica INFORMACIÓN NECESARIA. Un aspecto importante en el diseño de la distribución es la cantidad de factores que contribuyen a un diseño óptimo. La organización lógica de la base de datos, la localización de las aplicaciones, las características de acceso de las aplicaciones a la base de datos y las características del sistema en cada sitio, tienen una decisiva influencia sobre la distribución. La información necesaria para el diseño de la Página 8
  • 9. distribución puede dividirse en cuatro categorías: la información del banco de datos, la información de la aplicación, la información sobre la red de ordenadores y la información sobre los ordenadores en sí. Las dos últimas son de carácter cuantitativo y servirán, principalmente, para desarrollar el proceso de asignación. Se entrará en detalle sobre la información empleada cuando se aborden los distintos algoritmos de fragmentación y asignación. FRAGMENTACIÓN HORIZONTAL La fragmentación horizontal primaria de una relación se obtiene usando predicados que están definidos en esa relación. La fragmentación horizontal derivada, por otra parte, es el particionamiento de una relación como resultado de predicados que se definen en otra relación. Para poder construir una fragmentación, es necesario proporcionar información acerca de la base de datos y acerca de las aplicaciones que las utilizan. En primer término, es necesario proporcionar la información acerca del esquema conceptual global. En este sentido es importante dar información acerca de las relaciones que componen a la base de datos, la cordinalidad de cada relación y las dependencias entre relaciones. En segundo lugar se debe proporcionar información acerca de la aplicación que utiliza la base de datos. Este tipo de información es cuantitativa y consiste de los predicados usados en las consultas de usuario. FRAGMENTACIÓN VERTICAL Una fragmentación vertical de una relación 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 fragmentación vertical es particionar una relación en un conjunto de relaciones más pequeñas de manera que varias de las aplicaciones de usuario se ejecutarán sobre un fragmento. En este contexto, una fragmentación “óptima” es aquella que produce un esquema de fragmentación que minimiza el tiempo de ejecución de las consultas de usuario. La fragmentación vertical ha sido estudiada principalmente dentro del contexto de los sistemas de manejo de bases de datos centralizados como una herramienta de diseño, la cual permite que las consultas de usuario traten con relaciones más pequeñas haciendo, por tanto, un número menor de accesos a páginas. La fragmentación vertical es inherentemente más complicada que particionamiento horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son: Página 9
  • 10. Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento. División. Inicia con una sola relación realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos. La fragmentación vertical se realiza mediante el operador algebraico de proyección y su notación es la siguiente: Ri = PJ 1..i( R ) donde i = 1..n y Ri es el conjunto de fragmentos en que se divide la relación original R. Veamos un ejemplo de este tipo de fragmentación. Supongamos que tenemos una base de datos centralizada de unos grandes almacenes y que una de las relaciones es: EMPLEADOS(Apellido, nombre, dirección, teléfono, función, localización, extensión) 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, dirección, teléfono y función), mientras que en el NODO2 se encuentra centralita y en este nodo se consultan los datos correspondientes a la localización del empleado (localización y extensión). Fragmentamos verticalmente la tabla EMPLEADOS creando dos nuevas relaciones: EMPLEADO_CONTABILIDAD = PJapellidos, nombre, dirección, teléfono, función(EMPLEADOS) EMPLEADO_CENTRALITA = PJapellidos, nombre, localización, extensión (EMPLEADOS) La combinación(JOIN) de ambas relaciones proporcionará la relación original: EMPLEADOS = EMPLEADO_CONTABILIDAD JOIN apellidos, nombre EMPLEADO_CENTRALITA FRAGMENTACIÓN HIBRIDA En muchos casos la fragmentación 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 fragmentación mixta. Cuando al proceso de fragmentación vertical le sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentación mixta HV. En el caso contrario, Página 10
  • 11. estaremos ante una fragmentación VH. Una característica común a ambas es la generación de árboles que representan la estructura de fragmentación. Considere, por ejemplo, la relación PROVINC. Recordará que se le aplicó una fragmentación horizontal de acuerdo al valor del atributo CCODZONA resultando cuatro fragmentos horizontales. Podríamos pensar en aplicarle una nueva fragmentación de carácter vertical. Entonces resultarían cuatro fragmentos horizontales divididos, por ejemplo, en dos fragmentos verticales. En este caso el número total de fragmentos ascendería, lógicamente, a ocho. No se desea entrar en excesivos detalles sobre las reglas y condiciones para efectuar la fragmentación mixta. Entre otras razones porque, tanto a la fragmentación HV como la fragmentación VH, se le pueden aplicar los mismos criterios y reglas que a la fragmentación horizontal y vertical. Es decir, volviendo al ejemplo anterior, al cual le practicamos la fragmentación HV, al realizar la fragmentación horizontal tal como se ha expuesto, lo que se obtienen no son más que subrelaciones, la unión de las cuales da lugar a la relación PROVINC. Por tanto, para fragmentar cada subrelación sería perfectamente viable aplicarle el método de fragmentación vertical que se ha desarrollado. Como, en este caso, se han querido generar dos fragmentos verticales por cada uno horizontal, simplemente deberíamos confeccionar la matriz de grupos afines (a través del algoritmo BEA) para cada fragmento horizontal y aplicarle, posteriormente, el algoritmo de fragmentación binaria PARTICIÓN. También debe tenerse en cuenta el número de niveles arbóreos que se generen, es decir, nadie impide que tras realizar una fragmentación VH, podamos aplicar a los fragmentos resultantes una nueva fragmentación vertical, y a estos última una nueva fragmentación horizontal, etc. Dicho número puede ser grande, pero también será ciertamente finito. En el caso horizontal, el nivel máximo 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 número de niveles no debería superar el par (VH y HV). El porqué de esta afirmación es bien sencillo, piense, por ejemplo, en el coste que supondría realizar la unión o el yunto de una relación con fragmentación nivel 7. Evidentemente, el coste sería muy elevado y ese aumento de rendimiento que se persigue al aplicar estas técnicas, quizás, no se produzca. Antes de pasar a estudiar el problema de la asignación se desea comentar la técnica de fragmentación mixta basada en celdas. Esta técnica se basa en la generación de celdas de rejilla. Qué es una celda de rejilla, podríamos definirla como un fragmento horizontal y vertical simultáneo. La técnica aplica un algoritmo de fragmentación vertical y otro horizontal de manera concurrente sobre la relación. Los algoritmos realizan una fragmentación máxima, es decir, se persigue que en cada celda únicamente haya un atributo y una tupla. Quizá el lector pueda encontrar el método Página 11
  • 12. contradictorio con lo citado anteriormente respecto a la eficiencia, dada la gran cantidad de fragmentos generados, el número es, efectivamente, el máximo. Sin embargo, este sólo es el primer paso del proceso. Una vez generadas las celdas se aplica un método para optimizar la rejilla mediante fusión o desfragmentación, de acuerdo, fundamentalmente, a las aplicaciones que actúen sobre esos fragmentos. El método, por tanto, persigue una fragmentación la más específica posible acorde con las aplicaciones y los sitios existentes en la red. 4. CONCLUSIONES Esencialmente las instancias de relación son tablas y una de las situaciones es encontrar un método o forma de convertir la tabla completa en sub-tablas más pequeñas. Tenemos dos alternativas para esto, dividirlas en forma horizontal o en forma vertical. La fragmentación horizontal se da sobre las tuplas y la fragmentación vertical se da sobre los atributos. Si se usa más de una fragmentación estas deben estar anidadas y si se utilizan fragmentaciones anidadas de diferentes tipos la fragmentación se convierte en una fragmentación hibrida. Página 12
  • 13. Consiste del particionamiento en tuplas de una relación global en subconjuntos, donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operación de selección sobre la relación global. FRAGMENTACIÓN HORIZONTAL Ejemplo Las siguientes relaciones definen una fragmentación horizontal derivada de la relación. Almacen(cod_almacen, dirección, teléfono, área) Se desea distribuir los datos en dos sedes ubicadas en el área norte y sur Almacensur= select * from almacen where area= ‘sur’ Almacensur= select * from almacen where area= El objetivo de la fragmentación ‘Norte’ es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones La fragmentación vertical es inherentemente más completas. complicada que particionamiento horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son: Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento. División. Inicia con una sola relación realizar un FRAGMENTACIÓN particionamiento basado en el comportamiento de FRAGMENTACIÓN VERTICAL acceso de las consultas sobre los atributos. La fragmentación vertical es la subdivisión de atributos en grupos. Los fragmentos se obtienen proyectando la relación global sobre cada grupo. Una fragmentación vertical de esta relación puede ser definida como: EMP1 = select cedula, nombre, dirección, teléfono From EMP EMP2 = select cedula, función, localización, extensión , cod_almacen From EMP Se desea distribuir los datos de EMP1 en la sede norte, los demás datos de EMP2 se llevan a las dos localidades de la sede norte y sur. se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando FRAGMENTACIÓN primero la fragmentación vertical HIBRIDA y, posteriormente, aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones. Página 13
  • 14. 5. BIBLIOGRAFÍA 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 Página 14