75
Universidad Central “Marta Abreu” de Las Villas Facultad de Matemática, Física y Computación T TRABAJO DE D DIPLOMA Asistentes para el Diseño Lógico de Bases de Datos Distribuidas Autor Lisbel Valdés Rodríguez. Tutores Dr. Abel Rodríguez Morffi. MSc. Norma E. Cabrera González. Dra. Luisa M. González González. 2009

Asistentes para el Diseño Lógico de Bases de Datos

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Asistentes para el Diseño Lógico de Bases de Datos

Universidad Central “Marta Abreu” de Las Villas

Facultad de Matemática, Física y Computación

TTRRAABBAAJJOO DDEE DDIIPPLLOOMMAA

Asistentes para el Diseño Lógico

de Bases de Datos Distribuidas

Autor

Lisbel Valdés Rodríguez.

Tutores

Dr. Abel Rodríguez Morffi.

MSc. Norma E. Cabrera González.

Dra. Luisa M. González González.

2009

Page 2: Asistentes para el Diseño Lógico de Bases de Datos

Hago constar que el presente trabajo fue realizado en la Universidad Central “Marta

Abreu de Las Villas” como parte de la culminación de los estudios de la especialidad de

Ciencias de la Computación, autorizando a que el mismo sea utilizado por la institución,

para los fines que estime conveniente, tanto de forma parcial como total y que además

no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.

_________________

Firma del autor

Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según

acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que

debe tener un trabajo de esta envergadura referido a la temática señalada.

_________________ __________________________

Firma del tutor Firma del jefe del Seminario

Page 3: Asistentes para el Diseño Lógico de Bases de Datos

"Cuanto más se dividen los obstáculos son más fáciles de vencer"

Concepción Arenal.

Page 4: Asistentes para el Diseño Lógico de Bases de Datos

D E D I C A T O R I A

A mis padres, quienes han

vivido siempre para sus hijos.

Page 5: Asistentes para el Diseño Lógico de Bases de Datos

A G R A D E C I M I E N T O S

A mi hermano, sin su ejemplo hace tiempo me hubiera rendido,

Al resto de mi familia que tanto siempre me ha apoyado,

A todos esos amigos que estuvieron ahí cuando los necesité,

A Isis por su comprensión y ayuda,

A mis tutores, en especial a Abel por soportarme todo este tiempo y confiarme este

trabajo,

A todos los que desde la primaria han tenido que ver en mi formación.

Page 6: Asistentes para el Diseño Lógico de Bases de Datos

R E S U M E N

Resumen

La posibilidad de distribuir datos sobre diferentes sitios de una red de computadoras

promueve la difusión de los Sistemas de Bases de Datos Distribuidas, cuyo diseño

cuenta con las mismas fases que en los centralizados y se les añaden dos nuevos

problemas: la fragmentación y la asignación de los fragmentos a los sitios. El diseño de

la fragmentación tiene como propósito obtener porciones de la Base de Datos que sean

unidades lógicas de asignación.

No obstante los beneficios que reporta la distribución de datos, y de los resultados

teóricos que permiten su modelación, aún las técnicas, metodologías y herramientas

asociadas no alcanzan la madurez necesaria para ayudar a los desarrolladores de

software básico ni de aplicaciones. Como resultado de este trabajo se obtienen nuevas

versiones de dos asistentes para diseño de bases de datos distribuidas: AppWizard que

captura información sobre las aplicaciones del universo de discurso, y Fragmenter que

realiza la fragmentación de esquemas globales en esquemas lógicos.

Page 7: Asistentes para el Diseño Lógico de Bases de Datos

A B S T R A C T

Abstract

The possibility of distributing data on different sites of a computer network promotes

the creation of distributed databases systems, which comprise two new problems: the

fragmentation and the allocation of the fragments to the sites. The design of the

fragmentation is intended to obtain portions of the database that are logical units of

allocation.

Nevertheless the profits that the distribution of data produces and the theoretical results

that allow its modeling; still the methods, methodologies and tools do not reach the

necessary maturity to help developers. As result of this work new version of two

assistants are obtained for design of distributed databases: AppWizard that captures

information about the applications of the universe of discourse, and Fragmenter that

carries out the fragmentation of global schemata in order to obtain logical schemata.

Page 8: Asistentes para el Diseño Lógico de Bases de Datos

I N D I C E

ÍNDICE

INTRODUCCIÓN............................................................................................................ 1

CAPÍTULO 1. DISEÑO DE BASES DE DATOS DISTRIBUIDAS ............................. 6

1.1 Aspectos generales del diseño de BDD.................................................................. 6

1.2 El problema de distribución de datos ..................................................................... 8

1.3 El problema de fragmentación.............................................................................. 10

1.3.1 Fragmentación horizontal .............................................................................. 10

1.3.2 Fragmentación vertical .................................................................................. 14

1.3.3 Fragmentación mixta ..................................................................................... 19

1.4 El problema de caracterización de las aplicaciones.............................................. 20

1.5 Conclusiones parciales ......................................................................................... 21

CAPÍTULO 2. CARACTERIZACIÓN DE APLICACIONES EN EL DISEÑO DE BDD................................................................................................................................ 23

2.1 Características de la información sobre las aplicaciones...................................... 23

2.1.1 Información cualitativa.................................................................................. 23

2.1.2 Información cuantitativa................................................................................ 25

2.2 Diagramas de clases del asistente AppWizard ..................................................... 26

2.3 Interfaz del asistente AppWizard ......................................................................... 27

2.4 Conclusiones parciales ......................................................................................... 30

CAPÍTULO 3. ASISTENTE PARA LA FRAGMENTACIÓN .................................... 31

3.1 Fragmentación horizontal ..................................................................................... 31

3.1.1 Algoritmo para la fragmentación horizontal primaria................................... 31

3.1.2 Algoritmo para la fragmentación horizontal derivada................................... 39

3.2 Fragmentación Vertical ........................................................................................ 42

3.2.1 Algoritmo de Hoffer y Severance.................................................................. 43

3.2.2 Partición vertical binaria................................................................................ 45

3.2.3 Algoritmo basado en una función objetivo empírica..................................... 46

3.3 Diagrama de clases del asistente Fragmenter ................................................. 50

Page 9: Asistentes para el Diseño Lógico de Bases de Datos

I N D I C E

3.4 Interfaz del asistente Fragmenter.......................................................................... 51

3.5 Conclusiones parciales ......................................................................................... 53

CONCLUSIONES.......................................................................................................... 54

RECOMENDACIONES ................................................................................................ 56

REFERENCIAS BIBLIOGRÁFICAS ........................................................................... 57

Page 10: Asistentes para el Diseño Lógico de Bases de Datos

I N T R O D U C C I O N

1

INTRODUCCIÓN

En los últimos años han surgido gran cantidad de innovaciones tecnológicas que unidas

al descenso en los costos del hardware han estimulado el desarrollo de los Sistemas de

Bases de Datos Distribuidas (SBDD). Según Őzsu y Valduriez (Őzsu and Valduriez,

1999), una Base de Datos Distribuida (BDD) es una colección de múltiples Bases de

Datos (BD), lógicamente interrelacionadas distribuidas sobre una red de computadoras.

Así, el objetivo fundamental de los SBDD es integrar la manipulación de datos para que

sean presentados al usuario como una única colección de datos global y coherente. Por

tanto, la distribución involucra el hecho de que los datos no residen necesariamente en

el mismo sitio, pero poseen propiedades comunes que los vinculan, y se facilita su

acceso a través de una interfaz común. Es necesario destacar que los enlaces entre los

datos se llevan a cabo en una red de comunicación, lo que implica generalmente que los

sitios estén localizados en diferentes áreas geográficas y con capacidad de

procesamiento autónomo.

Existen varias razones técnicas para distribuir datos, en particular, los sistemas

distribuidos se adaptan mejor a las necesidades de las organizaciones descentralizadas

ya que reflejan más adecuadamente su estructura y tienen importantes ventajas con

respecto a los centralizados. La descentralización se justifica desde el punto de vista

tecnológico, ya que permite autonomía local y promueve la evolución de los sistemas y

los cambios en los requerimientos de los usuarios, proporciona una arquitectura de

sistemas simple, flexible y tolerante a fallos; además de ofrecer buenos rendimientos.

Estas razones a favor de la descentralización también añaden nuevas complejidades a su

diseño e implementación.

Page 11: Asistentes para el Diseño Lógico de Bases de Datos

I N T R O D U C C I O N

2

Las diferentes técnicas de distribución de datos generalmente se basan en la semántica

de los datos, y se rigen por principios idénticos que las BD centralizadas, incorporando

otros detalles particulares, como la fragmentación de las entidades y su posterior

localización en los diferentes sitios de la red. La fragmentación es muy útil a los fines

de mejorar los tiempos de respuesta y garantizar el paralelismo de un sistema

(Johansson et al., 2000, Őzsu and Valduriez, 1999, Baião et al., 2004, Irún-Briz et al.,

2005, Lin and Veeravalli, 2006, Coulon et al., 2005). Para garantizar estas metas es

necesario desarrollar soluciones óptimas o con un grado aceptable de desempeño que

suponen la implementación de algoritmos sumamente engorrosos de una elevada

complejidad computacional. En el diseño de la distribución influyen muchos factores

relacionados con la BD, las aplicaciones que acceden a la misma, la comunicación de la

red, y sobre el sistema de computadoras que la soporta; lo que hace que sea muy

complicada la formulación de un problema de distribución. Por tanto es necesario

decidir cómo fragmentar y distribuir los datos sobre los diferentes sitios y cuáles de

estos datos deben ser replicados.

Como antecedentes a este trabajo se tienen los resultado de la tesis presentada por

(Cabrera et al., 2006) donde se obtuvieron dos asistentes de ayuda al diseño de BDD,

uno para la caracterización de las aplicaciones más relevantes que recopilaban los

parámetros de acceso y uso de estas aplicaciones a la base de datos y otro para guiar el

proceso de fragmentación, como respuesta al déficit de herramientas de apoyo al diseño

de tales bases de datos; entonces, este trabajo ayudaba a mitigar esa carencia. Ambas

herramientas presentaban algunas características que podían ser perfeccionadas y

algunos errores de ejecución que necesitaban ser corregidos; además, el asistente de

ayuda a la fragmentación necesitaba la inclusión de un nuevo método para llevar a cabo

la fragmentación horizontal derivada.

Page 12: Asistentes para el Diseño Lógico de Bases de Datos

I N T R O D U C C I O N

3

La fragmentación de esquemas es una etapa del diseño de bases de datos distribuidas

donde se crean fragmentos de una relación de forma tal que se minimice el costo de

acceso a los datos durante el procesamiento de las transacciones, mejorando los tiempos

de respuesta y el paralelismo del sistema. Este proceso puede realizarse de varias

maneras; existen dos alternativas fundamentales y básicas: la fragmentación horizontal

y la vertical. Ambas necesitan tanto de información relativa a la base de datos como de

las aplicaciones que acceden a la misma. Un diseñador de bases de datos distribuidas

requiere de mucho tiempo para llevar a cabo todo este proceso, y debe tomar decisiones

de alta complejidad. Por su parte, los métodos involucrados en el diseño son, en su

mayoría, de alta complejidad computacional. Es por esto que una ayuda puede ser a

través del uso de herramientas computacionales. Consecuentemente, el problema de

investigación está dado por la existencia de características que necesitan ser

perfeccionadas en la versión anterior de las herramientas en forma de asistentes para la

caracterización de las aplicaciones y para la fragmentación, como por ejemplo: darle

más control al diseñador durante el proceso de caracterización de las aplicaciones,

ofrecer otros métodos para la fragmentación horizontal derivada, concentrar los accesos

al catálogo que mejore la gestión de los accesos al mismo.

Las preguntas de investigación son las siguientes:

1. ¿Qué características debe poseer el asistente para la caracterización de

aplicaciones que obtenga los datos relevantes para el proceso de diseño de forma

fácil y ágil?

2. ¿Qué aspectos del asistente para la fragmentación deben ser perfeccionados para

que resulte favorable para el diseñador?

Page 13: Asistentes para el Diseño Lógico de Bases de Datos

I N T R O D U C C I O N

4

3. ¿Cómo adicionar otro criterio para realizar la fragmentación horizontal derivada

al fragmentador?

El objetivo general de este trabajo es obtener una nueva versión de los asistentes para

la caracterización de aplicaciones y la fragmentación que sean fáciles de usar y supere

las dificultades de las versiones anteriores.

Para lograr este objetivo se plantean los siguientes objetivos específicos de la

investigación:

1. Estudiar los principales aspectos relacionados con el diseño de fragmentación en

bases de datos distribuidas particularizando en el proceso de fragmentación.

2. Rediseñar el caracterizador de aplicaciones para que resulte fácil de usar con una

interfaz amigable.

