Professional Documents
Culture Documents
2 TIPOS DE FRAGMENTACIN EN BASES DE DATOS DISTRIBUIDAS CONTENIDO TIPOS DE FRAGMENTACIN EN BASES DE DATOS DISTRIBUIDAS ............................................................................................ 3
Resumen / Abstract En el trabajo se reflejan aspectos importantes referentes al diseo de una base de datos distribuida. Se profundiza en el problema de la fragmentacin de los datos y se brindan algunos de los algoritmos para fragmentacin horizontal, fragmentacin horizontal derivada y fragmentacin vertical. El tema seleccionado es parte de una investigacin de tesis de maestra que presenta el desarrollo de un modelo arquitectnico para la Plataforma de Gestin Comercial en la Unidad de Negocios Internacionales de ETECSA.
In this paper appear important things that approach the distributed database design. This work deepens in the problem of the fragmentation data and offers some algorithms for horizontal fragmentation, derived horizontal fragmentation and vertical fragmentation. The selected topic is part of an investigation of a master's thesis that presents the development of an architectonic model for the Commercial Management Platform in the ETECSA International Trade Center.
Palabras clave / Key words Base de datos, base de datos distribuida sistema de base de datos distribuida fragmentacin de datos, arquitectura
de las bases de datos distribuidas
Databases, distributed database, distributed database systems, fragmentation data, distributed database
architecture
INTRODUCCIN
Una base de datos distribuida (BDD) es una coleccin de datos que pertenecen lgicamente al mismo sistema, pero que estn distribuidos sobre diferentes ordenadores de la red. Esta definicin enfatiza dos aspectos importantes en una BDD:1
Y. ALFARO
El procesamiento es rpido debido a que varios nodos intervienen en el procesamiento de una carga de trabajo, nuevos nodos se pueden agregar fcil y rpidamente. La comunicacin entre nodos se mejora y existe una autonoma e independencia entre los nodos. Los datos se pueden colocar fsicamente en el lugar donde se acceden con mayor frecuencia, haciendo que los usuarios tengan control local de los datos con los que interactan. Esto resulta en una autonoma local. Mediante la replicacin de informacin, las bases de datos distribuidas pueden presentar cierto grado de tolerancia a fallas haciendo que el funcionamiento del sistema no dependa de un solo lugar. ARQUITECTURA DE REFERENCIA PARA LAS BD DISTRIBUIDAS
Los elementos que forman la arquitectura son los siguientes: Esquema global: Define todos los datos que estn contenidos en la BDD como si la BD no fuese distribuida. Por esta razn, el esquema global puede ser definido exactamente de la misma manera que una BD no distribuida. Refirindose a un modelo relacional, se tendran relaciones globales. Fragmentos: Cada relacin global puede ser dividida en porciones que no se solapen, llamados fragmentos. El mapa resultante se denomina esquema de fragmentacin. Una relacin global puede dividirse en n fragmentos y un fragmento solo puede pertenecer a una relacin global. Los fragmentos se referencian por un nombre de relacin global y un subndice. Por ejemplo Ri indica el fragmento i de la relacin R. Los fragmentos son porciones lgicas de relaciones globales que pueden estar fsicamente ubicadas en uno o varios nodos de la red. El esquema de ubicacin define en qu nodos va a ser almacenado un fragmento. El tipo de mapa definido en el esquema de ubicacin determina si la BDD es redundante o no. Todos los fragmentos que corresponden a la misma relacin global R y estn ubicados en el mismo nodo constituyen la imagen fsica de una relacin global R en el nodo. Las imgenes fsicas se pueden referenciar por el nombre de la relacin global R y un superndice; por ejemplo, R j indica la imagen fsica de la relacin global R en el nodo j. Por ltimo, se denomina copia de fragmento a la informacin de un fragmento en un nodo determinado, y se denota usando el nombre de la relacin global, un subndice y un superndice. Ejemplo: R3 2 indica copia del fragmento R2 que est ubicado en el nodo 3. Dos imgenes fsicas pueden ser idnticas; se dice entonces que una imagen fsica es copia de otra imagen fsica. En un nivel ms bajo, es necesario construir un mapa que relacione las imgenes fsicas con los objetos que son manipulados por los gestores locales. Este mapa se llama esquema
FRAGMENTACIN
Los principales problemas de la fragmentacin2 se pueden resumir bsicamente en:
Encontrar la unidad apropiada de distribucin, es decir, definir qu contiene un fragmento. El rendimiento se afecta cuando existen aplicaciones que necesitan tener una vista completa de un objeto o entidad (relacin, en el modelo relacional) y est descompuesta en fragmentos ubicados fsicamente en sitios distintos. Esta recuperacin requiere la ejecucin de operaciones de unin y combinacin. Se pierde el significado semntico del objeto o entidad al tenerse el concepto subdivido en fragmentos ubicados en diferentes sit ios. Esto puede provocar, por ejemplo, complicaciones en la interpretacin y verificacin del modelo conceptual que representa a los requerimientos. A pesar de estos inconvenientes, la fragmentacin facilita el proceso concurrente de las transacciones y, por lo tanto, la recuperacin de informacin. Con el fin de realizar una fragmentacin adecuada es necesario proporcionar informacin que ayude a realizarla. Esta informacin normalmente debe ser proporcionada por el usuario y tiene que ver con cuatro tipos:
1. Informacin sobre el significado de los datos; 2. Informacin sobre las aplicaciones que los usan; 3. Informacin acerca de la red de comunicaciones; 4. Informacin acerca de los sistemas de cmputo. Existen tres tipos de fragmentacin: 1. Fragmentacin horizontal; 2. Fragmentacin vertical; 3. Fragmentacin mixta o hbrida. Dado 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. Estos dos tipos de part icin 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. 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.3,4 Condicin de completitud: La descomposicin de una relacin R en los fragmentos R1, R2, ..., Rn es completa s y solamente s cada elemento de datos en R se encuentra en uno o varios fragmentos Ri. Esta propiedad asegura que los datos de la relacin global se proyecten sobre los fragmentos sin prdida alguna. Condicin de reconstruccin: Si la relacin R se descompone en los fragmentos R , R , ..., R , entonces debe existir algn
1 2 n 1 i n
Ri. La reconstruccin operador relacional , tal que, R = de mapas locales y depende del tipo de SGBD local. Por lo tanto, en un sistema heterogneo se tienen diferentes tipos de mapas locales en los distintos nodos.
de la relacin a partir de sus fragmentos asegura la preservacin de las restricciones definidas sobre los datos en forma de dependencias. Condicin de fragmentos disjuntos: Si la relacin R se descompone en los fragmentos R1, R2, ..., Rn, y un elemento de 4
Industrial/Vol. XXVII/No. 1/2006
datos di est en algn fragmento Rj, entonces, no debe estar en ningn otro fragmento Rk (k j). Esta regla asegura que los
fragmentos horizontales sean disjuntos. Si una relacin R se descompone verticalmente, sus atributos primarios clave normalmente se repiten en todos sus fragmentos.
Fragmentacin horizontal
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. 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 la base de datos, la cardinalidad de cada relacin y las dependencias entre relaciones. 4 En segundo lugar, se debe proporcionar informacin acerca de la aplicacin que utiliza la base de datos. Esta puede ser tanto cualitativa como cuantitativa. La primera 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. Dada una relacin R( A1, A2, , An), donde Ai es un atributo definido sobre el dominio Di, un predicado simple pj definido en R tiene la forma pj: Ai . Valor donde { =, <, , , >, } y Valor Di. Para la relacin R se define un conjunto de predicados simples como Pr = { p1, p2, , pm } Sobre la informacin cuantitativa necesaria relativa a las aplicaciones, se definen dos conjuntos de datos.4 Selectividad minitrmino: Es el nmero de tuplas de una relacin a las que accede una consulta de acuerdo con un predicado minitrmino dado. Se denota 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 perodo dado.
haciendo, por tanto, un nmero menor de accesos a pginas. Es ms complicada que el 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: 1. 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. 2. Divisin: Inicia con una sola relacin realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos. Dado un conjunto de consultas Q = { q1, q2, ..., qq } que sern aplicadas a la relacin R[A1, A2, ..., An], se define la funcin
XVH(TL , $L ) =
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
Fragmentacin vertical
Una fragmentacin vertical3 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
Los vectores use ( qi, ) son fciles de definir si el diseador conoce las aplicaciones que sern ejecutadas en la base de datos. La medida de afinidad entre dos atributos Ai y Aj de una relacin R[A1, A2, ..., An] con respecto al conjunto de consultas Q = { q1, q2, ..., qq } se define como sigue: aff(Ai , Aj) = las consultas que acceden Ai y Aj Si (refl(qk) accl(qk)), donde, refl(qk) es el nmero de accesos a los atributos (Ai, Aj) para cada ejecucin de la consulta qk en el sitio Sl y accl(qk) es la frecuencia de acceso de la consulta previamente definida y modificada para incluir las frecuencias en sitios diferentes.
aplicar fragmentacin vertical a fragmentos horizontales. Por ejemplo: a) Fragmentacin fragmentacin horizontal A1 A2 vertical seguida por una
A3
A4
A5
Y. ALFARO
Aunque se pueden generar rboles de fragmentacin muy complejos, normalmente debe ser suficiente con dos niveles. La segunda fragmentacin puede ser aplicada a subconjuntos de fragmentos producidos por la primera. En el ejemplo anterior: a) La fragmentacin horizontal se aplica a un solo fragmento producido por la fragmentacin vertical; b) La fragmentacin vertical se aplica a un solo fragmento producido por la fragmentacin horizontal.
REFERENCIAS
1. IGLESIAS, EVA L.: Bases de datos distribuidas, ESEI, Universidad de Vigo. http://trevinca.ei.uvigo.es/~evali/abd/ BDDWeb.pdf, (abril, 2005) 2. HERNNDEZ GONZLEZ, ANAISA. "Base de datos distribuida", Maestra en Informtica Aplicada, CEIS, Ciudad de La Habana, marzo, 2005. 3. Cinvestav. Diseo de Bases de datos distribuidas. http:// ww w.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/ Cap_3.html, abril, 2005. 4. RODRGUEZ SANTOS, JORGE: "Diseo de bases de datos distribuidas", http://usuarios.lycos.es/jrodr35/index.htm, abril, 2005.
CONCLUSIONES
Con el desarrollo de este trabajo se ha logrado realizar una bsqueda bibliogrfica acerca de las bases de datos distribuidas, fundamentalmente en el tema de la fragmentacin de los datos y su ubicacin en los nodos que componen la red. Esta revisin ha permitido a la autora centrarse en los elementos fundamentales para lograr el diseo ms ptimo de los datos a distribuir y(o) replicar en cada punto del sistema distribuido.
10