3. Rediseñar el asistente para la fragmentación de modo que se corrijan los errores

en módulo de fragmentación vertical y se incluya un nuevo método de

fragmentación horizontal derivada.

4. Implementar los asistentes mencionados anteriormente.

Relacionado con los antecedentes antes planteados, se puede decir que este estudio se

justifica por su importancia desde el punto de vista práctico en la integración que

tendrán los resultados esperados en la herramienta SIADBDD de ayuda al diseño de

BDD. Desde el punto de vista metodológico se sistematiza en el proceso de diseño de

de BDD.

La tesis está estructurada en tres capítulos:

En el capítulo 1 se expone una panorámica de los aspectos que son particularmente

interesantes en el diseño de BDD. Se hace énfasis en el marco teórico y algunos

Page 14: Asistentes para el Diseño Lógico de Bases de Datos

I N T R O D U C C I O N

5

enfoques que se le ha dado a este problema. Se realiza un análisis de los principales

trabajos reportados en la bibliografía.

En el capítulo 2 se presenta una solución práctica a la problemática de diseño

identificada para la tesis respecto a la caracterización de las aplicaciones.

En el capítulo 3 se proponen soluciones desde el punto de vista práctico a las

problemáticas de diseño de la fragmentación identificadas para la tesis.

Este trabajo de diploma culmina con las conclusiones, recomendaciones y referencias

bibliográficas.

Page 15: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

6

CAPÍTULO 1. DISEÑO DE BASES DE DATOS DISTRIBUIDAS

En este capítulo se profundiza en el marco teórico y algunos enfoques que se le ha dado

al problema de distribución de las BD. Además, se refieren los aspectos que son

particularmente interesantes en el diseño de BDD.

1.1 Aspectos generales del diseño de BDD

En muchas organizaciones geográficamente distribuidas las vías centralizadas no

representan una alternativa factible, y la migración hacia SBDD resulta natural. Muchos

autores recalcan el principio de que un sistema distribuido muestra la estructura de la

BD como un espejo de la estructura de la empresa, con lo cual se incrementa la

localidad de referencia y se reduce drásticamente el tráfico en la red (Date, 2000).

Se han ofrecido diferentes definiciones sobre qué es una BDD, una de las más

completas es la dada por (Őzsu and Valduriez, 1999), la cual aparece en la introducción

a este trabajo. La misma enfatiza los aspectos de la distribución y de la interrelación

lógica entre los datos.

El diseño de la BDD tiene como objetivo lograr un mejor desempeño; y requiere de su

propia teoría, metodología, y herramientas de apoyo. El diseño de distribución incluye

fragmentación y ubicación replicada o no de los fragmentos (Ceri and Pelagatti, 1984).

El término fragmentación se refiere a la división del esquema de una BDD de acuerdo

con algún criterio, mientras que la replicación está relacionada con la existencia de

copias de los fragmentos en varios sitios. Los dos principios básicos de las BDD (Ceri

et al., 1987, Ma et al., 2005, Őzsu and Valduriez, 1999) son reducir el intercambio de

datos entre los sitios y eliminar datos irrelevantes en la ejecución de solicitudes. Ambos

sirven de guía al proceso de diseño de BDD, el cual ha sido dividido en cuatro pasos

fundamentales (Baião et al., 2002, Bellatreche et al., 2000, Ceri et al., 1987, Hababeh et

Page 16: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

7

al., 2004, Huang and Chen, 2001, Navathe et al., 1995, Őzsu and Valduriez, 1999,

Schewe, 2002): (1) Diseño del esquema conceptual, (2) Diseño de la fragmentación, (3)

Diseño de la asignación, y (4) Diseño de la BD física. Los problemas 1 y 4 son comunes

a las Bases de Datos Centralizadas (BDC) y a las BDD, mientras que los problemas 2 y

3 caracterizan el diseño de BDD.

Este trabajo está incluido dentro de un grupo de labores donde se sigue un enfoque

descendente, en el que primero se caracterizan los esquemas globales, luego se dividen

en fragmentos; y por último estos fragmentos son ubicados en los diferentes sitios de

procesamiento. La modelación conceptual (Nelson et al., 2001) es el proceso de

creación de representaciones abstractas de un dominio de aplicación en términos de

conceptos familiares a los actores de ese dominio y no en términos técnicos. Esta

requiere de notaciones, herramientas y técnicas para representar procesos e información.

En la modelación conceptual el usuario necesita especificar información sobre los datos,

las aplicaciones, la red de comunicación y los sitios de procesamiento donde residirá la

BDD. Obtener o estimar toda la información requiere de esfuerzo y experiencia; así,

gran parte de las decisiones de diseño están fundamentadas en el buen juicio del

diseñador de la BDD.

El diseño de distribución se divide en lógico y físico. Durante el diseño lógico se

distribuyen los fragmentos en los sitios obteniéndose los Esquemas Conceptuales

Locales (ECL). En el diseño físico se llevan los ECL a los dispositivos de

almacenamiento físico. Como el diseño de la distribución de datos abarca una gran

cantidad de variables y diversidad de relaciones entre éstas, el problema del diseño se

hace complejo (Lin and Orlowska, 1995). Algunos intentos de solución separan la

fragmentación de la asignación (Huang and Chen, 2001, Őzsu and Valduriez, 1999),

mientras que otros las combinan usando diferentes enfoques (Ma et al., 2005, Ma et al.,

Page 17: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

8

2006). Una realización adecuada de estas fases se facilita a través de metodologías que

usen determinadas heurísticas y se apoyen en herramientas de ayuda al diseño (Őzsu

and Valduriez, 1999); motivación fundamental para un conjunto de trabajos que se han

venido realizando en el grupo de investigación en Bases de Datos del Centro de

Estudios de Informática de La Universidad Central de Las Villas (García et al., 2005,

Rodríguez et al., 2007a, Rodríguez et al., 2007b, Rodríguez and González, 2008,

Rodríguez et al., 2005, Rodríguez et al., 2002a, Rodríguez et al., 2007c, Rodríguez et

al., 2002b, Rodríguez et al., 2007d, Rodríguez et al., 2007e, Rodríguez et al., 2007f,

Águila, 2001, Artiles, 2001, Cabrera et al., 2006, Hernández, 2005, Morell et al., 2000b,

Morell et al., 2000a, Rosa, 2006).

El modelo lógico de las BDD fue formulado inicialmente por Ceri et al. en 1983 (Ceri et

al., 1983), actualmente considerado como un modelo clásico consolidado, incluye el

problema de cómo distribuir los datos óptimamente en los sitios de una red. Este

problema tiene como principio clave alcanzar máxima localidad de los datos,

ubicándolos tan cerca como sea posible de las aplicaciones que los utilizan, lo que

permite reducir el tráfico de comunicaciones en la red. En un sistema bien diseñado al

menos el 90 por ciento de los datos deben ser ubicados localmente y hasta el 10 por

ciento pueden ser accedidos remotamente (Ceri et al., 1987).

1.2 El problema de distribución de datos

El problema de distribución de datos abarca tanto la fragmentación como la asignación

de los fragmentos a los diferentes sitios de procesamiento de la red de comunicación. En

este trabajo se aborda solamente la fragmentación como se puede observar en el

capítulo 3.

Page 18: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

9

El diseño de la fragmentación refleja el criterio de mantener los datos locales en el sitio

donde frecuentemente son accedidos por las aplicaciones, es por ello que los fragmentos

constituyen una unidad apropiada de asignación. Un esquema no es una unidad de

asignación por un gran número de razones. Primero, las aplicaciones usualmente operan

sobre subconjuntos de esquemas. Por tanto, la localidad de accesos de aplicaciones no

es definida sobre esquemas completos sino sobre sus subconjuntos. De aquí que sea

natural considerar estos subconjuntos como las unidades de distribución. Segundo, si las

aplicaciones que manipulan un esquema están ubicadas en sitios diferentes, se pueden

seguir dos alternativas con todo el esquema como unidad de distribución. O bien el

esquema no está replicado y es asignado a un sólo sitio, o éste se encuentra replicado en

todos o en algunos de los sitios donde las aplicaciones residen.

Finalmente, se puede argumentar a favor de la fragmentación que al tratar la

descomposición de un esquema en fragmentos como unidades de asignación, se está

facilitando la ejecución concurrente de un gran número de aplicaciones y por lo tanto

mejora el desempeño de un sistema. También, la fragmentación facilita que la ejecución

de una sola solicitud se pueda dividir en un conjunto de subsolicitudes que operen sobre

los fragmentos, posibilitándose el paralelismo (Johansson et al., 2000, Gançarski et al.,

2002, Bhalla and Hasegawa, 2005).

Muchos de los problemas relacionados con la fragmentación y asignación en el diseño

de BDD tienen una modelación matemática compleja y los métodos que les dan

solución son considerados del tipo NP-Completo (Baião et al., 2003, Őzsu and

Valduriez, 1999, Lee and Baik, 2004, Pérez et al., 2005), donde no hay garantía de

encontrar una solución óptima con algoritmos determinísticos en un tiempo polinomial.

Así, su complejidad es tal que cualquier algoritmo que resuelve óptimamente cada uno

de sus casos requiere un esfuerzo computacional que crece exponencialmente en

Page 19: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

10

función del tamaño del problema; en dependencia de la cantidad de fragmentos y de

sitios. Intentando dar solución a estos problemas se han presentado propuestas (Baião et

al., 2004, Pérez et al., 2005, Savonnet et al., 1999, Tamhankar and Ram, 1998, Navathe

et al., 1995, Mei and Sheng, 1992, Ceri et al., 1987, Ceri and Pernici, 1985) que

sugieren el uso de heurísticas para algunos de ellos.

1.3 El problema de fragmentación

La mayoría de los autores coinciden en establecer dos vías básicas para fragmentar:

horizontal (FH) y vertical (FV) (Ma et al., 2006, Ezeife and Barker, 1995, Bellatreche et

al., 1996, Bellatreche et al., 1997, Pérez et al., 2000, Lim and Ng, 1997, Huang and

Chen, 2001, Navathe et al., 1995, Hababeh et al., 2004, Bellatreche and Simonet, 1996).

El proceso de fragmentación debe asegurar la ausencia de cambios semánticos en la BD

durante el proceso, logrando así una fragmentación correcta (Őzsu and Valduriez,

1999).

El grado de fragmentación va de un extremo, que es la no fragmentación, a otro

extremo, que es fragmentar hasta el nivel de tuplas individuales (en el caso de la FH) o

hasta el nivel de atributos individuales (en el caso de FV). Tener muy pocas, o

demasiadas unidades de fragmentación puede tener efectos adversos. Es necesario

encontrar un nivel apropiado de fragmentación que sea un término medio entre los dos

extremos. Tal nivel sólo puede ser definido con respecto a las aplicaciones que deben

ser soportadas sobre la BD, pero requiere decidir cómo hacerlo.

1.3.1 Fragmentación horizontal

La FH se divide en fragmentación horizontal primaria (FHP) y derivada (FHD). Bajo un

enfoque relacional, la FH divide la relación en conjuntos disjuntos aplicando el

operador de selección (Őzsu and Valduriez, 1999) y presumen que el diseñador tiene la

Page 20: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

11

capacidad de pronosticar las características de las aplicaciones con respecto a los datos

y la frecuencia de ejecución de estas aplicaciones desde cada uno de los sitios de

procesamiento (Bellatreche et al., 2000, Ceri et al., 1982, Ma and Schewe, 2004, Ezeife

and Dey, 2003). Comúnmente, la FHP de una relación se desarrolla empleando el

método clásico de uso de predicados simples definidos en un esquema (Ceri and

Pelagatti, 1984, Őzsu and Valduriez, 1999). Las aplicaciones generalmente emplean

predicados minterms, que son conjunciones de predicados simples con una cantidad

mínima de términos, como fórmula para realizar la selección de tuplas. Además, se

requiere información cuantitativa relativa a los patrones de acceso y uso de las

aplicaciones. La FHD identifica aquellas relaciones que se deben priorizar en el proceso

de fragmentación, ya sea por su llave primaria (esquemas propietarios) o por su llave

foránea (esquemas miembros) (Ceri and Pernici, 1985). La FHD se define sobre un

esquema miembro de acuerdo a una operación de semiacople (semijoin, denotado

simbólicamente por ⋉) con el esquema propietario. Cuando existe más de una

posibilidad de FHD, se elige la FHD con mejores características de acople (join,

denotado simbólicamente por ⋈), o la empleada en más aplicaciones (Őzsu and

Valduriez, 1999). Se han formalizado criterios para determinar las mejores

características de acople (Őzsu and Valduriez, 1999, Rodríguez and González, 2008).

Por tanto, la FHP favorece las operaciones de selección, y la FHD facilita el tratamiento

de las llaves foráneas.

Fragmentación horizontal primaria

Comúnmente, bajo un enfoque relacional, la FHP de una relación se desarrolla

empleando el método clásico de uso de predicados definidos en esa relación

(Bellatreche et al., 2000, Ma et al., 2006, Őzsu and Valduriez, 1999). Esta variante está

Page 21: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

12

orientada a maximizar localidad de procesamiento, y trata de lograr que los datos estén

lo más cerca posible de las aplicaciones que las usan. Para realizar la FH es necesario

proporcionar información acerca de las relaciones que componen la BD y de las

aplicaciones que las utilizan. No siempre es posible investigar y caracterizar todas las

aplicaciones que actuarán sobre la BD, pero al menos se pueden caracterizar las más

importantes. Para esto se utiliza la regla 20/80, o sea, se caracteriza el 20 por ciento de

las aplicaciones más frecuentes o que realizan las aplicaciones más críticas que son las

que realizan la mayor parte de los accesos a datos (Ceri et al., 1983, Őzsu and

Valduriez, 1999, Ma et al., 2006). En la caracterización de las aplicaciones es necesario

determinar los predicados simples (Őzsu and Valduriez, 1999) que favorecen la

localidad de distribución.

Las aplicaciones emplean predicados simples y predicados más complejos, resultado de

combinaciones lógicas de los predicados simples; una combinación especialmente

importante es la conjunción de predicados simples denominada predicado minterm

(Őzsu and Valduriez, 1999). Partiendo de que siempre es posible transformar una

expresión lógica en su forma normal conjuntiva, se usan los predicados minterms en los

algoritmos para no causar ninguna pérdida de generalidad. Cada predicado minterm

puede contener la forma natural o la forma negada del predicado simple. Es importante

señalar que la referencia a la negación de un predicado es significativa para predicados

de igualdad de la forma Atributo=Valor. Para predicados de desigualdad, la negación

debería tratarse como su complemento (Őzsu and Valduriez, 1999).

La información cuantitativa relativa a las aplicaciones que es necesaria para la FHP

involucra la selectividad de cada predicado minterm y la frecuencia con la que la misma

accede a los datos.

Page 22: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

13

La FHP se define sobre un esquema de la BD aplicando una fórmula de selección para

obtener los fragmentos minterms que se corresponden con cada predicado minterm. El

algoritmo HORIZONTALP expuesto en (Őzsu and Valduriez, 1999) asume lo antes

mencionado y hace uso del método COM_MIN que establece un conjunto de

predicados con las propiedades de completitud y minimalidad. Para la completitud es

necesario y suficiente que exista una probabilidad idéntica de acceder por cada

aplicación a cualquier fragmento minterm. La minimalidad es un estado que indica el

grado de influencia de un predicado en el desarrollo de la fragmentación; es decir, el

predicado simple debe ser relevante para provocar la fragmentación. Si todos los

predicados de un conjunto de predicados simples son relevantes; el conjunto es mínimo.

Se puede apreciar como la definición de completitud de un conjunto de predicados

simples difiere de la regla de completitud de la fragmentación. Una definición formal de

la relevancia se da en (Ceri et al., 1983), aunque siempre es aconsejable acudir a la

habilidad y experiencia de los diseñadores antes de utilizar tal definición formal. En

(Őzsu and Valduriez, 1999) se hace un análisis de la corrección de la FHP realizada con

HORIZONTALP de acuerdo a las reglas de fragmentación antes planteadas.

Fragmentación horizontal derivada

Se realiza la FHD a un esquema con al menos una llave foránea que haga referencia a

otro esquema fragmentado mediante una FHP. Ceri y Pernici (Ceri and Pernici, 1985)

identifican aquellos esquemas que se deben priorizar en el proceso de fragmentación, ya

sea por su llave primaria (esquemas propietarios) o por su llave foránea (esquemas

miembros). La FHD se define sobre un esquema miembro de acuerdo a una operación

de semiacople con su esquema propietario y es por ello que el fragmento resultante se

define únicamente sobre los atributos del esquema miembro. Por tanto, si un esquema R

Page 23: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

14

tiene una llave foránea (miembro) que referencia al esquema S (propietario), los

fragmentos horizontales derivados de R se definen como (Őzsu and Valduriez, 1999):

Ri = R ⋉ Si, 1 ≤ i ≤ w,

donde w es el número de fragmentos definidos sobre R, y Si = σFi(S), Fi es la fórmula

según la cual se define el fragmento horizontal primario Si.

El algoritmo de FHD es similar a HORIZONTALP tomando como entradas el conjunto

de fragmentos del esquema propietario, el esquema miembro y el conjunto de

predicados de semiacople entre el propietario y el miembro. En un esquema de BD

resulta frecuente que existan más de dos enlaces sobre un esquema R. En este caso

existe más de una posibilidad de FHD. Para esto se elige la FHD con mejores

características de acople, o la empleada en más aplicaciones para facilitar el acceso a los

usuarios que hagan mayor uso de los datos, minimizando el impacto total en el

rendimiento de un sistema (Őzsu and Valduriez, 1999). No es tan sencillo elegir el

criterio relacionado con las mejores características de acople, que beneficia a las

aplicaciones que hagan operaciones de acople sobre dos esquemas. Al poder realizarlo

sobre fragmentos más pequeños y posibilitar la realización de acoples de manera

distribuida, se enfatiza la esencia de las BDD. Un sistema puede mejorar sus tiempos de

respuesta si, además de estar ejecutando un número de aplicaciones en diferentes sitios,

puede ejecutar una aplicación en paralelo.

1.3.2 Fragmentación vertical

La FV no es más que la división de una relación en fragmentos mediante una operación

de proyección, cada uno de los cuales contiene un subconjunto de los atributos de la

relación original. Su principal objetivo es mejorar el rendimiento de las transacciones;

para esto los fragmentos deben ser diseñados de tal manera que las aplicaciones accedan

Page 24: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

15

al menor número de atributos irrelevantes o innecesarios que incrementen los costos de

almacenamiento y procesamiento, especialmente cuando el número de tuplas

involucradas es muy grande. En una BDD, cuando los atributos relevantes están en

diferentes fragmentos de datos y localizados en diferentes sitios, se genera un costo

adicional debido al acceso de datos remotos. Por esto, una de las características

deseables de una BDD que se debe favorecer con la FV, es la accesibilidad local en

cualquier sitio.

Si cada aplicación accediera a un subconjunto diferente y disjunto de atributos, el diseño

de la fragmentación vertical sería obvio; sin embargo, en la práctica, lo más común es

que las aplicaciones accedan a conjuntos de atributos diferentes y solapados. Un aspecto

a decidir es si los fragmentos van a ser solapados o disjuntos. En el primer caso, los

fragmentos se adaptan mejor a los requerimientos de las aplicaciones al aumentar las

posibilidades de encontrar en un solo fragmento los datos requeridos. Esto aumenta la

complejidad de un sistema y los esfuerzos por mantener la consistencia de la BD. En el

segundo caso no hay redundancia, pero una determinada fragmentación puede afectar

aquellas aplicaciones que al ejecutarse usen atributos de más de un fragmento, siendo

necesaria la realización de un acople, operación que es costosa, en particular cuando los

fragmentos se encuentran en distintos sitios de la red.

Por tanto, no basta con maximizar el número de aplicaciones que acceden a un solo

fragmento y minimizar las que acceden a más de uno, sino que es necesario evaluar

cómo influye una determinada fragmentación en el rendimiento total de un sistema.

Para esto se debería tener en cuenta toda una serie de aspectos como son: la frecuencia

de activación de las transacciones, los métodos de acceso empleados, las estrategias de

procesamiento de transacciones, costos de transmisión y posibilidad de replicación,

entre otros.

Page 25: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

16

Una solución teórica simple al problema de la FV sería escoger un criterio o función

objetivo, evaluarlo para todas las posibles particiones y seleccionar aquella que optimiza

el criterio. Esta solución tiene dos grandes dificultades: Primero, la obtención de una

función objetivo que convierta todos los aspectos enumerados anteriormente en un

modelo matemático razonable; segundo, el número posible de particiones es muy

grande, incluso para un número moderado de atributos, de manera que incluso evaluar

el criterio más simple para todas las particiones no resulta factible. El número total de

particiones en una relación con n atributos está dado por el n-ésimo número de Bell

B(n) (Őzsu and Valduriez, 1999), donde n es el número de atributos de la relación. Para

valores grandes de n, B(n)≈ nn. Esto conduce a la idea, bastante aceptada, de que es

inútil buscar soluciones óptimas exactas al problema de la FV, y es necesario recurrir a

heurísticas que disminuyan el espacio de solución. Cuando éstas son usadas, se obtiene

una solución cercana a la óptima para la partición de los atributos, usando un proceso de

minimización paso a paso. En este caso se comienza con una partición y se intenta

derivar de ella una nueva partición que sea superior a la original por el hecho de que la

BD fragmentada de acuerdo a la nueva partición tendrá un menor costo de

procesamiento. Cuando esto es logrado, la heurística trata de obtener mejoras a partir de

la nueva partición derivada. Cada vez que tiene éxito mejorar una partición, mejora el

rendimiento de la BD. Este proceso continúa hasta que no se puedan hacer mejoras a la

última fragmentación obtenida; por tanto, ésta será el resultado de la heurística de

fragmentación de atributos. Desde este punto de vista existen dos alternativas:

agrupamiento y particionamiento. La primera considera inicialmente cada atributo como

un fragmento, y a partir de ahí va uniendo los fragmentos entre sí para obtener las

particiones candidatas. La segunda se inicia de un solo fragmento que abarca toda la

relación y va dividiéndolo para ir obteniendo los nuevos fragmentos candidatos. Esta

Page 26: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

17

última se considera la más apropiada pues la solución óptima debe estar más cerca de la

relación original y no de fragmentos compuestos por cada atributo independiente.

El concepto de usar la FV con el objetivo de mejorar el rendimiento de los Sistemas

Manejadores de BD (SMBD) ha aparecido con frecuencia en la literatura, y aparecen

trabajos que buscan una solución óptima del problema y otros que usan heurísticas para

hallar la solución. En general, la FV proyecta una relación en subconjuntos de sus

atributos conservando la llave en cada proyección, que puede ser recompuesta

posteriormente mediante el operador de acople.

Hoffer y Severance (Hoffer and Severance, 1975a) miden la afinidad entre cada par de

atributos construyendo una Matriz de Afinidad de Atributos (AA) que sirve de base para

agrupar los atributos en clusters usando el Algoritmo de Energía de Enlace (BEA,

acrónimo del inglés Bond Energy Algorithm) desarrollado en (McCormick et al.,

1972b). Esto permite reducir grandemente el número de fragmentos a evaluar en las

fases posteriores del diseño. Este algoritmo se considera apropiado ya que está diseñado

específicamente para determinar grupos de elementos similares y no una ordenación

lineal de estos, el agrupamiento final no depende del orden en que los elementos fueron

presentados al algoritmo, y la complejidad del algoritmo es razonable, del orden de O(n)

donde n es el número de atributos. Se puede decir que la simetría de la matriz AA

permite la permutación en parejas de filas y columnas, lo que reduce su complejidad. En

dicho trabajo se deja al criterio subjetivo del diseñador la selección de los grupos de

atributos que formarán los fragmentos. Además, la similitud entre un par de atributos

puede ser inadecuada si no se tiene en cuenta la similitud entre grupos mayores de

atributos. Este trabajo sirvió de motivación para la mayoría de los trabajos siguientes

sobre fragmentación vertical.

Page 27: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

18

Navathe et al. (Navathe et al., 1984b) dividen el problema en dos etapas. Primeramente

efectúan la fragmentación de las relaciones aplicando diferentes funciones objetivo

empíricas que agrupan los atributos extendiendo los trabajos de Hoffer y Severance

(Hoffer and Severance, 1975a) mediante el algoritmo BEA. Estos algoritmos

determinan grupos de atributos en fragmentos solapados y no solapados aplicando FV a

tres tipos de BD (distribuidas, sin jerarquía de memoria, y con jerarquía de memoria)

con el objetivo de minimizar el número de fragmentos que usa una aplicación, y refinar

los fragmentos usando factores de costo que reflejan el ambiente físico donde se

almacena la BD. Posteriormente se realiza la ubicación replicada o no de fragmentos a

sitios, de forma que se maximice el procesamiento local de aplicaciones aplicando un

algoritmo heurístico de tipo goloso (greedy). La metodología empleada es de

particionamiento en lugar de agrupamiento.

Cornell y Yu (Cornell and Yu, 1987) optimizaron el trabajo de Ceri (Ceri and Pernici,

1985) desarrollando un algoritmo para la FV, que obtiene una partición binaria óptima

para BD relacionales usando información de factores físicos para disminuir el número

de accesos a disco. Posteriores refinamientos son logrados aplicando un algoritmo de

partición binaria iterativamente.

Öszu y Valduriez (Őzsu and Valduriez, 1999) discuten este trabajo previo sobre FV en

BDD usando información de las frecuencias de acceso y aplican el algoritmo BEA. Los

grupos de atributos son clusterizados y se usan ecuaciones de costo para definir la mejor

posición a lo largo de la diagonal de la matriz clusterizada para dividir la relación en

fragmentos. Los factores de costo reflejan el ambiente físico en el que los fragmentos

van a estar almacenados.

Muthuraj et al. (Muthuraj et al., 1993) presentan un trabajo donde se argumenta que los

primeros algoritmos para la FV son ad hoc, por eso se propone una función objetivo

Page 28: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

19

llamada Evaluador de Particiones para determinar la calidad de las particiones

generadas por varios algoritmos. Dicho evaluador consta de dos términos: los costos por

accesos a atributos locales irrelevantes y los costos por acceder a atributos remotos

relevantes. El primero mide los costos del procesamiento local de las aplicaciones

debido a accesos a atributos irrelevantes, y el segundo mide los costos del

procesamiento remoto debido a las aplicaciones remotas que acceden a atributos

relevantes. Se estudia explícitamente el problema referente a la FV n-aria. Esta

fragmentación se efectúa con distintos propósitos, como por ejemplo en los SBDD, en

la cual se crean fragmentos para ubicarlos en los diferentes sitios de la red, o también en

los SBD centralizadas a fin de ubicar los fragmentos dentro de diferentes jerarquías de

memoria.

En resumen, la FV se usa durante el diseño de la BDD para mejorar el rendimiento de

las transacciones, incrementar el procesamiento local y minimizar el acceso a datos

remotos, aumentar el paralelismo durante la ejecución de las consultas, la concurrencia

y el rendimiento.

1.3.3 Fragmentación mixta

Existe otra estrategia de fragmentación denominada mixta (FM), donde

simultáneamente se aplican ambos tipos (FH y FV) al mismo esquema. Esta estrategia

no es considerada básica, pero es obvio que muchas particiones de la vida real pueden

ser mixtas. La FM es generada a través de la aplicación recursiva de operadores del

álgebra relacional en los fragmentos.

La fragmentación mixta puede ser convenientemente representada por un árbol de

fragmentación, en el cual la raíz corresponda a la relación global, las ramas

correspondan a los fragmentos y los nodos intermedios correspondan a resultados

Page 29: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

20

intermedios de las expresiones de fragmentación definidas (véase la figura 1.1). Los

nodos hijos de un nodo determinado representan la descomposición de este nodo por

una operación de fragmentación (Ceri and Pelagatti, 1984), (Őzsu and Patrick, 1999).

Figura 1.1 Árbol de Fragmentación Mixta

Como se ha podido observar, para el diseño de la fragmentación se necesita una gran

variedad de información difícil de obtener, y demanda experiencia en los diseñadores;

así como los métodos para dar solución a los problemas planteados son de una elevada

complejidad computacional, por lo que se sugiere el uso de heurísticas que permitan

obtener soluciones con menor esfuerzo.

1.4 El problema de caracterización de las aplicaciones

En la literatura aparecen dispersos los requerimientos del universo de discurso en varios

momentos del proceso de modelación. En el presente trabajo se aborda la

sistematización del proceso de caracterización de las aplicaciones. Así es necesario

captar la información sobre los patrones de acceso y uso de las aplicaciones sobre la

BD, de utilidad en el diseño de la distribución. El diseñador, bien por su experiencia o

estudios realizados, determina qué caracteriza a las aplicaciones activadas con mayor

Page 30: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

21

frecuencia. En realidad no siempre se pueden caracterizar todas las aplicaciones que

operan sobre la BD, pero al menos se caracteriza el 20 por ciento de las aplicaciones

más frecuentes o que realizan las aplicaciones más críticas en cuanto a volúmenes de

accesos a datos.

En el proceso de caracterización de las aplicaciones se solicita al diseñador la entrada de

la siguiente información:

Nombre o descriptor que identifique cada aplicación.

Esquemas que usa.

Para una potencial FV y su posterior asignación se hace necesario capturar:

Atributos de cada esquema usados por la aplicación así como el tipo de acceso de

lectura y/o escritura sobre cada atributo.

Selectividad de cada esquema que significa la cantidad estimada de tuplas a las que

accede la aplicación.

Sitios donde se activa cada aplicación y la frecuencia con que lo hace en cada sitio.

Para una potencial FHP y su posterior asignación se hace necesario capturar:

Predicados simples. Para sistematizar la modelación con la intención de favorecer la

localidad de procesamiento es útil adquirir los principios de localidad desde la

perspectiva de las aplicaciones mediante predicados simples y brindar al diseñador sólo

aquellos esquemas que sean usados por alguna aplicación.

1.5 Conclusiones parciales

El diseño de BDD requiere de mucho tiempo y los métodos involucrados en el mismo

son de alta complejidad computacional. Tanto la fragmentación como la asignación

requieren variada información acerca de los esquemas de la BD, las aplicaciones, los

Page 31: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 1

22

sitios y las redes de comunicación, pero cada cual ignora cómo la otra captura y usa esta

información. Cualquier metodología que lo intente puede ser muy compleja. Es por esto

que una ayuda puede ser a través del uso de herramientas computacionales. Como

antecedente se han desarrollado dos herramientas de ayuda, una para recopilar los

parámetros de acceso y uso de las aplicaciones, y otra para ayudar a la fragmentación

que aún poseen características objeto de perfección, adaptación y corrección.

Así, la hipótesis de esta investigación se formula de la forma siguiente:

Una versión mejorada de los asistentes para la caracterización de aplicaciones y la

fragmentación de esquemas utilizados en el diseño lógico de BDD permitirá realizar el

proceso de diseño de forma fácil, correcta y efectiva.

Page 32: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

23

CAPÍTULO 2. CARACTERIZACIÓN DE APLICACIONES EN EL

DISEÑO DE BDD

En este capítulo se hace énfasis en el funcionamiento de la herramienta para

caracterizar a las aplicaciones, así como al uso que recibe la información que a través de

ella se recepciona.

2.1 Características de la información sobre las aplicaciones

En la literatura aparecen dispersos los requerimientos del universo de discurso en varios

momentos del proceso de modelación. Antes de comenzar el proceso de fragmentación

el diseñador debe poseer información de la base de datos e información de las

aplicaciones (Ceri and Pelagatti, 1984), (Ceri et al., 1989), (Őzsu and Valduriez, 1999).

La información de la base de datos es la concerniente al esquema conceptual global, en

el cual es necesario representar las relaciones, sus atributos y la conexión entre

relaciones.

La información de las aplicaciones debe representarse en términos cualitativos y

cuantitativos. La cualitativa guía la actividad de fragmentación, mientras que la

información cuantitativa se incorpora fundamentalmente a los modelos de localización.

2.1.1 Información cualitativa

La principal información cualitativa describe los predicados que satisfacen las

aplicaciones de los usuarios. Dichos predicados deben guiar la localidad de las

aplicaciones, es por ello que se definen en base a predicados elementales o simples que

los usuarios suministran para indicar las agrupaciones físicas de los datos que se

presentan para las diferentes aplicaciones, y luego estos predicados simples se combinan

Page 33: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

24

adecuadamente para reflejar, por último, la localidad integrada del grupo de

aplicaciones.

Los predicados simples pj son expresiones formadas por las cláusulas:

pj : < Ai > <operador> <Valor>,

donde <Ai> es un atributo que pertenece a la relación R y debe estar definido sobre un

dominio Di, <operador> ∈ {=, <, ≤, >, ≥} y <valor> es seleccionado del dominio de Ai

(Valor ∈ Di).

Frecuentemente, las solicitudes de usuarios requieren predicados más complejos que

pueden expresarse como combinaciones booleanas de predicados simples. Los

predicados minterms son un tipo de combinación que puede definirse como la

conjunción de todos los predicados simples tanto en su forma natural como negada

(Őzsu and Valduriez, 1999).

Así, para un conjunto de predicados simples Pri = {pi1, pi2,..., pim}, el conjunto de

predicados minterm Mi = { mi1, mi2,..., miz } se define como:

Mi = { mij| mij = Λ pik*}, 1 ≤ k ≤ m, 1 ≤ j ≤ z donde pik

* = pik o pik*= ⎤ pik.

pik ∈ Pri

Los predicados de selección o predicados simples, a partir de los cuales se hallan los

predicados minterms, que determinan el proceso de fragmentación deben poseer dos

propiedades fundamentales para garantizar una fragmentación correcta y eficiente:

completitud y minimalidad.

Un conjunto de predicados Pr es completo si garantiza, para cada aplicación del

conjunto de aplicaciones, que dos tuplas cualesquiera de un mismo fragmento sean

accedidas con igual probabilidad. Esta propiedad permite que todos los elementos de un

Page 34: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

25

fragmento sean referenciados de forma homogénea por cada aplicación. Por su parte, la

minimalidad es una propiedad mucho más intuitiva y generalmente se apela a la

experiencia y sentido común del diseñador más que al empleo de técnicas formales. El

conjunto de predicados Pr es minimal si todos los predicados son relevantes en la

determinación de la fragmentación, o sea, si para cada predicado pj, que causa que la

relación R se fragmente en Ri y Rj, existe al menos una aplicación que accede de forma

diferente a ambos fragmentos. Se puede afirmar que un conjunto minimal es siempre

completo, sin embargo lo contrario no siempre es verdadero.

2.1.2 Información cuantitativa

Con respecto a la información cuantitativa acerca de las aplicaciones es necesario

conocer:

• Selectividad del minterm. Número de tuplas de la relación que pueden ser

accedidas por una solicitud especificada acorde a un predicado minterm dado.

• Frecuencia de acceso. Frecuencia con la que las aplicaciones acceden a los

datos, o sea, frecuencia de activación de la aplicación en cada sitio.

• El tipo de acceso (lectura o escritura) realizado por la aplicación a cada objeto de

datos.

Todos los datos de entrada a este asistente se encuentras en las tablas:

• Schemata

• GlobalAttributes

• Sites

Una vez introducida toda la información esta se almacena al catálogo en las tablas

siguientes:

Page 35: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

26

• Applications

• App_Schemata

• App_Attribute

• App_Site

• Predicates

2.2 Diagramas de clases del asistente AppWizard

La información que la herramienta permite captar puede dividirse en grupos o

categorías. Estas son: el acceso de la aplicación a los esquemas, a los atributos, la

definición de los predicados simples y los sitios donde se activa. Para manejar esta

información que difiere de una categoría a otra, se implementaron las clases TSchema,

TAttribute, TPredicate y TSites respectivamente, con el objetivo de independizar el

trabajo con el catálogo del diseño. La colaboración de las clases entre sí se realiza a

través de TCharacterizer. La figura 2.1 muestra la colaboración entre las clases

implementadas para la construcción del asistente, así como una vista de sus atributos y

métodos.

Page 36: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

27

Figura 2.1 Diagrama de clases del AppWizard.

2.3 Interfaz del asistente AppWizard

En este trabajo se sistematiza el proceso de caracterización de las aplicaciones más

relevantes mediante la herramienta AppWizard. Esta herramienta capta la información

sobre los patrones de acceso y uso de las aplicaciones sobre la BD, de utilidad en el

diseño de la distribución. Esta herramienta tiene forma de asistente capaz de introducir

en el catálogo, elemento integrador del diseño, los datos que el diseñador, bien por su

Page 37: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

28

experiencia o estudios realizados, determina que caracterizan a las aplicaciones

activadas con mayor frecuencia. Como se expresó en el capítulo 1, no siempre se

pueden caracterizar todas las aplicaciones que operan sobre la BD, pero al menos se

debe caracterizar el 20 por ciento de las aplicaciones más frecuentes o que realizan las

aplicaciones más críticas en cuanto a volúmenes de accesos a datos.

En el proceso de caracterización de las aplicaciones, esta herramienta solicita al

diseñador la entrada de la siguiente información: nombre o descriptor que identifique

cada aplicación, esquemas que usa.

Para una potencial FV y su posterior asignación se hace necesario capturar: atributos de

cada esquema usados por la aplicación así como el tipo de acceso de lectura y/o

escritura sobre cada atributo, selectividad de cada esquema que significa la cantidad

estimada de tuplas a las que accede la aplicación, sitios donde se activa cada aplicación

y la frecuencia con que lo hace en cada sitio. Para una potencial FHP y su posterior

asignación se hace necesario capturar: predicados simples. Para sistematizar la

modelación con la intención de favorecer la localidad de procesamiento se tomó la

decisión de adquirir los principios de localidad desde la perspectiva de las aplicaciones

mediante predicados simples y brindar al diseñador sólo aquellos esquemas que sean

usados por alguna aplicación. La captura de estos predicados simples se realiza

mediante un constructor de expresiones que, a la vez que permite su edición, realiza la

validación de los predicados (véase la figura 2.2).

Page 38: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

29

Figura 2.2 Edición de los predicados simples.

1- Eliminar los predicados simples que estén seleccionados.

2- Eliminar todos los predicados simples.

3- Seleccionar el operador (<, >, <=, >=, =).

4- Seleccionar o no para determinar si sobre él actuará 1.

5- Doble clic para seleccionar el atributo.

Los datos de entrada al asistente son obtenidos por ERECASE (Álvarez et al., 2006) y

NetWizard (Rodríguez et al., 2007b) y depositados en el catálogo compartido por las

aplicaciones desarrolladas en el Laboratorio de Bases de Datos del Centro de Estudios

de Informática de la Universidad Central de Las Villas (Rodríguez and González, 2008).

Las salidas se guardan en este catálogo, quedando disponibles para las herramientas que

continúan con el proceso de diseño, o ejecuciones posteriores de este asistente.

1 2

3

4

5

Page 39: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 2

30

2.4 Conclusiones parciales

El asistente AppWizard obtenido colabora con las otras herramientas referidas en el

acápite anterior como ayuda al diseño de BDD, aunque puede usarse de forma

independiente. Esta herramienta les permite a los diseñadores caracterizar las

principales aplicaciones en forma de asistente fácil de usar para capturar una gran

variedad de información sobre las aplicaciones más representativas en el universo de

discurso objeto de modelación.

Page 40: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

31

CAPÍTULO 3. ASISTENTE PARA LA FRAGMENTACIÓN

En este capítulo se describen las metodologías y los algoritmos que se utilizaron a la

hora de la creación del asistente para la guía del proceso de la fragmentación de BD.

3.1 Fragmentación horizontal

Para realizar la FH, como se vio en el Capítulo 1, es necesario tener información acerca

de la BD y de las aplicaciones que las utilizan. La información necesaria sobre la BD es

la referida al esquema conceptual global. En este sentido es importante tener las

relaciones que lo componen, la cardinalidad de cada relación y las dependencias entre

ellas. De aquí se tienen los esquemas candidatos a ser fragmentados. Como se expresó

en el capítulo 2, AppWizard caracteriza las aplicaciones más relevantes, en particular

obtiene los predicados simples definidos por el usuario.

3.1.1 Algoritmo para la fragmentación horizontal primaria

Un fragmento se define como el conjunto de todas las tuplas que satisfacen un

predicado minterm.

Rj = σFj (R), 1≤ j ≤ w (w representa la cantidad de predicados minterms).

Como se expuso en el Capítulo 2, para que los fragmentos minterms reflejen

correctamente la fragmentación, el conjunto de predicados simples que le sirve de base,

debe cumplir determinadas propiedades, como ser completo y minimal.

El primer paso para la FHP consiste en obtener un conjunto de predicados simples

mínimos y completos Pr’, a partir del conjunto de predicados simples Pr, definido por

el diseñador a través del caracterizador de aplicaciones.

El siguiente método permite construir P completo y minimal.

Page 41: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

32

Regla 1: Regla fundamental de completitud y minimalidad; dividir una relación o

fragmento en al menos dos partes que sean accedidas de forma diferente por al menos

una aplicación acorde a un predicado p1. Sea P= p1

Método:

Considerar un nuevo predicado pi que particione al menos a un fragmento en dos

partes que sean referenciadas en una forma diferente por al menor una

aplicación.

Sea P= P ∪ pi,

Eliminar predicados no relevantes de P.

Repetir este método hasta que P sea completo.

Para implementar éste método se puede seguir el algoritmo iterativo denominado

COM_MIN (Őzsu and Valduriez, 1999), donde se usa la siguiente notación.

Fi de PM: Fragmento fi respecto a un predicado minterm definido sobre lo predicados de

PM.

Algoritmo COM_MIN

Entrada:

R: relación

Pr: conjunto de predicados simples

Salida:

Pr’: conjunto de predicados simples

Declarar

F: conjunto de predicados minterms

Page 42: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

33

Inicio

encontrar un pi ∈ Pr tal que pi parta a R de acuerdo con la Regla 1;

Pr’←pi

Pr←Pr – pi

F←fi // fi es el fragmento minterm respecto a pi

hacer

inicio

encontrar un pj ∈ Pr tal que pj parta a un fk de Pr’ de acuerdo

con la Regla 1;

Pr’←Pr’∪pj

Pr←Pr – pj

F←F∪fj

si ∃pk∈Pr’ irrelevante entonces

inicio

Pr’←Pr’ – pk

F←F – fk

fin-si

fin-inicio

hasta que Pr’ esté completo

Fin. {COM_MIN}

Page 43: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

34

El segundo paso es derivar el conjunto de predicados minterms que pueden definirse

sobre los predicados del conjunto Pr’. Estos predicados minterms establecen los

fragmentos candidatos para el proceso de asignación.

El establecimiento de los predicados minterms es trivial; la dificultad radica en el

tamaño del conjunto, que puede ser muy grande (de hecho, exponencial respecto al

número de predicados simples).

El tercer paso aborda la eliminación de algunos fragmentos minterms que puedan ser

redundantes. Esta eliminación se desarrolla identificando aquellos minterms que puedan

resultar contradictorios sobre un conjunto de implicaciones I. Por ejemplo, si Pr’ = {p1,

p2}, donde

p1: atributo = valor_1

p2: atributo = valor_2

y el dominio de atributo es {valor_1, valor_2}, es obvio que I contiene las dos

implicaciones siguientes

i1: (atributo = valor_1) ⇒ ¬(atributo = valor_2)

i2: ¬(atributo = valor_1) ⇒ (atributo = valor_2)

Los siguientes cuatro predicados minterms se definen de acuerdo a Pr’:

m1: (atributo = valor_1) ∧ (atributo = valor_2)

m2: (atributo = valor_1) ∧ ¬(atributo = valor_2)

m3: ¬(atributo = valor_1) ∧ (atributo = valor_2)

m4: ¬(atributo = valor_1) ∧ ¬(atributo = valor_2)

Page 44: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

35

En este caso los predicados minterms m1 y m4 resultan contradictorios respecto a las

implicaciones I y pueden eliminarse de M.

La entrada al algoritmo HORIZONTALP (Őzsu and Valduriez, 1999) es una relación Ri

sujeta a la fragmentación, y Pri, el conjunto de predicados simples que se establecieron

de acuerdo a las aplicaciones definidas sobre la relación Ri.

Algoritmo HORIZONTALP

Entrada:

Ri: relación

Pri: conjunto de predicados simples

Salida:

Mi: conjunto de fragmentos minterms

Inicio

Pr’i←COM_MIN(Ri, Pri) // construir Pr’i completo y minimal

determinar el conjunto Mi de predicados minterms;

determinar el conjunto Ii de implicaciones de pi∈Pr’i;

para cada mi∈Mi hacer

si mi es contradictorio respecto a I

entonces

Mi←Mi – mi

fin-si

fin-para

Fin. {HORIZONTALP}

Conjunto de predicados simples mínimo y completo

La esencia del algoritmo COM_MIN es eliminar los predicados redundantes para

producir un conjunto mínimo y luego usar los complementos para hacer el conjunto

Page 45: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

36

completo cuando se necesite crear los minterms. Sin embargo, implementar la Regla 1

no es tan sencillo. Existe el algoritmo M-COM_MIN* que modifica COM_MIN para

encontrar el conjunto de predicados simples mínimo y completo, con resultado en

esencia igual al producido por el algoritmo COM_MIN y sencillo a la hora de

implementarlo (Rodríguez and González, 2008). Este algoritmo consta de los siguientes

pasos:

Método M-COM_MIN*

Entrada:

R: Esquema propietario de la BD, Pr: Conjunto de predicados simples

Salida:

Pr’: Conjunto de predicados simples mínimo y completo

Inicio:

Pr’← Pr

Paso 1: Agrupar Pr’ por atributo

Para cada grupo obtenido hacer los pasos del 2 al 6:

Paso 2: Ordenar los grupos obtenidos en Pr’ de acuerdo al valor del atributo

involucrado. Este paso es para lograr mayor eficiencia que la de COM_MIN a la

hora de eliminar los predicados redundantes. Si existen varios predicados con igual

significado, el valor debe ser el mismo. Por tanto después del proceso de

ordenamiento, ellos deben estar adyacentes.

Paso 3: Estandarizar los predicados en Pr’ y eliminar redundantes. En la

estandarización los operadores > y ≥ se cambian a su forma complementaria ya que

Page 46: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

37

un predicado simple es esencialmente el mismo que su forma complementaria.

Seguidamente se eliminan los redundantes.

Paso 4: Obtener un conjunto en el cual el mismo valor aparezca a lo sumo tres

veces. Bajo esta condición, basta con solo tener los operadores < e =. Luego, si

existen tres valores adyacentes iguales, se deben cambiar por dos predicados con

igual atributo y valor pero con los operadores < e =, eliminando el tercer predicado,

ya que en el paso siguiente se añaden los complementos.

Paso 5: Adicionar los complementos al conjunto Pr’. Para aquellos predicados con

operador = y que no tengan el mismo valor que su predecesor (se esta asumiendo

que siempre el < y ≤ estarán delante de = para un mismo atributo e igual valor,

obtenido en el paso 2) y no todos los predicados tengan como operador el =, insertar

el operador < delante.

Paso 6: Colocar el complemento en la posición final de Pr’. Cuando todos los

predicados sean de operadores =, insertar una condición al final que signifique la

negación de todos los predicados anteriores a esta posición; en caso contrario,

insertar en la posición final una condición complemento, en dependencia del

predicado predecesor. Al concluir este paso se tiene un conjunto de predicados

mínimo y completo.

Paso 7: Unir los grupos obtenidos en Pr’. Al final se obtienen varios conjuntos de

predicados basados en el mismo atributo. Si unen todos esos conjuntos se obtiene el

conjunto Pr’ de predicados simples mínimo y completo.

Fin M-COM_MIN*

En el método M-COM_MIN* se han ordenado los predicados según su valor y se han

eliminado los redundantes basado en sus atributos. Si existiesen predicados que no

Page 47: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

38

dividieran más un fragmento, al cambiarlos a forma estándar no sufrirán cambios. Por

tanto, no existen predicados no relevantes. Además, por la forma en que han sido

captados los predicados mediante un constructor de expresiones en AppWizard, se tiene

el predicado si no existe redundancia y si hay alguna aplicación que lo utiliza. De esta

forma nunca existirán dos o más fragmentos que sean siempre accedidos

simultáneamente por cualquier aplicación. En otras palabras, al menos una aplicación

accede a los dos fragmentos de forma diferente. Luego el conjunto de predicados que se

obtuvo es mínimo. Si existiese algún predicado usado por una aplicación, será insertado

en este conjunto de predicados. Luego de la fragmentación, se asegura que todas las

condiciones han sido incluidas en los predicados minterms. Si alguna aplicación

accediera a los fragmentos, podría acceder a todas las tuplas en el fragmento. Es decir,

las tuplas en los fragmentos son accedidos uniformemente y tienen igual probabilidad.

Entonces la completitud está garantizada.

En la obtención del conjunto de predicados minterms para realizar la FHP, se combinan

los predicados simples obtenidos mediante el método M-COM_MIN* de cada conjunto

usando la operación AND sin repetir predicados del mismo conjunto en cada

combinación. En este proceso se puede observar que no se obtendrán predicados

minterms contradictorios, debido a que se selecciona una sola condición de cada

atributo cada vez. Además se puede saber cuántos predicados minterms serán obtenidos,

es decir cuántos fragmentos se obtendrán con solo multiplicar la cantidad de elementos

de cada conjunto intermedio. La complejidad del algoritmo es de O(n4).

Como se garantiza que no existan minterms contradictorios no existen implicaciones

lógicas que no son necesarias tratar. Además se garantiza que el número de minterms a

generar sea menor que el conjunto total de combinaciones posibles, logrando así que se

generen sólo aquellos que estén correctos. Es preciso destacar que siempre quedan

Page 48: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

39

aquellas implicaciones lógicas que representan contradicciones de carácter semántico.

Estas implicaciones son muy específicas del sistema que se esté diseñado y por tanto es

muy difícil automatizar su eliminación. Así, el asistente para la fragmentación

denominado Fragmenter ofrece la posibilidad de eliminar aquellos que sean

contradictorios de acuerdo a la semántica del problema, lo que demanda un

conocimiento profundo del problema por parte del diseñador.

Corrección de la fragmentación horizontal primaria

Completitud. Se basa en la selección de los predicados a usar. En la medida en que los

predicados seleccionados sean completos, se garantizará que la fragmentación también

lo sea. Como el algoritmo antes mencionado parte de la base de obtener el conjunto de

predicados Pr’ completo y mínimo, se garantiza la completitud.

Reconstrucción. La reconstrucción de una relación global a partir de sus fragmentos se

desarrolla con el operador de unión. Si la relación R es fragmentada en FR = (R1, R2,...,

Rr), entonces, R = ∪Ri ∀RI ∈ FR

Disyunción. Se garantiza en la medida en que los predicados minterms que determinan

la fragmentación sean mutuamente exclusivos.

3.1.2 Algoritmo para la fragmentación horizontal derivada

La FHD se aplica a relaciones miembros (relaciones con llaves foráneas con referencias

a relaciones propietarias donde se definen llaves primarias) a través de llaves foráneas

que hacen referencia a esquemas con FHP. Una FHD se define sobre una relación

miembro de acuerdo a una operación de selección especificada sobre su propietaria. El

enlace entre las relaciones propietarias y miembros se define como un semiacople. Este

punto es especialmente importante, ya que se desea fraccionar una relación miembro

Page 49: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

40

según la fragmentación de su propietaria, además es necesario que el fragmento

resultante se defina únicamente sobre los atributos de la relación miembro.

El algoritmo de fragmentación derivada consta de varias entradas:

- El conjunto de particiones de la relación propietaria.

- La relación miembro.

- El conjunto de predicados de semiacople entre el propietario y el miembro.

Para realizar la FHD se usa dos criterios CFHD1 y CFHD2 siguiendo el método

Hacer_FHD (Rodríguez and González, 2008).

Método Hacer_FHD.

Si es aplicable CFHD1 Entonces

Aplicar CFHD1

En otro caso

Aplicar CFHD2

Fin Hacer_FHD

Los criterios en cuestión son:

CFHD1: Si el esquema a fragmentar fue obtenido como resultado de la transformación

realizada por ERECASE a una asociación con dependencia de existencia, se efectúa la

FHD a partir del esquema de mayor cardinalidad que tenga realizada una FHP.

CFHD2: Usar el criterio de la fragmentación usada en más aplicaciones. Su

implementación es muy directa, considerando la frecuencia con la cual las aplicaciones

acceden a los datos y que es capturada por AppWizard.

Page 50: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

41

Corrección de la fragmentación horizontal derivada

Completitud. Sea R la relación miembro de un enlace cuya propietaria es la relación S,

fragmentada como FS = {S1, S2, ..., Sw}. Además, sea A el atributo de acople entre R y S.

Entonces para cada tupla t de R, existirá una tupla t’ de S tal que t[A] = t’[A].

A esta regla se le conoce como integridad referencial y asegura que las tuplas de

cualquier fragmento de la relación miembro están también en la relación propietaria.

Reconstrucción. La reconstrucción de una relación global a partir de sus fragmentos se

desarrolla con el operador de unión. Si la relación R es fragmentada en FR = (R1, R2, ...,

Rr), entonces, R = ∪Ri ∀RI ∈ FR

Disyunción. Establecer esta condición para la fragmentación horizontal derivada no es

tan simple como lo es en la fragmentación horizontal primaria ya que existe una

operación de semiacoples que añade complejidad al asunto. Esta condición puede

garantizarse si el grafo de acople es simple. Si no es simple, será necesario investigar

los valores de las tuplas.

Por último, se deben destacar dos aspectos. Primeramente, la FHD puede seguir una

cadena donde una relación miembro se fragmenta como resultado del diseño de otra y

provoca la fragmentación de otra relación miembro. Esto se tuvo en cuenta a la hora de

diseñar el fragmentador vertical, que consiste en la llamada para cada propietario, al

algoritmo recursivo RecurFragmenter. Segundo, normalmente, existirá más de una

forma de fragmentar una relación y para ello se siguió el método Hacer_FHD.

Page 51: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

42

Algoritmo RecurFragmenter

Entrada:

Pi propietario

Mi miembro

Salida:

Fi Conjunto de Fragmentos derivados que se obtuvieron

Inicio:

Buscar todos los Pj Mi

Encontrar el Pj por el que se fragmenta Mi

Si j = i entonces

inicio

fragmento Mi por Pj

RecurFragmenter (Mi , con todos Mk miembros de Mi)

fin

Sino

Exit

End.

3.2 Fragmentación Vertical

Para la FV la información requerida, fundamentalmente está relacionada con las

aplicaciones y cómo estas acceden a los datos. Sea Q={q1, q2,…, qq} el conjunto de

consultas o aplicaciones que se ejecutan sobre la relación R(A1, A2, …, An). Se define:

Page 52: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

43

iku define la Matriz de Uso de atributos (AU) donde la entrada (k, i) denota uki.

jkFreq : frecuencia de activación de la apicación k en el sitio j.

kjn : número de tuplas de la relación R que la aplicación k trata en el sitio j.

kacc : número total de tuplas que la aplicación k trata en todos los sitios.

Por tanto:

kacc = ∑ kjn jkFreq 1 <= j <= número de sitios

A partir de la matriz AU se obtiene la matriz AA. La afinidad entre dos atributos se

define, siendo k todas las aplicaciones que utilizan los atributos ij, como:

∑= kij accaff

Esta es una medida del vínculo que existe entre dos atributos, y se calcula en función de

las aplicaciones que los acceden juntos. En la matriz AA la entrada (i, j) se corresponde

con aff ij. Esto produce una matriz cuadrada de orden n y simétrica. Los valores de la

diagonal son calculados aunque carecen de sentido.

3.2.1 Algoritmo de Hoffer y Severance

Hoffer y Severance (Hoffer and Severance, 1975b) miden la afinidad entre cada par de

atributos de la forma definida anteriormente, construyen la Matriz de Afinidad de

Atributos (AA) y sobre la base de esta agrupan los atributos usando el Algoritmo de

⎩⎨⎧

=.0

.1contrariocasoen

iatributoelusakntransacciólasiu ik

Page 53: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

44

Energía de Enlace (BEA) (McCormick et al., 1972a). Esto permite reducir el número de

fragmentos a evaluar en las fases posteriores del diseño.

Este algoritmo se considera apropiado por las siguientes razones:

• Está diseñado específicamente para determinar grupos de elementos similares y

no una ordenación lineal de estos. Por ejemplo, agrupa los valores con mayor

afinidad en un grupo y los de menor afinidad en otro.

• El agrupamiento final no depende del orden en que los elementos fueron

presentados al algoritmo.

La complejidad del algoritmo es razonable (O(n) donde n es el número de atributos).

AA es simétrica. Por tanto permite la permutación en parejas de filas y columnas lo que

reduce la complejidad.

El algoritmo toma como entrada la matriz de afinidad, permuta sus filas y columnas y

genera una Matriz de Afinidad Clusterizada (CA). La permutación se realiza

maximizando la siguiente medida de afinidad global (AM):

[ ]∑∑= =

+−+− +++=n

i

n

jjijijijiji affaffaffaffaffAM

1 1,1,11,1,,

Este último conjunto de condiciones tiene en cuenta el caso cuando se va a colocar un

atributo fuera de los límites de los ya colocados.

La función de maximización considera sólo la vecindad más cercana a una posición, lo

que resulta en una agrupación que tiende a unir los atributos de mayor y menor afinidad

entre ellos.

La generación de la matriz CA es hecha en tres pasos:

Page 54: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

45

Inicialización: Toma arbitrariamente dos de las columnas de la matriz AA y la sitúa en

la matriz CA.

Iteración: Toma cada una de las restantes n-i columnas (donde i es el número de

columnas ya situadas en la matriz CA) e intenta colocarlas en las restantes i+1

posiciones de la matriz CA. Se escoge aquella ubicación que haga la mayor

contribución a la medida de afinidad global. Se continúa este paso hasta que no queden

columnas por localizar.

Ordenamiento de filas: Una vez determinado el orden de las columnas debe cambiarse

el orden de las filas para que estas últimas se correspondan con las primeras.

Donde:

jijkkijki bondbondbondcont ∗−∗+∗= 222

es la contribución neta a la medida de afinidad global de situar el atributo k entre los

atributos i y j, siendo:

∑=

=n

zjzizji affaffbond

1,,

Después de determinada la matriz CA se deja a juicio del diseñador la selección de los

fragmentos, identificando en ella los grupos de atributos con valores similares de

afinidad. Sin embargo no siempre esta identificación es sencilla, sobre todo cuando

muchas aplicaciones se ejecutan sobre una misma relación y estas usan diferentes

grupos de atributos.

3.2.2 Partición vertical binaria

Como se mencionó anteriormente el algoritmo de Hoffer y Severance deja al criterio

subjetivo del diseñador la selección de los grupos de atributos que formarán los

Page 55: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

46

fragmentos. Además, la similitud entre un par de atributos puede ser inadecuada si no se

tiene en cuenta la similitud entre grupos mayores de atributos. Navathe et al (Navathe et

al., 1984a) extienden lo anterior dando algoritmos para la determinación automática de

los grupos de atributos que forman los fragmentos y teniendo en cuenta en ellos grupos

de atributos con propiedades semejantes. La metodología empleada es de

particionamiento en lugar de agrupamiento. Esto es debido a que la solución óptima

debe estar más cerca del grupo compuesto por todos los atributos tomados como punto

de partida, que de los grupos formados por atributos simples.

El diseño de la fragmentación consta de dos fases. En la primera, el particionamiento

vertical está guiado por una noción empírica, en la cual se minimiza la necesidad de una

aplicación de visitar varios fragmentos. Esta fase no requiere factores de costos

detallados. Durante la segunda fase el diseño de los fragmentos puede ser refinado con

la incorporación de factores de costo, los cuales reflejan el ambiente físico en el que los

fragmentos van a estar almacenados.

3.2.3 Algoritmo basado en una función objetivo empírica

En este caso el objetivo de la fragmentación es encontrar conjuntos de atributos que

sean accedidos solos o al menos por distintos conjuntos de aplicaciones. El algoritmo

parte de la matriz CA para dividir un objeto en dos subconjuntos disjuntos. Se asume

que un punto x es fijado a lo largo de la diagonal principal de la matriz CA como se

muestra en la figura 3.1

Page 56: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

47

A1 A2 … Aj Aj+1 … An

A1 A2 . .

Aj

Aj+1 . .

An

U

L

X

Figura 3.1 Localización del punto divisor

El punto x define dos bloques: U (upper) y L (lower). Cada bloque define un fragmento

vertical formado por los atributos en ese bloque.

Sea A(k) el conjunto de atributos usados por la aplicación k, calculados de la siguiente

forma:

A(k)= {i | u ki = 1}

Y se define:

T= (t | t es una aplicación)

LT= (t | At ⊆ L)

UT= (t | At ⊆ U)

IT= T – (LT ∪ UT)

donde T representa el conjunto de todas las aplicaciones; LT y UT representan el

conjunto de aplicaciones que sólo necesitan acceder a L o T, respectivamente; e IT

representa el conjunto de aplicaciones que tienen que acceder a ambos fragmentos.

Sobre la base de los conjuntos anteriores se definen los siguientes costos:

Page 57: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

48

=

=

=

=

LTkk

Tkk

ITkk

UTkk

accCL

accCT

accCI

accCU

donde CT determina el número total de accesos de las aplicaciones al objeto

considerado; CL y CU cuentan el número total de accesos de las aplicaciones que

necesitan un solo fragmento y CI el número total de accesos de las aplicaciones que

necesitan ambos fragmentos.

Se consideran un total de n-1 posibles localizaciones del punto x a lo largo de la

diagonal principal, donde n es el tamaño de la matriz. Una fragmentación no solapada es

obtenida seleccionando un punto x que maximice la siguiente función objetivo z:

z = CL*CU-CI

La partición que corresponde al máximo valor de z es aceptada si z es positiva.

La función anterior proviene de un juicio empírico de lo que debe ser una buena

fragmentación. La función incrementa CL y CU y disminuye CI. Para un valor dado de

CI se selecciona CL y CU de manera tal que CL * CU sea máxima. Como resultado de

esto se seleccionan valores de CL y CU que son lo más cercanos posible, por tanto se

producen fragmentos que están balanceados con respecto a la carga de las aplicaciones.

Este algoritmo tiene la desventaja de no poder producir particiones de un objeto

mediante la selección de un bloque interior en CA. Esta desventaja puede ser evitada si

se usa un procedimiento que mueva la columna que está más a la izquierda en la matriz

CA hacia el extremo derecho y la fila del extremo superior hacia el extremo inferior,

desplazando las demás. Este procedimiento se activa un total de n veces, de forma tal

Page 58: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

49

que cada bloque tenga la posibilidad de situarse en la esquina superior izquierda, donde

si puede ser reconocido. Después de cada movimiento se ejecuta el algoritmo de

partición binaria determinándose la partición que maximiza z. Esto incrementa la

complejidad del algoritmo en un factor de n, resultando ahora O(n2).

Es posible diseñar una partición n-aria, aunque computacionalmente es costoso. En el

caso de una fragmentación n-aria no solapada, en general un algoritmo debe probar 1, 2

o … n-1 puntos a lo largo de la diagonal principal como puntos candidatos para definir

la partición. La complejidad de este algoritmo sería O(2n). Una solución para evitar esta

complejidad es aplicar recursivamente el algoritmo de partición binaria. En cada

iteración los fragmentos producidos por el algoritmo son considerados como dos objetos

distintos y la partición binaria es aplicada para fragmentar cada uno de ellos. Esto

genera dos subproblemas distintos. En cada subproblema son consideradas sólo aquellas

aplicaciones que usan algún atributo del fragmento considerado. El proceso termina

cuando no se recomienda fragmentar porque z no sea positiva.

Corrección de la fragmentación vertical

Completitud. La completitud de una FV es garantizada por el algoritmo de

particionamiento, ya que cada atributo de la relación global se asigna a uno de los

fragmentos, siempre y cuando el conjunto de atributos A sobre los cuales se define una

relación R consista en LUA U= la completitud de la FV se asegura.

Reconstrucción. La reconstrucción de la relación global original se hace por medio de

la operación de unión. Así, para una relación R con fragmentación vertical Fr = {R1,

R2,..., Rr} y llave K, riik FRRR ∈∀=>< .

Page 59: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

50

Por lo tanto, siempre que Ri sea completo, la operación de unión reconstruirá

adecuadamente R. Otro punto importante es que cada Ri debe contener a la llave de R, o

debe contener los identificadores de tuplas asignados por el sistema.

Fragmentos Disjuntos. Existen dos casos:

Los identificadores de tuplas no se consideran que se traslapen ya que ellos son

mantenidos por el sistema. Las llaves duplicadas no se consideran que se traslapen.

3.3 Diagrama de clases del asistente Fragmenter

A la hora de efectuar una fragmentación hay que decidirse por una de las variantes,

Fragmentación Horizontal ó Fragmentación Vertical, ya que la Fragmentación Mixta no

constituye un punto de decisión, sino la unión de estas. Cada una tiene características

bien diferentes en cuanto a implementación se refiere, y es por eso que se crearon

distintas clases para cada una de ellas, además de las que se incluyen para propósitos

necesarios. En la figura 3.2 se muestra la interacción entre las que indudablemente son

las principales clases del asistente.

Page 60: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

51

Figura 3.2 Diagrama de clases del Fragmenter.

3.4 Interfaz del asistente Fragmenter

En la creación de la herramienta Fragmenter fueron implementados algoritmos usando

los referentes expuestos en los dos acápites anteriores. A pesar de que la literatura

recomienda comenzar con la FH, por la experiencia del diseñador y las características

de la BD que se esté fragmentando, se puede realizar sólo la FV o iniciar el proceso con

ella cuando sea mejor para aumentar el rendimiento de las transacciones, incrementar el

Page 61: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

52

procesamiento local y minimizar el acceso a datos remotos, aumentar el paralelismo

durante la ejecución de las consultas, la concurrencia y el rendimiento.

La herramienta Fragmenter permite que el diseñador elija qué tipos de fragmentación

aplicará a cada esquema. Después de concluida una alternativa de fragmentación, se

pueda realizar otra alternativa obteniendo una FM. Cuando se decida realizar la FV

primeramente se seleccionan los esquemas que serán fragmentados y luego se

visualizan los fragmentos resultantes; para terminar debe pasar a la siguiente etapa

donde se guardan los resultados en el catálogo y se le brinda la posibilidad de terminar o

volver al inicio para tomar otra decisión. De seleccionar la FH se visualizan los

minterms de cada relación primaria y debe eliminar aquellos que considere

semánticamente contradictorios (véase la figura 3.3).

Figura 3.3 Minterms de las relaciones propietarias.

1- Clic para ver los minterms de cada esquema.

1

2

3

4

Page 62: Asistentes para el Diseño Lógico de Bases de Datos

C A P I T U L O 3

53

2- Seleccionar en caso de que desee que sobre él pueda actual la acción 3.

3- Eliminar minterms seleccionados.

4- Eliminar todos los minterms.

Al tener los minterms sobre los que se definen los fragmentos horizontales, se le

muestra al diseñador tanto los fragmentos horizontales primarios, como los derivados

(véase la figura 3.4).

Figura 3.4 Fragmentos horizontales primarios y derivados

3.5 Conclusiones parciales

Se ha obtenido una nueva versión de la herramienta Fragmenter que se integra con otras

herramientas de ayuda al diseño de BDD a través de un catálogo e implementa un

método específico para su uso en la FHD que no estaba contemplado en la versión

anterior. Además, mejora la gestión de acceso al catálogo a través de un Controlador

que optimiza las lecturas y escrituras al mismo.

Page 63: Asistentes para el Diseño Lógico de Bases de Datos

C O N C L U S I O N E S

54

CONCLUSIONES

Las herramientas obtenidas colaboran en un ambiente integrado como ayuda al diseño

de BDD, y además pueden usarse de forma independiente. Estas herramientas les

permiten a los diseñadores caracterizar las aplicaciones y realizar la fragmentación de

esquemas lógicos dentro del proceso de diseño de BDD.

1. AppWizard es un asistente fácil de usar para capturar una gran variedad de

información sobre las aplicaciones más representativas en el universo de

discurso objeto de modelación. Sin embargo, se requiere que el diseñador posea

suficiente conocimiento del problema para poder estimar los parámetros de

cardinalidad, selectividad y frecuencia de accesos solicitados por este asistente.

2. Fragmenter realiza la fragmentación de esquemas globales para obtener un

conjunto de fragmentos lógicos que luego serán objeto de ubicación en los

diferentes sitios de procesamiento donde residirá la BDD. Esta herramienta

integra tres módulos independientes para los diferentes tipos de fragmentación:

FHP, FHD y FV. De estos sólo se pueden elegir la FH y la FV, porque la FHD

se realiza automáticamente a partir de los resultados de la FHP. La FHP se basa

en el método clásico reportado en (Őzsu and Valduriez, 1999) sustituyendo el

método COM_MIN por M-COM-MIN* de mayor eficiencia, que también

asegura completitud y minimalidad. La FHD emplea como criterios para

seleccionar las llaves foráneas, que se deben priorizar para favorecer los acoples

con las llaves primarias respectivas, aquellos que aparecen en la literatura, y se

adiciona el criterio que tiene en cuenta el concepto de dependencia de existencia

presente en algunas asociaciones. La FV se realiza siguiendo el enfoque clásico

Page 64: Asistentes para el Diseño Lógico de Bases de Datos

C O N C L U S I O N E S

55

recogido en la literatura (Őzsu and Valduriez, 1999). Los resultados obtenidos

durante las pruebas fueron los esperados.

Page 65: Asistentes para el Diseño Lógico de Bases de Datos

R E C O M E N D A C I O N E S

56

RECOMENDACIONES

1. Las herramientas obtenidas han sido probadas con ejemplos sencillos de diseño de

BDD reportados en la bibliografía por lo que se recomienda probarlas con casos de

prueba reales para continuar la validación de las mismas.

2. En la herramienta Fragmenter se realiza la Fragmentación Horizontal Derivada de

manera automática, es decir, sin la intervención directa del diseñador; por lo que se

sugiere sea considerada la posibilidad de ofrecerle el control al diseñador para que

pueda limitar el proceso de fragmentación en cadena.

Page 66: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

57

REFERENCIAS BIBLIOGRÁFICAS

ÁGUILA, L. (2001) Aplicación de los algoritmos genéticos a la asignación de

fragmentos en bases de datos distribuidas. Departamento de Computación.

Santa Clara, Universidad Central de Las Villas.

ÁLVAREZ, W. A., RODRIGUEZ, A. & GARCÍA, C. E. (2006) ERECASE v.2.0. Una

herramienta para el diseño conceptual de bases de datos con validación

estructural. Departamento de Ciencia de la Computación. Santa Clara, Cuba,

Universidad Central "Marta Abreu" de Las Villas.

ARTILES, M. (2001) Herramienta para la ayuda a la fragmentación horizontal.

Departamento de Computación. Santa Clara, Universidad Central de Las Villas.

BAIÃO, F. A., MATTOSO, M., SHAVLIK, J. W. & ZAVERUCHA, G. (2003)

Applying Theory Revision to the Design of Distributed Databases. IN

HORVÁTH, T. & YAMAMOTO, A. (Eds.) Proceedings of the 13th

International Conference on Inductive Logic Programming ILP 2003, LNAI

2835. Szeged, Hungary, Springer.

BAIÃO, F. A., MATTOSO, M. & ZAVERUCHA, G. (2002) A Framework for the

Design of Distributed Databases. IN LITWIN, W. & LÉVY, G. (Eds.) Records

of the 4th International Meeting on Distributed Data & Structures 4 (WDAS

2002). Paris, France, Carleton Scientific.

BAIÃO, F. A., MATTOSO, M. & ZAVERUCHA, G. (2004) A Distribution Design

Methodology for Object DBMS. Distributed and Parallel Databases, 16, 45-90.

BELLATRECHE, L., KARLAPALEM, K. & SIMONET, A. (1997) Horizontal

Fragmentation in Distributed Object Database Systems. Proceedings of the 8th

Page 67: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

58

International Conference on Database and Expert Systems Applications DEXA

'97. Toulouse, France, Springer.

BELLATRECHE, L., KARLAPALEM, K. & SIMONET, A. (2000) Algorithms and

support for horizontal class partitioning in object-oriented databases. Distributed

and Parallel Databases, 8, 155-179.

BELLATRECHE, L. & SIMONET, A. (1996) Horizontal Fragmentation in Distributed

Object Database Systems. IN BÖSZÖRMÉNYI, L. (Ed.) Proceedings of the

Third International ACPC Conference with Special Emphasis on Parallel

Databases and Parallel I/O. Klagenfurt, Austria, Springer.

BELLATRECHE, L., SIMONET, A. & SIMONET, M. (1996) Vertical Fragmentation

in Distributed Object Database Systems with Complex Attributes and Methods.

IN WAGNER, R. & THOMAS, H. (Eds.) Proceedings of the Seventh

International Workshop on Database and Expert Systems Applications DEXA

'96. Zurich, Switzerland, IEEE-CS Press.

BHALLA, S. & HASEGAWA, M. (2005) Parallelizing serializable transactions within

distributed real-time database systems Proceedings of the International

Conference on Embedded and Ubiquitous Computing (EUC 2005). Lecture

Notes in Computer Science. Springer.

CABRERA, N. E., RODRÍGUEZ, A. & GONZÁLEZ, L. M. (2006) Asistente para la

Caracterización de Aplicaciones y Fragmentación en un Sistema de Bases de

Datos Distribuidas. Ciencia de la Computación. Santa Clara, Universidad

Central "Marta Abreu" de Las Villas.

CERI, S., NAVATHE, S. B. & WIEDERHOLD, G. (1983) Distribution Design of

Logical Database Schemas. IEEE Trans. Software Eng., 9, 487-504.

Page 68: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

59

CERI, S., NEGRI, M. & PELAGATTI, G. (1982) Horizontal Data Partitioning in

Database Design. Proceedings of the ACM SIGMOD International Conference

on Management of Data 1982. Orlando, Florida, ACM Press.

CERI, S. & PELAGATTI, G. (1984) Distributed Databases: Principles and Systems,

McGraw-Hill New York, NY, USA.

CERI, S. & PERNICI, B. (1985) DATAID-D: Methodology for Distributed Database

Design, North-Holland.

CERI, S., PERNICI, B. & WIEDERHOLD, G. (1987) Distributed Database Design

Methodologies. IEEE Database Eng. Bull., 75, 533-546.

CERI, S., PERNICI, B. & WIEDERHOLD, G. (1989) Optimization problems and

solution methods in the design of data distribution. Inf. Syst.

CORNELL, D. W. & YU, P. S. (1987) A Vertical Partitioning Algorithm for Relational

Databases. Proceedings of the Third International Conference on Data

Engineering. Los Angeles, CA, USA, IEEE Computer Society.

COULON, C., PACITTI, E. & VALDURIEZ, P. (2005) Consistency Management for

Partial Replication in a High Performance Database Cluster. IEEE International

Conference on Parallel and Distributed Systems (ICPADS2005). Fukuoka,

Japan.

DATE, C. J. (2000) Introducción a los Sistemas de Bases de Datos, Séptima edición,

México, Addison-Wesley.

EZEIFE, C. I. & BARKER, K. (1995) A Comprehensive Approach to Horizontal Class

Fragmentation in a Distributed Object Based System. Distributed and Parallel

Databases, 3, 247-272.

Page 69: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

60

EZEIFE, C. I. & DEY, P. (2003) Incremental Horizontal Fragmentation of Database

Class Objects. Proceedings of the 5th International Conference on Enterprise

Information Systems ICEIS (1) 2003. Angers, France.

GANÇARSKI, S., NAACKE, H., PACITTI, E. & VALDURIEZ, P. (2002) Parallel

Processing with Autonomous Databases in a Cluster System. IN MEERSMAN,

R. & TARI, Z. (Eds.) Proceedings of the Confederated International

Conferences On the Move to Meaningful Internet Systems, 2002 -

DOA/CoopIS/ODBASE. Irvine, California, USA, Springer.

GARCÍA, C. E., RODRÍGUEZ, A., GONZÁLEZ, L. M. & ÁLVAREZ, W. A. (2005)

ERECASE, una herramienta con validación de diagramas entidad relación. 6to.

Simposium Iberoamericano de Computación e Informática SICI 2005. Instituto

Tecnológico de Nuevo León, Monterrey, NL, México, Instituto Tecnológico de

Nuevo León.

HABABEH, I. O., BOWRING, N. & RAMACHANDRAN, M. (2004) A Method for

Fragment Allocation in Distributed Object Oriented Database Systems.

Proceedings of the 5th Annual PostGraduate Symposium on The Convergence of

Telecommunications, Networking & Broadcasting (PGNet). Liverpool, UK.

HERNÁNDEZ, A. (2005) Agente de aprendizaje reforzado aplicado al problema de

asignación en bases de datos distribuidas. Ciencia de la Computación. Santa

Clara, Universidad Central "Marta Abreu" de Las Villas.

HOFFER, J. A. & SEVERANCE, D. G. (1975a) The Use of Cluster Analysis in

Physical Data Base Design. IN KERR, D. S. (Ed.) Proceedings of the

International Conference on Very Large Data Bases. Framingham, MA, USA,

ACM.

Page 70: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

61

HOFFER, J. A. & SEVERANCE, D. G. (1975b) The use of cluster analysis in physical

database design. IN KERR, D. S. (Ed.) Proceedings of the 1st International

Conference on Very Large Databases. Framingham, Massachusetts, USA,

ACM.

HUANG, Y.-F. & CHEN, J.-H. (2001) Fragment Allocation in Distributed Database

Design. Journal of Information Science and Engineering, 17, 491-506.

IRÚN-BRIZ, L., DECKER, H., JUAN-MARIN, R., CASTRO-COMPANY, F.,

ARMENDÁRIZ-INIGO, J. E., BERNABÉU-AUBÁN, J. M. & MUÑOZ-

ESCOÍ, F. D. (2005) MADIS: A slim middleware for database replication.

Proceedings of the 11st International Conference on Parallel Processing

(EuroPar 2005). Lecture Notes in Computer Science. Springer.

JOHANSSON, J. M., MARCH, S. T. & NAUMANN, J. D. (2000) The effects of

parallel processing on update response time in distributed database design. IN

ANG, S., KRCMAR, H., ORLIKOWSKI, W. J., WEILL, P. & DEGROSS, J. I.

(Eds.) Proceedings of the Twenty-First International Conference on Information

Systems ICIS. Brisbane, Australia, ACM.

LEE, J. W. & BAIK, D. K. (2004) Database allocation modeling for optimal design of

distributed systems. IEICE Transactions on Information and Systems, E87D,

1795-1804.

LIM, S. J. & NG, Y.-K. (1997) Vertical Fragmentation and Allocation in Distributed

Deductive Database Systems. Inf. Syst., 22, 1-24.

LIN, W. J. & VEERAVALLI, B. (2006) An object replication algorithm for real-time

distributed databases. Distributed and Parallel Databases., 19, 125-146.

Page 71: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

62

LIN, X. & ORLOWSKA, M. E. (1995) An Integer Linear Programming Approach to

Data Allocation with the Minimum Total Communication Cost in Distributed

Database Systems. Information Sciences, 85, 1-10.

MA, H. & SCHEWE, K.-D. (2004) A heuristic approach to horizontal fragmentation in

object oriented databases. IN BARZDINS, J. (Ed.) Proceedings of the 2004

Baltic Conference on Databases and Information Systems. Riga, Latvia, Faculty

of Computer Science and Information Technology, Riga Technical University.

MA, H., SCHEWE, K.-D. & WANG, Q. (2005) Distribution design for higher-order

data models. Palmerston North, New Zealand, Massey University, Department

of Information Systems.

MA, H., SCHEWE, K.-D. & WANG, Q. (2006) A Heuristic Approach to Cost-Efficient

Fragmentation and Allocation of Complex Value Databases. IN DOBBIE, G. &

BAILEY, J. (Eds.) The 17th Australasian Database Conference (ADC2006)

Hobart, Australia, ACM International Conference Archive Proceeding Series

vol. 170. Australian Computer Society Inc.

MCCORMICK, W. T., SCHWEITZER, P. J. & WHITE, T. W. (1972a) Problem

decomposition and data reorganization by a clustering technique, Operations

Research.

MCCORMICK, W. T., SCHWEITZER, P. J. & WHITE, T. W. (1972b) A Problem

Decomposition and Data Reorganization by a Clustering Techniques. Operation

Research, 20, 993-1009.

MEI, H. & SHENG, O. (1992) A Semantic Based Methodology for Integrated

Computer-Aided Distributed Database Design. The 25th Hawaii International

Conference on System Sciences.

Page 72: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

63

MORELL, A., GONZÁLEZ, L. M. & RODRÍGUEZ, A. (2000a) Algoritmos para la

fragmentación vertical en bases de datos distribuidas. COMPUMAT 2000, 7mo.

Congreso de la Sociedad Cubana de Matemática y Computación. Manzanillo,

Cuba, SCMC.

MORELL, A., GONZÁLEZ, L. M. & RODRÍGUEZ, A. (2000b) Un enfoque a la

fragmentación vertical en bases de datos distribuidas. Congreso Internacional

Informática 2000, Nuevas Tecnologías Informáticas. La Habana, Cuba.

MUTHURAJ, J., CHAKRAVARTHY, S., VARADARAJAN, R. & NAVATHE, S. B.

(1993) A Formal Approach to the Vertical Partitioning Problem in Distributed

Database Design. Proceedings of the 2nd International Conference on Parallel

and Distributed Information Systems (PDIS 1993), Issues, Architectures, and

Algorithms. San Diego, CA, USA, IEEE Computer Society.

NAVATHE, S., CERI, S., WIEDERHOLD, G. & DOU, J. (1984a) Vertical partitioning

algorithms for database design. ACM Transactions on Database Systems.

NAVATHE, S. B., CERI, S., WIEDERHOLD, G. & DOU, J. (1984b) Vertical

Partitioning Algorithms for Database Design. ACM Trans. Database Syst., 9,

680-710.

NAVATHE, S. B., KARLAPALEM, K. & RA, M. (1995) A mixed fragmentation

methodology for initial distributed database design. Atlanta, GA, College of

Computing, Georgia Institute of Technology.

NELSON, H. J., MONARCHI, D. E. & NELSON, K. M. (2001) Ensuring the

'Goodness' of a Conceptual Representation. Proceedings of the 4th European

Conference on Software Measurement and ICT Control (FESMA'01). Germany.

Page 73: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

64

ŐZSU, M. T. & PATRICK, V. (1999) Principles of Distributed Database Systems,

Second Edition, Prentice-Hall.

ŐZSU, M. T. & VALDURIEZ, P. (1999) Principles of Distributed Database Systems,

Second Edition, Upper Saddle River, New Jersey., Prentice-Hall.

PÉREZ, J., PAZOS, R. A., FRAUSTO-SOLIS, J., REYES, G., SANTAOLAYA, R.,

FRAIRE, H. J. & CRUZ, L. (2005) An approach for solving very large scale

instances of the design distribution problem for distributed database systems.

Proceedings of the 4th International School and Symposium on Advanced

Distributed Systems (ISSADS2005). Lecture Notes in Computer Science.

Springer.

PÉREZ, J., PAZOS, R. A., SOLÍS, J. F., ROMERO, D. & CRUZ, L. (2000) Vertical

Fragmentation and Allocation in Distributed Databases with Site Capacity

Restrictions Using the Threshold Accepting Algorithm. IN CAIRÓ

BATTISTUTTI, O., SUCAR, L. E. & CANTU, F. J. (Eds.) MICAI 2000:

Advances in Artificial Intelligence, Mexican International Conference on

Artificial Intelligence. Acapulco, Mexico, Springer.

RODRÍGUEZ, A., CÁRDENAS, A., CASTRO, M. T. & GONZÁLEZ, L. M. (2007a)

Caracterización de la red de comunicación y sitios en el Diseño de Bases de

Datos Distribuidas. Revista Ingeniería Electrónica, Automática y

Comunicaciones, enviado.

RODRÍGUEZ, A., CÁRDENAS, A., CASTRO, M. T. & GONZÁLEZ, L. M. (2007b)

Caracterización de la red de comunicación y sitios en el Diseño de Bases de

Datos Distribuidas. Convención de Ingeniería Eléctrica CIE’2007 Santa Clara,

Cuba, Universidad Central "Marta Abreu" de Las Villas.

Page 74: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

65

RODRÍGUEZ, A. & GONZÁLEZ, L. M. (2008) Sistema integrado de herramientas de

ayuda al diseño de bases de datos en ambientes distribuidos. Ciencia de la

Computación. Santa Clara, Cuba, Universidad Central de Las Villas.

RODRÍGUEZ, A., GONZÁLEZ, L. M. & ÁGUILA, L. S. (2005) Asignación de

fragmentos en Bases de Datos Distribuidas mediante la aplicación de

Algoritmos Genéticos. Boletín de la Sociedad Cubana de Matemática y

Computación, 3.

RODRÍGUEZ, A., GONZÁLEZ, L. M., CABRERA, L. & MORELL, A. (2002a)

ERECASE:Una herramienta de ayuda a la modelación de esquemas

conceptuales globales. Actas I Workshop de Bases de Datos, Jornadas Chilenas

de Computación JCC 2002. 1 ed. Universidad de Atacama, Copiapó, Chile,

Cámara Chilena del Libro A.G.

RODRÍGUEZ, A., GONZÁLEZ, L. M., GARCÍA, C. E. & CASTRO, M. T. (2007c)

Bases de datos en ambientes distribuidos, Santa Clara, Editorial Feijóo,

Universidad Central de Las Villas.

RODRÍGUEZ, A., GONZÁLEZ, L. M., MORELL, A., CABRERA, L., ARTILES, M.,

ÁGUILA, L. S. & VALDÉS, Á. (2002b) Integración de herramientas de ayuda

al diseño de bases de datos distribuidas. Actas I Workshop de Bases de Datos,

Jornadas Chilenas de Computación JCC 2002. 1 ed. Universidad de Atacama,

Copiapó, Chile, Cámara Chilena del Libro A.G.

RODRÍGUEZ, A., ROSA, D., MAINEGRA, M. & GONZÁLEZ, L. M. (2007d) An

Intelligent Agent Using a Q-Learning Method to Allocate Replicated Data in a

Distributed Database. IN GELBUKH, A. & KURI, Á. F. (Eds.) Proceedings of

the 6th Mexican International Conference on Artificial Intelligence-MICAI2007.

Page 75: Asistentes para el Diseño Lógico de Bases de Datos

R E F E R E N C I A S B I B L I O G R A F I C A S

66

Special Session - Revised Papers. Aguascalientes, México, IEEE Computer

Society.

RODRÍGUEZ, A., ROSA, D., MAINEGRA, M. & GONZÁLEZ, L. M. (2007e) A

Reinforcement Learning Solution for Allocating Replicated Fragments in a

Distributed Database. Revista Computación y Sistemas, 11, 10 p.

RODRÍGUEZ, A., ROSA, D., PÉREZ, W. & GONZÁLEZ, L. M. (2007f) Manejo

distribuido de datos para facilitar el control de calidad en la producción de

azúcar crudo de caña. CENTROAZUCAR, aceptado.

ROSA, D. (2006) Aplicación de técnicas de Inteligencia Artificial en la solución del

problema de ubicación en el diseño de bases de datos distribuidas.

Departamento de Ciencia de la Computación. Santa Clara, Universidad Central

"Marta Abreu" de Las Villas.

SAVONNET, M., TERRASSE, M.-N. & YÉTONGNON, K. (1999) FRAGTIQUE: An

OO Distribution Design Methodology. IN CHEN, A. L. P. & LOCHOVSKY, F.

H. (Eds.) Proceedings of the Sixth International Conference on Database

Systems for Advanced Applications (DASFAA). Hsinchu, Taiwan, IEEE

Computer Society.

SCHEWE, K.-D. (2002) Fragmentation of object oriented and semi-structured data. IN

HAAV, H.-M. & KALJA, A. (Eds.) Databases and Information Systems II.

Kluwer Academic Publishers.

TAMHANKAR, A. M. & RAM, S. (1998) Database fragmentation and allocation: an

integrated methodology and case study. IEEE Transactions on Systems, Man,

and Cybernetic Part A, 28, 288-305.