Sei sulla pagina 1di 99

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

BASE DE DATOS DISTRIBUIDAS

JAIME RUBIANO LLORENTE

1. INTRODUCCIN ................................................................................................ 5
2. JUSTIFICACIN............................................................................................... 10
3. INTENCIONALIDADES FORMATIVAS............................................................ 12
UNIDAD 1 FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDA ................. 14
CAPITULO 1 CONCEPTOS BSICOS. ............................................................... 14
1.2. QU ES COMPUTACION DISTRIBUIDA? .................................................... 15
1.3. QUE ES UNA BASE DE DATOS DISTRIBUIDA............................................. 16
1.4. VENTAJAS ............................................................................................................. 23
1.5. DESVENTAJAS ..................................................................................................... 24
CAPITULO 2 APLICACIONES ............................................................................. 26
2.1 INTRODUCCIN .................................................................................................... 26
2.2 ESTADO DEL ARTE.............................................................................................. 26
2.3 APLICACIONES ..................................................................................................... 28
CAPITULO 3 SISTEMAS DE BASES DE DATOS ............................................... 28
3.1 INTRODUCCIN .................................................................................................... 29
3.2 BASE DE DATOS DISTRIBUIDA(BDD) ............................................................ 30
3.3 SISTEMA DE BASES DE DATOS DISTRIBUIDA(SBDD).............................. 30
3.4 SISTEMA DE MANEJO DE BASES DE DATOS DISTRIBUIDA(SMBDD) . 30
3.4.2 El problema de diseo ........................................................................................ 34
3.4.3 Objetivos del Diseo de la Distribucin de los Datos. ................................ 35
3.4.4 Enfoques al problema de diseo de bases de datos distribuidas ........... 36
UNIDAD 2 ARQUITECTURA DE BASE DE DATOS DISTRIBUIDA ................... 37
CAPITULO. 4. NIVELES DE TRANSPARENCIA EN SBDD................................ 37
4.1 INTRODUCCIN .................................................................................................... 37
4.2 independencia lgica de datos ......................................................................... 37
4.3 independencia fsica de los datos.................................................................... 38
4.4 transparencia al nivel de red ............................................................................. 38
4.5 transparencia sobre replicacion ....................................................................... 38
4.6 transparencia a nivel de fragmentacin de datos........................................ 39

CAPITULO. 5 ARQUITECTURA DE LAS BDD.................................................... 45


5.1 INTRODUCCIN .................................................................................................... 45
5.3 arquitectura ANSI SPARC ................................................................................ 46
CAPITULO. 6 ALTERNATIVAS PARA LA IMPLEMENTACION DE SMBDD .... 50
6.1 INTRODUCCIN .................................................................................................... 50
6.2. Distribucin ........................................................................................................... 50
6.3 Heterogeneidad ..................................................................................................... 50
6.4 Autonoma............................................................................................................... 53
UNIDAD 3 DISEO DE BASE DE DATOS DISTRIBUIDAS ............................... 55
CAPITULO 7 DISEO DE LA DISTRIBUCION DE LOS DATOS ....................... 55
7.1 INTRODUCCIN .................................................................................................... 55
7.2. Procesamiento local............................................................................................ 55
7.3. Distribucin de la carga de trabajo................................................................. 56
7.4

. Costo de almacenamiento y Disponibilidad .......................................... 56

CAPITULO 8 ENFOQUES AL PROBLEMA DE DISEO DE BDD ..................... 57


8.1. INTRODUCCIN ................................................................................................... 57
8.2.

Enfoque de arriba hacia abajo (top down)................................................ 57

8.3 Diseo de abajo hacia arriba (bottom-up)...................................................... 58


CAPITULO. 9 FRAGMENTACION ...................................................................... 59
9.1. Introduccin .......................................................................................................... 59
9.2. Fragmentacin Horizontal ................................................................................. 60
9.3. Fragmentacin Vertical ...................................................................................... 62
9.4 Fragmentacin Hbrida....................................................................................... 64
9.5

Asignamiento de Fragmentos ...................................................................... 66

UNIDAD 4 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS ..................... 69


CAPITULO 10 ARQUITECTURA DEL PROCESAMIENTO DE CONSULTAS.... 69
10.1. Introduccin ........................................................................................................ 69
10.2. Descomposicin de consultas....................................................................... 70
10.3. Optimizacin Global de Consultas ............................................................... 81

10.4 . Optimizacin Local de Consultas ................................................................ 82


CAPITULO. 11 LOCALIZACIN DE DATOS DISTRIBUIDOS ............................ 83
11.1. Introduccin ........................................................................................................ 83
11.2. Reduccin para fragmentacin vertical ...................................................... 83
11.3. reduccin para fragmentacin horizontal primaria.................................. 85
11.4 . Reduccin para fragmentacin horizontal derivada............................... 89
CAPITULO. 12 OPTIMIZACIN GLOBAL DE CONSULTAS.............................. 92
12.1. Introduccin ........................................................................................................ 92
12.2. Definiciones bsicas......................................................................................... 92
12.3. Modelo de costo................................................................................................. 93
12.4 . Optimizacin centralizada de consultas .................................................... 95

1. INTRODUCCIN

Este curso ofrece a los alumnos los conceptos y aspectos fundamentales de los
sistemas de bases de datos distribuidos y presentar los problemas ms importantes
para su funcionamiento y uso de los mismos para asi desarrollar aplicaciones que
den soluciones a problemas reales de manejo de datos.
El curso tiene 3 crditos acadmicos los cuales comprenden el estudio independiente y
el acompaamiento tutorial, acompaado de talleres que fortalecen el proceso del
aprendizaje:

Ensear a los estudiante los conceptos y principios del manejo y diseo de bases
de datos distribuidos.

Fomentar en el estudiante la capacidad de apropiar conocimiento y relacionarlo


para su aplicacin en diferentes escenarios de la vida profesional,

Capacitar a los estudiantes en el manejo del procesamiento de consultas y los


factores que intervienen en la optimizacin de consultas distribuidas.

Fomentar en el estudiante el espritu investigativo e innovador, que fortalezca la


creatividad en el desarrollo de soluciones a problemas computacionales con la
ayuda de bases de datos

Este curso esta compuesto por cinco unidades didcticas a saber:


Unidad 1.
Fundamentos de bases de datos distribuidas

Conceptos Bsicos
Aplicaciones
Sistemas de bases de datos distribuidas

Unidad 2.

Arquitectura de bases de datos distribuidas


Niveles de transparencia en sbdd
Arquitectura de bases de datos distribuidas
Alternativas para la implementacin de smbd

Unidad 3.
Diseo de base de datos distribuidas
Diseo de la Distribucin de los Datos.
Enfoques al problema de diseo de bases de datos distribuidas
Fragmentacin
Unidad 4

Procesamiento de consultas distribuidas


Arquitectura del procesamiento de consultas
Localizacin de datos distribuidos
Optimizacin global de consultas

El curso es de carcter terico prctico y la metodologa a seguir ser bajo la


estrategia de educacin abierta y a distancia. Por este motivo, es importante planificar
el proceso de:
Estudio Independiente: se desarrolla a travs del trabajo personal, del trabajo en
pequeos grupos colaborativos de aprendizaje y el trabajo de grupo de curso.
Acompaamiento tutorial: corresponde al tiempo de acompaamiento que el
tutor realiza al estudiante para potenciar el aprendizaje por medio de talleres
guiados y asesoras que fortalecen la formacin.
El sistema de evaluacin del curso es a travs de la evaluacin formativa, que
constituye distintas formas de comprobar el avance en el auto-aprendizaje del curso.
En este sentido, se realizarn tres tipos de evaluacin alternativas y complementarias,
estas son:
Autoevaluacin:
Evaluacin que realiza el estudiante para valorar su propio proceso de
aprendizaje.
Coevaluacin:
se realiza a travs de los grupos colaborativos, y pretende la socializacin de los
resultados del trabajo personal.
Heteroevaluacin:
Es la valoracin que realiza la institucin de la apropiacin de los conceptos por
parte del estudiante.

Tutor-estudiante: a travs del acompaamiento individual

Estudiante-estudiante: mediante la participacin activa en los grupos colaborativos


de aprendizaje.

Estudiantes-tutor: es el acompaamiento a los pequeos grupos colaborativos del


proceso enseanza aprendizaje.

Tutor-estudiantes: mediante el acompaamiento en grupo del curso en procesos de


retroalimentacin.

Estudiantes-estudiantes: en los procesos de socializacin que se realizan en el


grupo que .fomentan la participacin y las competencias bsicas de comunicacin.

Para el desarrollo del curso es importante el papel que juega los recursos tecnolgicos
como medio activo e interactivo, buscando la interlocucin durante todo el proceso de
dilogo docente-estudiante.
Los materiales impresos en papel, se han convertido en el principal soporte para
favorecer los procesos de aprendizaje autodirigido.
Sitios Web: propician el acercamiento al conocimiento, la interaccin y la
produccin de nuevas dinmicas educativas.
Sistemas de interactividades sincrnicas: permite la comunicacin a travs de
encuentros presnciales directos o de encuentros mediados (Salas de
conversacin, audioconferencias, videoconferencia, tutoras telefnicas, foros)
Sistemas de interactividades diferidas: permite la comunicacin en forma diferida
favoreciendo la disposicin del tiempo del estudiante para su proceso de
enseanza aprendizaje, mediante la utilizacin de correo electrnico, foros,
grupos de discusin.
El acceso a documentos adquiere una dimensin de suma importancia en tanto la
informacin sobre el tema, exige conocimientos y planteamientos preliminares, por tal
razn es imprescindible el recurso a diversas fuentes documentales y el acceso a

diversos medios como son: bibliotecas electrnicas, hemerotecas digitales e impresas,


sitios Web especializados.

2. JUSTIFICACIN

Las bases de datos distribuidas ofrecen diversas ventajas a los diseadores y usuarios
de bases de datos. Entre las ms importantes se encuentra la transparencia en el
acceso y localizacin de informacin. Sin embargo, el diseo y administracin de bases
de datos distribuidas constituye un gran desafo que incorpora problemas no
encontrados en bases de datos centralizadas.
El estudiante se apropia del conocimiento sobre la arquitectura, diseo y administracin
de las bases de datos distribuidas para producir soluciones computacionales y
aplicarlas a diferentes reas del conocimiento.
.
El estudiante encontrara una forma de aprendizaje paso a paso que le permite
apropiarse del conocimiento bsico y lgico, aprendiendo a aprender para luego el solo
generar sus nuevas necesidades de aprendizaje y por consiguiente ser complemento
de su formacin.
Las competencias que promueve el curso y que son necesarias son:
COGNITIVA: Capacidad de apropiarse de un conjunto de conocimientos a travs del
desarrollo, monitoreo y aplicacin de procesos de pensamiento.
COMUNICATIVA: Capacidad de comprender, expresar mensajes y de desarrollar
procesos argumentativos, apoyados en las relaciones interpersonales.
CONTEXTUAL: Capacidad de ubicar el conocimiento en el contexto cientfico, poltico,
cultural, tecnolgico, social y en el plano regional nacional e internacional, y la
capacidad para aplicarlo en procesos de produccin.

VALORATIVA: Capacidad de apropiarse de valores como el respeto a la vida. La


dignidad humana, la convivencia, la solidaridad, la tolerancia y la libertad que orientan
las acciones del individuo como persona, como ser social y como profesional.
Para el logro de stas competencias, es necesario que se planifique de manera
responsable el proceso de auto estudio por parte del estudiante si se quieren lograr
resultados positivos en el aprendizaje de los conceptos incluidos en el curso, este
proceso se puede planificar de la siguiente manera:
Auto estudio: Estudio individual del material sugerido y consulta de otras fuentes
(documentales, consulta en biblioteca, Internet, bibliografa recomendada,
consulta a bases de datos documentales, entre otros)
Trabajo en grupo: Creacin de grupos de estudio o discusin con el propsito de
preparar consultas estructuradas al docente-tutor.
Consultas al tutor: Consulta al tutor de las inquietudes surgidas en el punto
anterior.
Retroalimentacin: Una vez el tutor haya resuelto las inquietudes, estudie
nuevamente el tema, teniendo en cuenta las sugerencias o respuestas dadas
por el tutor.
Procesos de evaluacin: Una vez se haya realizado el proceso de
retroalimentacin, desarrolle los diferentes momentos de evaluacin propuestos
en el curso como son la autoevaluacin, coevaluacin y heteroevaluacin.
De esta manera se pretende alcanzar los objetivos propuestos del curso teniendo en
cuenta la formacin de la persona. Como ingeniero de Sistemas.

3. INTENCIONALIDADES FORMATIVAS

3.1 PROPSITOS

Fundamentar a lo estudiantes en los conocimientos bsicos de las caractersticas y


diseo de bases de datos distribuidas.

Motivar los estudiantes en proceso de comprensin, aprehensin de los conceptos


propios de la computacin distribuida.

Fomentar el manejo de consultas a sitios distribuidos y que entienda los


mecanismos de control de concurrencia y confiabilidad en bases de datos
distribuidas.

Fomentar en el estudiante

la investigacin formativa y la creatividad, que lo

identifiquen en el entorno regional y nacional como Ingeniero diseador de bases


de datos.
3.2 OBJETIVOS

Revisar los conceptos bsicos de las bases de datos distribuidos y las


caractersticas ms importantes

Conocer la arquitectura de un sistema de manejo de bases de datos


distribuidas.

Identificar el procesamiento de consultas y los factores que intervienen en la


optimizacin de consultas distribuidas.

Aplicar el esquema de manejo de transacciones distribuidas y los problemas


de control de concurrencia y confiabilidad.

3.3 METAS
Al finalizar el curso Bases de Datos Distribuida , el estudiante estar en capacidad de:
Aplicar de manera eficiente los esquemas de fragmentacin y localizacin de
informacin.
Manejar consultas a sitios distribuidos y entender los mecanismos de control de
concurrencia y confiabilidad en bases de datos distribuidas.
Disear y hacer la administracin de bases de datos distribuidas
Proponer soluciones lgicas a la solucin de problemticas computacionales de
manejo de datos en bases de datos distribuidas

3.4 COMPETENCIAS
Tendr manejo de consultas a sitios distribuidos y entender los mecanismos de
control de concurrencia y confiabilidad en bases de datos distribuidas.

Estar en capacidad el disear y hacer la administracin de bases de datos distribuidas

Tendr la capacidad de proponer soluciones lgicas a la solucin de problemticas


computacionales de manejo de datos en bases de datos distribuidas

El estudiante podr evaluar de manera lgica procesos de manejo de informacin en


redes de computadores.

UNIDAD 1 FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDA


CAPITULO 1 CONCEPTOS BSICOS.
Estructura temtica
1.1. Introduccin
1.2. Qu es Computacin Distribuida?
1.3. Que es una base de datos Distribuida?
1.4. Ventajas
1.5. Desventajas
1.1. INTRODUCCIN
los sistemas de bases de datos distribuidas buscan el manejo eficiente e integrado de
la informacin sobre un sistema de computacin distribuida, los sistemas de bases de
datos que no necesariamente son homogneos, pueden a los usuarios dar una visin
generalizada de la informacin disponible. Este proceso de integracin no implica la
centralizacin de la informacin, ms bien, con la ayuda de la tecnologa de redes de
computadoras disponible, la informacin se mantiene distribuida (localizada en diversos
lugares) y los sistemas de bases de datos distribuidos permiten el acceso a ella como
si estuviera localizada en un solo lugar. La distribucin de la informacin permite, entre
otras cosas, tener accesos rpidos a la informacin, tener copias de la informacin
para accesos ms rpidos y para tener respaldo de los procesos.
Objetivo general
Introducir los conceptos y aspectos fundamentales de los sistemas de bases de datos
distribuidos y presentar los problemas ms importantes para su explotacin y uso y las
soluciones a los mismos.

1.2. QU ES COMPUTACION DISTRIBUIDA?


La computacin distribuida es sistema de manejo de computadores en los cuales un
conjunto de elementos de procesamiento independiente (no necesariamente
homogneos) se interconectan por una red de comunicaciones y cooperan entre ellos
para realizar sus tareas asignadas. el cmputo distribuido determina la forma como se
realizan los procesos entre ellas y las funciones de manejo de datos para el manejo de
Funciones distribuidas y Procesamiento distribuido de datos.
ARQUITECTURA CLIENTE-SERVIDOR
La arquitectura cliente-servidor esta diseada para manejar los nuevos entornos de
cmputo en los que un gran nmero de PC, estaciones de trabajos, servidores de
ficheros, impresoras, servidores de bases de datos, servidores Web y otros equipos
estn interconectados a travs de una red.
En un sistema cliente-servidor tenemos dos partes fundamentales:
Cliente. Se podra corresponder con una mquina usuario que proporciona capacidad
de interfaz al usuario y procesamiento local.
Servidor. Es una mquina que puede proporcionar a las mquinas cliente servicios,
como poder imprimir tener acceso a ficheros o acceso a la base de datos.
An no se ha establecido de forma exacta cmo dividir la funcionalidad del SGBD entre
el cliente y el servidor aunque existen varios enfoques.
En cuanto al software, en un sistema de gestin de bases de datos es normal dividir los
diferentes mdulos software en tres niveles:
El software de servidor que gestiona los datos locales en un sitio, al igual que el
software del SGBD centralizado.

El software del cliente que soporta casi todas las tareas de distribucin y maneja las
interfaces de usuario.
El software de comunicaciones (algunas veces junto con el sistema operativo
Distribuido) proporciona las primitivas de comunicacin que utiliza el cliente para
transmitir instrucciones y datos entre los sitios necesarios.
Existen componentes a distribuir, para realizar una tarea. En computacin distribuida
los elementos que se pueden distribuir son:

Control. Las actividades relacionadas con el manejo o administracin del


sistema.

Datos. La informacin que maneja el sistema.

Funciones. Las actividades que cada elemento del sistema realiza.

Procesamiento lgico. Las tareas especficas involucradas en una actividad de


procesamiento de informacin.

1.3. QUE ES UNA BASE DE DATOS DISTRIBUIDA


Una Base de Datos Distribuida es, una base de datos construida sobre una red
computadores y no por el contrario en una computadora sola. La informacin que
constituye la base de datos esta almacenada en diferentes sitios en la red, y las
aplicaciones que se ejecutan accesan datos en distintos sitios.
Una Base de Datos Distribuida entonces es una coleccin de datos que pertenecen
lgicamente a un slo sistema, pero se encuentra fsicamente distribuido en varios
computadores de la red. Un sistema de base de datos distribuidas se compone de un
conjunto de sitios, conectados entre s, mediante algn tipo de red de comunicaciones,
en el cual :

1. cada sitio puede tener un sistema de base de datos.


2. los sitios han sido diseados para trabajar juntos ( si es necesario ) con el fin de que
un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la
red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.
Entonces, la llamada "base de datos distribuida" es en realidad una especie de objeto
virtual, cuyas partes componentes se almacenan fsicamente en varias bases de datos
"reales" distintas ubicadas en diferentes sitios. es la unin lgica de esas bases de
datos. En otras palabras, cada sitio tiene sus propias bases de datos "reales" locales,
sus propios usuarios locales, sus propios DBMS y programas para la administracin de
transacciones y su propio administrador local de comunicacin de datos ( administrador
DC ). As pues, el sistema de bases de datos distribuidas puede considerarse como
una especie de sociedad entre los DBMS individuales locales de todos los sitios. Un
nuevo componente de software en cada sitio ( en el aspecto lgico, una extensin del
DBMS local ) realiza las funciones de sociedad necesarias; y es la combinacin de este
nuevo componente y el DBMS ya existente lo que constituye el llamado "sistema de
administracin de bases de datos distribuidas" (DDBMS, distributed database
management system ).
Desde el punto de vista del usuario, un sistema distribuido deber ser idntico a un
sistema no distribuido. los usuarios de un sistema distribuido se comportan en su
manejo exactamente como si el sistema no estuviera distribuido. Todos los problemas
de los sistemas distribuidos son (o deberan ser ) internos o a nivel de realizacin, no
externos o a nivel del usuario.
Los datos que se encuentran distribuidos en varios sitios y que estn interconectados
por una red de comunicaciones.

Cada sitio tiene capacidad de procesamiento autnomo de transacciones y


puede hacer procesos locales.

Cada sitio realiza la ejecucin de al menos una transaccin global, la cual


requiere accesos a datos en diversos sitios.

Configuracin De Conectividad De Base De Datos Distribuidas

los principios fundamentales de un sistema de datos distribuido son:


1. Autonoma local.
2. No dependencia de un sitio central.
3. Operacin continua.
4. Independencia con respecto a la localizacin.
5. Independencia con respecto a la fragmentacin.
6. Independencia de rplica.
7. Procesamiento distribuido de consultas.
8. Manejo distribuido de transacciones.
9. Independencia con respecto al equipo.
10. Independencia con respecto al sistema operativo.
11. Independencia con respecto a la red.
12. Independencia con respecto al DBMS.

Estas doce reglas no son todas independientes entre s, ni son por fuerza exhaustivas,
ni tienen todas la misma importancia cada usuario le dar

diferentes grados de

importancia a diferentes reglas en diferentes ambientes ). Sin embargo, s son tiles


como fundamento para entender la tecnologa distribuida y como marco de referencia
para caracterizar la funcionalidad de sistemas distribuidos especficos.
.
1. Autonoma local.
Los sitios de un sistema distribuido deben ser autnomos . La autonoma local significa
que todas las operaciones en un sitio determinado se controlan en ese sitio; ningn
sitio A deber depender de algn otro sitio B para su buen funcionamiento (pues de
otra manera el sitio A podra ser incapaz de trabajar, aunque no tenga en s problema
alguno, si cae el sitio B.
La autonoma local significa que existe un propietario y un administrador local de los
datos, con responsabilidad local : todos los datos pertenecen a una base de datos
local, aunque sean accesibles desde algn sitio distante. Todo el manejo de la
seguridad la integridad y los datos se da con control de la instalacin local.
2. No dependencia de un sitio central.
La no dependencia de un sitio central, seria lo ideal pero si no se logra la autonoma
local completa. Por ello vale la pena expresarlo como un objetivo separado. La
dependencia de un sitio central sera indeseable al menos por las siguientes razones :
en primer lugar, estos sitios podran generar un cuello de botella ; en segundo lugar, el
sistema sera vulnerable ; si el sitio central sufriera un desperfecto, todo el sistema
dejara de funcionar.

3. Operacin continua.
En un sistema distribuido, lo mismo que en uno no distribuido, idealmente nunca
debera haber necesidad de apagar o dejar de funcionar Es decir, el sistema nunca
debera necesitar apagarse para que se pueda realizar alguna funcin, como aadirse
un nuevo sitio o instalar una versin mejorada del DBMS en un sitio ya existente.
3. Independencia con respecto a la localizacin.
La independencia con respecto a la localizacin (tambin conocida como transparencia
de localizacin),

no debe ser necesario que los usuarios sepan dnde estn

almacenados fsicamente los datos, sino que trabajen

como si todos los datos

estuvieran almacenados en su propio sitio local. La independencia con respecto a la


localizacin es deseable porque simplifica los programas de los usuarios y sus
actividades en la terminal. Esto hace posible la migracin de datos de un sitio a otro sin
anular la validez de ninguno de esos programas o actividades. Esta probabilidad de
migracin permite modificar la distribucin de los datos dentro de la red en respuesta a
cambios en los requerimientos de desempeo.
4. Independencia con respecto a la fragmentacin.
Un sistema tiene fragmentacin de datos si es posible dividir una relacin en partes o
"fragmentos" para propsitos de almacenamiento fsico. La fragmentacin es deseable
por razones de desempeo: los datos pueden almacenarse en la localidad donde se
utilizan con mayor frecuencia, de manera que la mayor parte de las operaciones sean
slo locales y se reduzca al trfico en la red. Existen en esencia dos clases de
fragmentacin, horizontal y vertical, correspondientes a las operaciones relacionales de
restriccin y proyeccin; respectivamente, un fragmento puede ser cualquier
subrelacin

que pueda derivarse de la relacin original mediante operaciones de

restriccin y proyeccin, La reconstruccin de la relacin originada a partir de los

fragmentos se hace mediante operaciones de reunin y unin apropiadas ( reunin en


el caso de fragmentacin vertical, la unin en casos de fragmentacin horizontal ), un
sistema que maneja la fragmentacin de los datos deber tener tambin una
independencia con respecto a la fragmentacin (llamada tambin transparencia de
fragmentacin). La independencia con respecto a la fragmentacin ( al igual que la
independencia con respecto a la independencia con respecto a la localizacin)
6. Independencia de rplica.
Un sistema maneja rplica de datos si una relacin dada se puede representar en el
nivel fsico mediante varias copias rplicas, en muchos sitios distintos. La rplica es
deseable al menos por dos razones : en primer lugar, puede producir un mejor
desempeo (las aplicaciones pueden operar sobre copias locales en vez de tener que
comunicarse con sitios remotos) ; en segundo lugar, tambin puede significar una
mejor disponibilidad (un objeto estar disponible para su procesamiento en tanto est
disponible por lo menos una copia, al menos para propsitos de recuperacin). La
desventaja principal de las rplicas es cuando se pone al da un cierto objeto copiado,
deben ponerse al dia todas las rplicas de ese objeto.
La rplica debe ser "transparente para el usuario", un sistema que maneja la rplica de
los datos deber ofrecer tambin una independencia de rplica (conocida tambin
como transparencia de rplica); es decir, los usuarios debern poder comportarse
como si slo existiera una copia de los datos. La independencia de rplica es buena
porque simplifica los programas de los usuarios y los trabajos en la terminal.
7. Procesamiento distribuido de consultas.
Este manejo de datos en las consultas permite las consultas eficiente desde diferentes
usuarios con las caractersticas que determine el sistema,

la consulta de datos

es

ms importante en un sistema distribuido que en uno

centralizado. Lo esencial es que, en una consulta donde estn implicados varios sitios,
habr muchas maneras de trasladar los datos en al red para satisfacer la solicitud, y es
crucial encontrar una estrategia suficiente. Por ejemplo, una solicitud de unin de una
relacin Rx almacenada en el sitio X y una relacin Ry almacenada en el sitio Y podra
llevarse a cabo trasladando Rx a Y o trasladando Ry a X, o trasladando las dos a un
tercer sitio Z.
8. Manejo distribuido de transacciones.
Este manejo tiene dos aspectos principales, el control de recuperacin y el control de
concurrencia, cada uno de los cuales requiere un tratamiento ms amplio en el
ambiente distribuido. En un sistema distribuido, una sola transaccin puede implicar la
ejecucin de programas o procesos en varios sitios ( en particular puede implicar a
actualizaciones en varios sitios ). Por esto cada transaccin est compuesta de varios
agentes, donde un agente es el proceso ejecutado en nombre de una transaccin dada
en determinado sitio. Y el sistema necesita saber cundo dos agentes son parte de la
misma transaccin.
No puede haber un bloqueo mutuo entre dos agentes que sean parte de la misma
transaccin.
9. Independencia con respecto al equipo.
Las instalaciones de cmputo en el mundo real por lo regular incluyen varias mquinas
diferentes IBM, DEC, HP, UNISYS, PC, existe una verdadera necesidad de poder
integrar los datos en todos esos sistemas y presentar al usuario "una sola imagen del
sistema". Por tanto conviene ejecutar el mismo DBMS en diferentes equipos, y adems
lograr que esos diferentes equipos participen en un sistema distribuido.

10. Independencia con respecto al sistema operativo.


Es necesario y conveniente no slo de poder ejecutar el mismo DBMS en diferentes
equipos, sino tambin poder ejecutarlo en diferentes sistemas operativos y lograr que
una versin UNIX y una PC/DOS participen todas en el mismo sistema distribuido.

11. Independencia con respecto a la red.


Si el sistema ha de poder manejar mltiples sitios diferentes, con equipo distinto y
diferentes sistemas operativos, resulta obvia la conveniencia de poder manejar tambin
varias redes de comunicacin distintas.
12. Independencia con respecto al DBMS
la independencia con respecto a su manejo se requiere que los DBMS en los diferentes
sitios manejen todos la misma interfaz ; no necesitan ser por fuerza copias del mismo
sistema.
.
1.4. VENTAJAS
Las ventajas de BDD son:
Favorecer la naturaleza distribuidora de muchas aplicaciones, no solamente a nivel
local si no incluso en diferentes lugares.
Hay un acercamiento bastante notable a las estructuras organizacionales de las
empresas.
Se consigue una comparticin de los datos, sin perder el control local.

El rendimiento Cuando se distribuye una gran base de datos por mltiples sitios, las
consultas locales y las transacciones tienen mejor rendimiento porque las bases de
datos locales son ms pequeas. A parte de esta distribucin, se puede conseguir lo
siguiente en estos sistemas:
1. Reducir el nmero de transacciones ejecutndose por sitio.
2. Un paralelismo entre las consultas ejecutando varias en sitios diferentes.
3. descomposicin consultas en subconsultas que puedan ejecutarse en paralelo.
4. Aumento de la fiabilidad y la disponibilidad ya comentadas en el objetivo
5. Los procesos de expansin se hacen ms sencillos en sistema distribuido. cuando
se quiere aadir un sitio en nuestro sistema distribuido, el resto de operaciones que se
ejecutan en los dems no se vern afectados.
6. la autonoma de estos sistemas es grande.
1.5. DESVENTAJAS
Hay una menor seguridad en cuanto al control de acceso a los datos:
Control de replicas y errores que puedan producirse en la red.
Mayor complejidad en el diseo e implementacin del sistema. Adems si la
replicacin de datos no se hace de forma adecuada, las ventajas se pueden
transformar en desventajas.
Excesivos costos en el intento de conseguir la transparencia mencionada
anteriormente.
Falta de estndares y de experiencia, una vez ms en estos modelos avanzados de
BD.
No se puede garantizar al 100 % el rendimiento y la fiabilidad.
Para garantizar las ventajas anteriormente descritas, es necesario que el software del
DDBMS proporcione las siguientes funciones adicionales a las que un sistema
centralizado ya tiene de por si:

Capacidad para seguir la pista a la distribucin y replicacin de los datos en el


catlogo del DDBMS
Capacidad para acceder a sitios remotos.
Capacidad de idear estrategias de ejecucin para consultas y transacciones que tiene
acceso a datos de ms de un sitio.
Capacidad de recuperarse de cadas de sitios o fallos de la red.
Capacidad de decidir a qu copia de un elemento de datos replicado acceder y de
mantener la consistencia de las copias.
Gestin del directorio o catlogo distribuido de la BDD.
Seguridad, gestin apropiada de seguridad de datos y los privilegios de autorizacin.

CAPITULO 2 APLICACIONES
Estructura temtica
2.1 introduccin
2.2. Estado del arte de las BDD)
2.3 Aplicaciones
2.1 INTRODUCCIN
Se muestran las diferentes aplicaciones de las BDD y Los ambientes en los que se
encuentra con mayor frecuencia as mismo las caractersticas de las bases de datos
distribuidas en la actualidad con algunas de sus restricciones mas frecuentes.
Objetivo general
Mostrar al estudiante las diferentes aplicaciones de las BDD y su funcionamiento, as
como el estado del arte de estas aplicaciones en donde se pueden determinar algunas
necesidades de estos sistemas.
2.2 ESTADO DEL ARTE
Cuando los beneficios del uso de BDD son claramente demostrables en las
aplicaciones, en la actualidad muchos de los desarrollos se encuentran nicamente en
sistemas complejos y con poca informacin de su manejo. A continuacin se discute el
estado actual de las bases de datos comerciales respecto de cuatro logros potenciales
asequibles en BDD.
Manejo transparente de datos distribuidos, fragmentados y replicados. Comercialmente
an no se soporta la replicacin de informacin. La fragmentacin utilizada es
nicamente de tipo horizontal, mas adelante se tratara este tema. La distribucin de

informacin no se realiza an con la transparencia requerida. Por ejemplo, el usuario


debe indicar la localizacin de un objeto y el acceso a los datos es mediante sesiones
remotas a bases de datos locales. La mayora de los sistemas comerciales utilizan el
modelo mltiples clientes-un solo servidor.
Mejoramiento de la confiabilidad y disponibilidad de la informacin mediante
transacciones distribuidas. Algunos sistemas como Ingres, NonStop SQL y Oracle
ofrecen el soporte de transacciones distribuidas. En Sybase, por ejemplo, es posible
tener transacciones distribuidas pero stas deben ser implementadas en las
aplicaciones mediante primitivas dadas. Respecto del soporte para replicacin de
informacin o no se ofrece o se hace a travs de la regla une lee todos escriben.
La seguridad en las BDD en la actualidad presentas fallas de acceso, estas pueden ser
violadas por sistemas desarrollados con altas tcnicas de programacin.
Mejoramiento de la eficiencia. Una mayor eficiencia es una de las grandes promesas
de los SMBDD. Existen varias partes en donde sto se puede lograr. En primer lugar,
la ubicacin de los datos a lugares prximos a donde se usan puede mejorar la
eficiencia en el acceso a la informacin. Sin embargo, para lograrlo es necesario tener
un buen soporte para fragmentacin y replicacin de informacin. Otro punto en donde
se puede incrementar la eficiencia es mediante la explotacin del paralelismo entre
operaciones. Especialmente en el caso de varias consultas independientes, stas se
pueden procesar por sitios diferentes, el procesamiento de una sola consulta puede
involucrar varios sitios y as procesarse de manera ms rpida. Sin embargo, la
explotacin del paralelismo requiere que se tenga tanta informacin requerida por cada
aplicacin en el sitio donde la aplicacin se utiliza, lo cual conducira a una replicacin
completa, esto es, tener toda la informacin en cada sitio de la red. El manejo de
rplicas es complicado dado que las actualizaciones a este tipo de datos involucran a
todos los sitios teniendo copias del dato. Los sistemas comerciales ofrecen nicamente
aproximaciones a este requisito.

Mejor escalabilidad de las BD. Tener sistemas escalables de manera fcil y econmica
se ha logrado por el desarrollo de la tecnologa de microprocesadores y estaciones de
trabajo. Sin embargo, respecto de la escalabilidad, la comunicacin de la informacin
tiene un costo el cual no se ha estudiado con suficiente profundidad.
2.3 APLICACIONES
La aplicacin de BDD para el manejo de informacin por las caractersticas de software
y hardware requerido para su implementacin solo es posible verse funcionando en
grandes empresas o emporios comerciales tales como:
Organismos gubernamentales y/o de servicio pblico.
La industria de la manufactura, particularmente, aquella con plantas mltiples.
Aplicaciones de control y comando militar.
Supermercados de cadena
Lneas de transporte areo.
Servicios de seguridad
Cadenas hoteleras.
Servicios bancarios y financieros.
En donde el volumen de informacin es grande y las caractersticas de ubicacin
geogrfica hacen necesario esta implementacin.
CAPITULO 3 SISTEMAS DE BASES DE DATOS

Estructura temtica
3.1 introduccin
3.2. Base de Datos Distribuida (BDD)
3.3 Sistema de Bases de Datos Distribuida (SBDD)
3.4 Sistema de Manejo de Bases de Datos Distribuidos (SMBDD)
3.4.1 Aspectos importantes de los SMBD distribuidos
3.4.2 El problema de diseo
3.4.3 Objetivos del Diseo de la Distribucin de los Datos.
3.4.4 Enfoques al problema de diseo de bases de datos distribuidas
3.1 INTRODUCCIN
En este capitulo se hace una descripcin de los sistemas de multiprocesamiento y
como pueden administrar bases de datos usualmente a travs de un solo sistema de
manejo de base de datos, el uso de los procesadores que se utilizan para distribuir la
carga de trabajo del sistema completo o incluso del propio SMBD y como se acta
sobre una sola base de datos que reside en un solo sitio de una red de computadoras y
que es accesada por todos los nodos de la red, as como los objetivos del diseo de la
distribucin los enfoques y el problema del diseo.
Objetivo general
Determinar los conceptos de BDD,

SBDD y SMBDD sus diferencias y sus

caractersticas generales, as como los objetivos del diseo de la distribucin y los


enfoques frente al problema del diseo.

3.2 BASE DE DATOS DISTRIBUIDA (BDD)


Una base de datos distribuida (BDD) es un conjunto de mltiples bases de datos
lgicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios
interconectados por una red de comunicaciones
3.3 SISTEMA DE BASES DE DATOS DISTRIBUIDA(SBDD)
Un sistema de bases de datos distribuida (SBDD) es un sistema en el cual mltiples
sitios de bases de datos estn ligados por un sistema de comunicaciones, de tal forma
que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red
exactamente como si los datos estuvieran almacenados en su sitio propio.
3.4 SISTEMA DE MANEJO DE BASES DE DATOS DISTRIBUIDA(SMBDD)
Un sistema de manejo de bases de datos distribuidas (SMBDD) es aquel que se
encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que
la distribucin sea transparente a los usuarios. El trmino transparente significa que la
aplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD ejecutado
en una sola mquina, administrara esos datos.

Nodo w

DBMw

BDw

DTMx

DBMx

BDx

DTMy

DBMy

BDy

Nodo x
Programa
de consulta
o
transaccin
Nodo y
Programa
de consulta
o
transaccin
Nodo z
Programa
de consulta
o
transaccin

DDB

DTMz

Interfaz de accin

Interfaz de solicitud

DDBMS

El medio ambiente tpico de un SMBDD consiste de un conjunto de sitios o nodos los


cuales tiene un sistema de procesamiento de datos completo que incluye una base de
datos local, un sistema de manejo de bases de datos y facilidades de comunicaciones.
Si los diferentes sitios pueden estar geogrficamente dispersos, entonces, ellos estn
interconectados por una red de tipo WAN. Por otro lado, si los sitios estn localizados
en

diferentes

edificios

departamentos

de

una

misma

organizacin

pero

geogrficamente en la misma ubicacin, entonces, estn conectados por una red local
(LAN)

Cali

Bogota

Red de
comunicacin

Neiva

Medelln

3.4.1 Aspectos importantes de los SMBD distribuidos


Existen varios factores relacionados a la construccin de bases de datos distribuidas
que no se presentan en bases de datos centralizadas. Entre los ms importantes se
encuentran los siguientes:
1. Diseo de la base de datos distribuida. En el diseo de bases de datos
distribuidas se debe considerar el problema de como distribuir la informacin
entre diferentes sitios. Existen razones organizacionales las cuales determinan
en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en el
acceso a la informacin, se deben abordar dos problemas relacionados.
Primero, como fragmentar la informacin. Segundo, como asignar cada
fragmento entre los diferentes sitios de la red. En el diseo de la BDD tambin
es importante considerar si la informacin est replicada, es decir, si existen
copias mltiples del mismo dato y, en este caso, como mantener la consistencia
de la informacin. Finalmente, una parte importante en el diseo de una BDD se
refiere al manejo del directorio. Si existen nicamente usuarios globales, se

debe manejar un solo directorio global. Sin embargo, si existen tambin usuarios
locales, el directorio combina informacin local con informacin global.
2. Procesamiento de consultas. El procesamiento de consultas es de suma
importancia en bases de datos centralizadas. Sin embargo, en BDD ste
adquiere una relevancia mayor. El objetivo es convertir transacciones de usuario
en instrucciones para manipulacin de datos. No obstante, el orden en que se
realizan las transacciones afecta grandemente la velocidad de respuesta del
sistema. As, el procesamiento de consultas presenta un problema de
optimizacin en el cual se determina el orden en el cual se hace la menor
cantidad de operaciones. Este problema de optimizacin es difcil, por lo que en
tiempos razonables solo se pueden obtener soluciones aproximadas. En BDD se
tiene que considerar el procesamiento local de una consulta junto con el costo
de transmisin de informacin al lugar en donde se solicit la consulta.
3. Control de concurrencia. El control de concurrencia es la actividad de
coordinar accesos concurrentes a la base de datos. El control de concurrencia
permite a los usuarios acceder la base de datos en una forma multiprogramada
mientras se preserva la ilusin de que cada usuario est utilizndola solo en un
sistema dedicado. El control de concurrencia asegura que transacciones
mltiples sometidas por usuarios diferentes no interfieran unas con otras de
forma que se produzcan resultados incorrectos. En BDD el control de
concurrencia es an ms complejo que en sistemas centralizados. Los
algoritmos ms utilizados son variaciones de aquellos usados en sistemas
centralizados: candados de dos fases que se profundizan mas adelante,
ordenamiento por estampas de tiempo simples y mltiples y control de
concurrencia optimista. Un aspecto interesante del control de concurrencia es el
manejo de nter bloqueos. El sistema no debe permitir que dos o ms
transacciones se bloqueen entre ellas.
4. Confiabilidad. En cualquier sistema de bases de datos, centralizado o
distribuido, se debe tener en cuenta que la informacin sea confiable. As cada
consulta o actualizacin de la informacin se realiza mediante transacciones, las

cuales tienen un principio y un fin. En los sistemas distribuidos, el manejo de la


atomicidad y durabilidad de las transacciones es an ms complejo, ya que una
sola transaccin puede involucrar dos o ms sitios de la red. As, el control de
recuperacin en sistemas distribuidos debe asegurar que el conjunto de agentes
que participan en una transaccin realicen todos un compromiso al unsono o
todos al mismo tiempo restablezcan la informacin anterior (roll-back).
3.4.2 El problema de diseo
El problema de diseo de bases de datos distribuidos se refiere, en general, a la
ubicacin de datos y programas a travs de los diferentes sitios de la red de
computadoras. Este problema debera estar relacionado al diseo de la misma red de
computadoras. La decisin de donde colocar a las aplicaciones tiene que ver tanto con
el software del SMBDD como con las aplicaciones que se van a ejecutar sobre la base
de datos.
El diseo de las bases de datos centralizadas contempla los dos puntos siguientes:
1. Diseo del "esquema conceptual" el cual describe la base de datos
integrada (esto es, todos los datos que son utilizados por las aplicaciones que
tienen acceso a las bases de datos).
2. Diseo "fsico de la base de datos", esto es, mapear el esquema conceptual
a las reas de almacenamiento y determinar los mtodos de acceso a las bases
de datos.
En el caso de las bases de datos distribuidas se tienen que considerar los dos
problemas siguientes:
3. Diseo de la fragmentacin, este se determina por la forma en que las
relaciones globales se subdividen en fragmentos horizontales, verticales o
mixtos.

4. Diseo de la asignacin de los fragmentos, esto se determina en la forma


en que los fragmentos se mapean a las imgenes fsicas, en esta forma,
tambin se determina la solicitud de fragmentos.
3.4.3 Objetivos del Diseo de la Distribucin de los Datos.
Para el diseo de la distribucin de los datos, se deben de tener en cuenta los
siguientes objetivos:

Procesamiento local. La distribucin de los datos, para maximizar el


procesamiento local corresponde al principio simple de colocar los datos tan
cerca como sea posible de las aplicaciones que los utilizan. Se puede realizar el
diseo de la distribucin de los datos para maximizar el procesamiento local
agregando el nmero de referencias locales y remotas que le corresponden a
cada fragmentacin candidata y la localizacin del fragmento, que de esta forma
se seleccione la mejor solucin de ellas.

Distribucin de la carga de trabajo. La distribucin de la carga de trabajo


sobre los sitios, es una caracterstica importante de los sistemas de cmputo
distribuidos. Esta distribucin de la carga se realiza para tomar ventaja de las
diferentes caractersticas (potenciales) o utilizaciones de las computadoras de
cada sitio, y maximizar el grado de ejecucin de paralelismo de las aplicaciones.
Sin embargo, la distribucin de la carga de trabajo podra afectar negativamente
el procesamiento local deseado.

Costo de almacenamiento y disponibilidad. La distribucin de la base de


datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios.
Para esto, es posible tener sitios especializados en la red para el
almacenamiento de datos. Sin embargo el costo de almacenamiento de datos no
es tan relevante si ste se compara con el del CPU, I/O y costos de transmisin
de las aplicaciones.

3.4.4 Enfoques al problema de diseo de bases de datos distribuidas


Existen dos estrategias generales para abordar el problema de diseo de bases de
datos distribuidas:
1. El enfoque de arriba hacia abajo (top-down). Este enfoque es ms apropiado
para aplicaciones nuevas y para sistemas homogneos. Consiste en partir
desde el anlisis de requerimientos para definir el diseo conceptual y las vistas
de usuario. A partir de ellas se define un esquema conceptual global y los
esquemas externos necesarios. Se prosigue con el diseo de la fragmentacin
de la base de datos, y de aqu se contina con la localizacin de los fragmentos
en los sitios, creando las imgenes fsicas. Esta aproximacin se completa
ejecutando, en cada sitio, "el diseo fsico" de los datos, que se localizan en
ste.
2. El diseo de abajo hacia arriba (bottom-up). Se utiliza particularmente a partir
de bases de datos existentes, generando con esto bases de datos distribuidas. En
forma resumida, el diseo bottom-up de una base de datos distribuida requiere de la
seleccin de un modelo de bases de datos comn para describir el esquema global
de la base de datos. Esto se debe es posible que se utilicen diferentes SMBD.
Despus se hace la traduccin de cada esquema local en el modelo de datos
comn y finalmente se hace la integracin del esquema local en un esquema global
comn.

UNIDAD 2 ARQUITECTURA DE BASE DE DATOS DISTRIBUIDA


CAPITULO. 4. NIVELES DE TRANSPARENCIA EN SBDD
Estructura temtica
4.1. Introduccin
4.2 independencia lgica de datos
4.3 independencia fsica de los datos
4.4 transparencia al nivel de red
4.5 transparencia sobre replicacion
4.6 transparencia a nivel de fragmentacin de datos
4.1 INTRODUCCIN
En este captulo se mostrar la arquitectura general de un sistema de bases de datos
distribuida, se introducir el concepto de fragmentacin de datos relacionado con el
nivel de transparencia de distribucin que un SBDD debe ofrecer. Se dar una
descripcin acerca de las componentes de las bases de datos distribuidas.
.Objetivo general
Revisar los conceptos bsicos de la arquitectura y definir la estructura de un sistema.
Al definir la arquitectura se deben identificar las componentes de un sistema, las
funciones que realiza cada una de las componentes y las interrelaciones e
interacciones entre cada componente.
4.2 INDEPENDENCIA LGICA DE DATOS
Se refiere a la inmunidad de las aplicaciones de usuario a los cambios en la estructura
lgica de la base de datos. Esto permite que un cambio en la definicin de un esquema
no debe afectar a las aplicaciones de usuario. Por ejemplo, el agregar un nuevo

atributo a una relacin, la creacin de una nueva relacin, el reordenamiento lgico de


algunos atributos.
4.3 INDEPENDENCIA FSICA DE LOS DATOS
La Independencia fsica de datos. Se refiere al ocultamiento de los detalles sobre las
estructuras de almacenamiento a las aplicaciones de usuario. Esto es, la descripcin
fsica de datos puede cambiar sin afectar a las aplicaciones de usuario. Por ejemplo,
los datos pueden ser movidos de un disco a otro, o la organizacin de los datos puede
cambiar.
4.4 TRANSPARENCIA AL NIVEL DE RED
La transparencia al nivel de red se refiere a que los datos en un SBDD se accesan
sobre una red de computadoras, sin embargo, las aplicaciones no deben notar su
existencia. La transparencia al nivel de red conlleva a dos cosas:
Transparencia sobre la localizacin de datos. Esto es, el comando que se usa es
independiente de la ubicacin de los datos en la red y del lugar en donde la operacin
se lleve a cabo. Por ejemplo, en Unix existen dos comandos para hacer una copia de
archivo. Cp se utiliza para copias locales y rcp se utiliza para copias remotas. En este
caso no existe transparencia sobre la localizacin.
Transparencia sobre el esquema de nombramiento. Lo anterior se logra
proporcionando un nombre nico a cada objeto en el sistema distribuido. As, no se
debe mezclar la informacin de la localizacin con en el nombre de un objeto.
4.5 TRANSPARENCIA SOBRE REPLICACIN
La transparencia sobre replicacin de datos se refiere a que si existen rplicas de
objetos de la base de datos, su existencia debe ser controlada por el sistema no por el
usuario. Se debe tener en cuenta que cuando el usuario se encarga de manejar las

rplicas en un sistema, el trabajo de ste es mnimo por lo que se puede obtener una
eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia
de las rplicas teniendo as datos diferentes.

4.6 TRANSPARENCIA A NIVEL DE FRAGMENTACIN DE DATOS


La transparencia a nivel de fragmentacin de datos permite que cuando los objetos
de la bases de datos estn fragmentados, el sistema tiene que manejar la conversin
de consultas de usuario definidas sobre relaciones globales a consultas definidas sobre
fragmentos. As tambin, ser necesario mezclar las respuestas a consultas
fragmentadas para obtener una sola respuesta a una consulta global. El acceso a una
base de datos distribuida debe hacerse en forma transparente.
Como un ejemplo se utilizar a lo largo de estas notas una base de datos que modela
una compaa de ingeniera. Las entidades a ser modeladas son ingenieros y
proyectos. Para cada ingeniero, se desea conocer su nmero de empleado (ENO), su
nombre (ENOMBRE), el puesto ocupado en compaa (TITULO), el salario (SAL), la
identificacin de los nombres de proyectos en los cuales est trabajando (JNO), la
responsabilidad que tiene dentro del proyecto (RESP) y la duracin de su
responsabilidad en meses (DUR). As mismo, para cada proyecto se desea conocer el
nmero de proyecto (JNO), el nombre del proyecto (JNOMBRE), el presupuesto
asignado al proyecto (PRESUPUESTO) y el lugar en donde se desarrolla el proyecto
(LUGAR).
Un ingeniero puede participar en ms de un proyecto pero su salario corresponde
nicamente al puesto que ocupa en la compaa. As, despus de aplicar
normalizacin se obtienen las relaciones E para ingenieros, J para proyectos, S para
los salarios asignados a los puestos y G para los ingenieros asignados a cada
proyecto. Un ejemplo de las instancias para cada relacin se presenta en la Figura 4.1

ENO ENOMBRE

TITULO

E1

Ingeniero

Juan Prez

Elctrico
E2

Carlos Parra

Analista de
Sistemas

E3

Armando

Ingeniero

Guzmn

Mecnico

E4

Pablo Lpez

Programador

E5

Jorge Prez

Analista de
Sistemas

E6

Luis Chivito

Ingeniero
Elctrico

E7

Marcos Castro

Ingeniero
Mecnico

E8

Andrs Medina

Analista de
Sistemas

G
ENO JNO PUESTO

DUR

E1

J1

Ingeniero

14

E2

J1

Analista

10

E2

J2

Analista

E3

J3

Consultor

10

E3

J4

Administrador

10

E4

J2

Programador

44

E5

J2

Ingeniero

24

E6

J4

Administrador

32

E7

J3

Ingeniero

32

E7

J5

Ingeniero

24

E8

J3

Administrador

44

J
JNO JNOMBRE

PRESUPUESTO LUGAR

J1

Instrumentacin 150000

Cali

J2

Desarrollo de

135000

Bogot

bases de datos
J3

CAD/CAM

250000

Neiva

J4

Mantenimiento

310000

Cali

J5

CAD/CAM

500000

Pereira

S
TITULO

SALARIO

Ingeniero

40000

Elctrico
Analista de

34000

Sistemas
Ingeniero

27000

Mecnico
Programador

24000

4.1 Bases de datos de una empresa con cuatro relaciones.


Si se quisiera obtener todos los empleados y sus salarios en la corporacin quienes
han trabajado ms de 12 meses se hara la consulta siguiente en SQL:
SELECT ENOMBRE, SALARIO
FROM E, G, S
WHERE JORNADA > 12 AND E.ENO = G.ENO AND
E.TITULO = S.TITULO
Se debe tener en cuenta que en cada sitio de la corporacin puede haber esquemas
diferentes o repetidos. Por ejemplo, en la Figura 4.2 se presentan esquemas diferentes
para el manejo de proyectos, empleados y puestos en cada sitio de la bases de datos
del Ejemplo 4.1.

Figura 4.2. Diferentes sitios de una empresa.


La transparencia tiene como punto central la independencia de datos. Los diferentes
niveles de transparencia se puede organizar en capas como se muestra en la Figura
4.3. En el primer nivel se soporta la transparencia de red.
En el segundo nivel se permite la transparencia de replicacin de datos.
En el tercer nivel se permite la transparencia de la fragmentacin.
En el cuarto nivel se permite la transparencia de acceso.
La responsabilidad sobre el manejo de transparencia debe estar compartida tanto por
el sistema operativo, el sistema de manejo de bases de datos y el lenguaje de acceso a
la base de datos distribuida. Entre estos tres mdulos se deben resolver los aspectos
sobre el procesamiento distribuido de consultas y sobre el manejo de nombres de
objetos distribuidos.

Figura 4.3. Organizacin en capas de los niveles de transparencia.

CAPITULO. 5 ARQUITECTURA DE LAS BDD


Estructura temtica
5.1. Introduccin
5.2. modelo de referencia
5.3 arquitectura ANSI -SPARC
5.1 INTRODUCCIN
La mayora de los sistemas de manejo de bases de datos disponibles actualmente
estn basadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres
niveles: interno, conceptual y externo,
Muestra los conceptos de las diferentes vistas. As como la vista conceptual, conocida
tambin como vista lgica global que representa la visin de la comunidad de usuarios
de los datos en la base de datos., incluyendo a los programadores de aplicaciones,
observan los datos a travs de un esquema externo definido a nivel externo. La vista
externa proporciona una ventana a la vista conceptual lo cual permite a los usuarios
observar nicamente los datos. Y como este proporciona una interfaz al sistema de
archivos del sistema operativo el cual es el responsable del acceso a la base de datos.
Objetivo general
Conocer las diferentes formas de representacin de la informacin en sus diferentes vistas, tales
como: interno, conceptual y externo.
5.2 MODELO DE REFERENCIA
Un modelo de referencia el cual sera un marco de trabajo conceptual cuyo propsito
es dividir el trabajo de estandarizacin en piezas manejables y mostrar a un nivel

general como esas piezas se relacionan unas con otras. Para definir ese modelo de
referencia se puede seguir uno de los siguientes tres enfoques:
1. Basado en componentes. Se definen las componentes del sistema junto con
las relaciones entre ellas. As, un SMBD consiste de un nmero de
componentes, cada uno de los cuales proporciona alguna funcionalidad.
2. Basado en funciones. Se identifican las diferentes clases de usuarios junto con
la funcionalidad que el sistema ofrecer para cada clase. La especificacin del
sistema en esta categora tpicamente determina una estructura jerrquica para
las clases de usuarios. La ventaja de este enfoque funcional es la claridad con la
cual se especifican los objetivos del sistema.
3. Basado en datos. Se identifican los diferentes tipos de descripcin de datos y
se especifica un marco de trabajo arquitectural el cual define las unidades
funcionales que realizarn y/o usarn los datos de acuerdo con las diferentes
vistas. La ventaja de este enfoque es la importancia que asigna al manejo de
datos. Este es un enfoque significativo para los SMBD dado que su propsito
principal es manejar datos. Sin embargo, la desventaja de este enfoque es que
es prcticamente imposible especificar un modelo arquitectural sin especificar
los modelos para cada una de sus unidades funcionales. Este es el enfoque
seguido por el modelo ANSI/SPARC.
5.3 ARQUITECTURA ANSI SPARC
La arquitectura de sistemas de bases de datos de tres esquemas fue aprobado por la
ANSI-SPARC (American National Standard Institute - Standards Planning and
Requirements Committee) en 1975 como ayuda para conseguir la separacin entre los
programas de aplicacin y los datos, el manejo de mltiples vistas por parte de los
usuarios y el uso de un catlogo para almacenar el esquema de la base de datos.
La vista conceptual, conocida tambin como vista lgica global, representa la visin de
la comunidad de usuarios de los datos en la base de datos. No toma en cuenta la

forma en que las aplicaciones individuales observan los datos o como stos son
almacenados. La vista conceptual est basada en el esquema conceptual y su
construccin se hace en la primera fase del diseo de una base de datos.
Los usuarios, incluyendo a los programadores de aplicaciones, observan los datos a
travs de un esquema externo definido a nivel externo. La vista externa proporciona
una ventana a la vista conceptual lo cual permite a los usuarios observar nicamente
los datos de inters y los asla de otros datos en la base de datos. Puede existir
cualquier nmero de vistas externas y ellos pueden ser completamente independientes
o traslaparse entre s.
El esquema conceptual se mapea a un esquema a nivel interno, el cual es el nivel de
descripcin ms bajo de los datos en una base de datos. Este proporciona una interfaz
al sistema de archivos del sistema operativo el cual es el responsable del acceso a la
base de datos. El nivel interno tiene que ver con la especificacin de qu elementos
sern indexados, qu tcnica de organizacin de archivos utilizar y como los datos se
agrupan en el disco para mejorar su acceso.
En la Figura se presenta la definicin de los esquemas conceptual, interno y externo
para las relaciones de la Figura 5.1.

Figura 5.1. Arquitectura ANSI/SPARC de una base de datos.

Figura 5.2. Vista conceptual de las relaciones E, S, J y G.

Figura 5.3 Definicin de una vista interna a partir de la relacin S.

Figura 5.4. Dos ejemplos de vistas externas.


Desafortunadamente, no existe un equivalente de una arquitectura estndar para
sistemas de manejo de bases de datos distribuidas. La tecnologa y prototipos de
SMBDD se han desarrollado ms o menos en forma independiente uno de otro y cada
sistema ha adoptado su propia arquitectura.

CAPITULO. 6 ALTERNATIVAS PARA LA IMPLEMENTACION DE SMBDD


Estructura temtica
6.1. Introduccin
6.2. Distribucin
6.3 Heterogeneidad
6.4 Autonoma
6.1 INTRODUCCIN
Se muestran en este capitulo los diferentes factores que se deben tener en cuenta a la
hora de la implementacin de un sistema manejador de base de datos. La distribucin
que Determina si las componentes del sistema estn localizadas en la misma
computadora o no, la heterogeneidad

que se puede presentar a varios niveles:

hardware, sistema de comunicaciones, sistema operativo o SMBD, la Autonoma y sus


niveles tanto de diseo, comunicacin y ejecucin.

Objetivo general
Identificar los componentes que se implementan en sistema manejador de bases de
datos distribuida. Tanto en la distribucin, la heterogeneidad y la autonoma
6.2. DISTRIBUCIN
Determina si las componentes del sistema estn localizadas en la misma computadora
o no.
6.3 HETEROGENEIDAD

La heterogeneidad se puede presentar a varios niveles: hardware, sistema de


comunicaciones, sistema operativo o SMBD. Para el caso de SMBD heterogneos sta
se puede presentar debido al modelo de datos, al lenguaje de consultas o a los
algoritmos para manejo de transacciones.

Figura 6.1 Arquitectura de un SMBDD homogneo.


Desde el punto de vista funcional y de organizacin de datos, los sistemas de datos
distribuidos estn divididos en dos clases separadas, basados en dos filosofas
totalmente diferentes y diseadas para satisfacer necesidades diferentes:
1. Sistemas de manejo de bases de datos distribuidos homogneos
2. Sistemas de manejo de bases de datos distribuidos heterogneos
Un SMBDD homogneo tiene mltiples colecciones de datos; integra mltiples
recursos de datos como se muestra en la Figura 6.2. Los sistemas homogneos se
parecen a un sistema centralizado, pero en lugar de almacenar todos los datos en un
solo lugar, los datos se distribuyen en varios sitios comunicados por la red. No existen

usuarios locales y todos ellos accedan la base de datos a travs de una interfaz global.
El esquema global es la unin de toda las descripciones de datos locales y las vistas
de los usuarios se definen sobre el esquema global.

Figura 6.2. Arquitectura de los esquemas de un SMBDD homogneo.

Figura 6.3. Arquitectura de un sistema multi-bases de datos.


La clase de sistemas heterogneos es aquella caracterizada por manejar diferentes
SMBD en los nodos locales. Una subclase importante dentro de esta clase es la de los
sistemas de manejo multi-bases de datos. Un sistema multi-bases de datos (SmultiBD) tiene mltiples SMBD, que pueden ser de tipos diferentes, y mltiples bases de
datos existentes. La integracin de todos ellos se realiza mediante subsistemas de
software. La arquitectura general de tales sistemas a diferencia con los sistemas
homogneos, existen usuarios locales y globales. Los usuarios locales accesan sus
bases de datos locales sin verse afectados por la presencia del Smulti-BD.
6.4 AUTONOMA
La autonoma se puede presentar a diferentes niveles:

Autonoma de diseo. La habilidad de un componente del SMBD para decidir


cuestiones relacionadas a su propio diseo.

Autonoma de comunicacin. La habilidad de un componente del SMBD para


decidir como y cuando comunicarse con otros SMBD.

Autonoma de ejecucin. La habilidad de un componente del SMBD para


ejecutar operaciones locales de la manera que l quiera.

UNIDAD 3 DISEO DE BASE DE DATOS DISTRIBUIDAS


CAPITULO 7 DISEO DE LA DISTRIBUCION DE LOS DATOS
Estructura temtica
7.1. Introduccin
7.2. Procesamiento local
7.3. Distribucin de la carga de trabajo
7.4. Costo de almacenamiento y Disponibilidad
7.1 INTRODUCCIN
Este captulo muestra los aspectos importantes referentes al diseo de una base de
datos distribuida. Se revisar el problema la distribucin de carga y el manejo del costo
de almacenamiento y la disponibilidad.
Objetivo general
Conocer las formas de procesamiento local la Distribucin de la carga de trabajo y el
Manejo del Costo de almacenamiento y disponibilidad.

7.2. PROCESAMIENTO LOCAL


El procesamiento local en La distribucin de los datos pretende

maximizar el

procesamiento que corresponde al principio simple de colocar los datos tan cerca como
sea posible de las aplicaciones que los utilizan. Se puede realizar el diseo de la
distribucin de los datos para maximizar el procesamiento local agregando el nmero
de referencias locales y remotas que le corresponden a cada fragmentacin candidata

y la localizacin del fragmento, que de esta forma se seleccione la mejor solucin de


ellas.
7.3. DISTRIBUCIN DE LA CARGA DE TRABAJO
La distribucin de la carga de trabajo sobre los sitios, es una caracterstica importante
de los sistemas de cmputo distribuidos. Esta distribucin de la carga se realiza para
tomar ventaja de las diferentes caractersticas (potenciales) o utilizaciones de las
computadoras de cada sitio, y maximizar el grado de ejecucin de paralelismo de las
aplicaciones. Sin embargo, la distribucin de la carga de trabajo podra afectar
negativamente el procesamiento local deseado.
7.4 . COSTO DE ALMACENAMIENTO Y DISPONIBILIDAD
La distribucin de la base de datos refleja el costo y disponibilidad del almacenamiento
en diferentes sitios. Para esto, es posible tener sitios especializados en la red para el
almacenamiento de datos. Sin embargo el costo de almacenamiento de datos no es
tan relevante si ste se compara con el del CPU, I/O y costos de transmisin de las
aplicaciones.

CAPITULO 8 ENFOQUES AL PROBLEMA DE DISEO DE BDD


.
Estructura temtica
8.1. Introduccin
8.2. Enfoque de arriba hacia abajo (top down).
8.3 Diseo de abajo hacia arriba (bottom-up).
8.1. INTRODUCCIN
Se muestran las estrategias de diseo base de datos distribuida, los enfoques tanto el
enfoque de arriba hacia abajo (top-down) como el

diseo de abajo hacia arriba

(bottom-up).
Objetivo general
Conocer la forma como se realiza el diseo conceptual
8.2. ENFOQUE DE ARRIBA HACIA ABAJO (TOP DOWN).
El enfoque de arriba hacia abajo (top-down). Este enfoque es ms apropiado para
aplicaciones nuevas y para sistemas homogneos. Consiste en partir desde el anlisis
de requerimientos para definir el diseo conceptual y las vistas de usuario. A partir de
ellas se define un esquema conceptual global y los esquemas externos necesarios. Se
prosigue con el diseo de la fragmentacin de la base de datos, y de aqu se contina
con la localizacin de los fragmentos en los sitios, creando las imgenes fsicas. Esta
aproximacin se completa ejecutando, en cada sitio, "el diseo fsico" de los datos, que
se localizan en ste. En la Figura 8.1 se presenta un diagrama con la estructura
general del enfoque top-down.

Figura 8.1 se presenta un diagrama con la estructura general del enfoque top-down.
8.3 DISEO DE ABAJO HACIA ARRIBA (BOTTOM-UP).
El diseo de abajo hacia arriba (bottom-up). Se utiliza particularmente a partir de bases
de datos existentes, generando con esto bases de datos distribuidas. En forma
resumida, el diseo bottom-up de una base de datos distribuida requiere de la
seleccin de un modelo de bases de datos comn para describir el esquema global de
la base de datos. es posible que se utilicen diferentes SMBD. Despus se hace la
traduccin de cada esquema local en el modelo de datos comn y finalmente se hace
la integracin del esquema local en un esquema global comn.

CAPITULO. 9 FRAGMENTACION
Estructura temtica
9.1. Introduccin
9.2. Fragmentacin Horizontal
9.3. Fragmentacin Vertical
9.4 . Fragmentacin Hbrida
9.5. Asignamiento de Fragmentos
9.1. INTRODUCCIN
En el presente capitulo se muestra como el diseo de una base de datos distribuida,
cualquiera sea el enfoque que siga, debe cuestionarse preguntas tales como:
El por qu hacer una fragmentacin de datos, como se debe hacer la fragmentacin,
que tanto se debe fragmentar, cuales son los mecanismos de validez de
fragmentacin, como se realizan los asignamientos de la fragmentacin y como se
consideran los requerimientos de la informacin. Y como el problema de fragmentacin
se refiere al particionamiento de la informacin para distribuir cada parte a los
diferentes sitios de la red.
La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece
la ejecucin concurrente de varias transacciones que accesan porciones diferentes de
una relacin. Sin embargo,. En resumen, el objetivo de la fragmentacin es encontrar
un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos
hasta relaciones completas.
Objetivo general
Encontrar un nivel de particionamiento adecuado en el rango que se trabaja que va
desde tuplas o atributos hasta las relaciones completas de las tablas.

9.2. FRAGMENTACIN HORIZONTAL


Corresponde esencialmente a

una tabla y la cuestin consiste en dividirla en

fragmentos menores, inmediatamente surgen dos alternativas lgicas para llevar a


cabo el proceso: la divisin horizontal y la divisin vertical. La divisin o fragmentacin
horizontal trabaja sobre las tuplas, dividiendo la relacin en subrelaciones que
contienen un subconjunto de las tuplas que alberga la primera.
El objetivo de la fragmentacin es encontrar un nivel de particionamiento adecuado en
el rango que va desde tuplas o atributos hasta relaciones completas.
Ejemplo 9.1. Considere la relacin J del ejemplo :
JNO JNOMBRE

PRESUPUESTO LUGAR

J1

Programador 230000

Medelln

J2

Desarrollo

235000

Cali

BD
J3

CAD/CAM

250000

Bogot

J4

Soporte

460000

Neiva

J5

CAD/CAM

750000

Ibague

La relacin J se puede fragmentar horizontalmente produciendo los siguientes


fragmentos.
J1: proyectos con presupuesto menor que $250,000
JNO JNOMBRE

PRESUPUESTO LUGAR

J1

Programador 230000

Medelln

J2

Desarrollo

Cali

235000

BD
J2: proyectos con presupuesto mayor que o igual a $250,000
JNO JNOMBRE

PRESUPUESTO LUGAR

J3

CAD/CAM

250000

Bogot

J4

Soporte

460000

Neiva

J5

CAD/CAM

750000

Ibague

Fragmentacin horizontal primaria


Es el particionamiento en tuplas de una relacin global en subconjuntos, donde cada
subconjunto puede contener datos que tienen propiedades comunes y se puede definir
expresando cada fragmento como una operacin de seleccin sobre la relacin global.
Ejemplo Considere la relacin global
SUPPLIER( SNUM, NAME, CITY )
entonces, la fragmentacin horizontal puede ser definida como:
SUPPLIER1 = SLcity == "SF"SUPPLIER
SUPPLIER2 = SLcity == "LA"SUPPLIER

Esta fragmentacin satisface la condicin si "SF" y "LA" son solamente los nicos
valores posibles del atributo CITY.
La condicin de reconstruccin se logra con:
SUPPLIER = SUPPLIER1 unin SUPPLIER2
La condicin de disjuntos se cumple claramente en este ejemplo.
Fragmentacin horizontal derivada
La fragmentacin derivada horizontal se define partiendo de una fragmentacin
horizontal.
En esta operacin se requiere de Semi-junta (Semi-Join) el cual sirve para derivar las
tuplas o registros de dos relaciones.
Ejemplo. Las siguientes relaciones definen una fragmentacin horizontal derivada de
la relacin SUPPLY.
SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1
SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2

9.3. FRAGMENTACIN VERTICAL


La fragmentacin vertical, en cambio, se basa en los atributos de la relacin para
efectuar la divisin. La fragmentacin vertical es la subdivisin de atributos en grupos.
Los fragmentos se obtienen proyectando la relacin global sobre cada grupo. La
fragmentacin es correcta si cada atributo se mapea en al menos un atributo del
fragmento.

Ejemplo La relacin J del ejemplo anterior se puede fragmentar verticalmente


produciendo los siguientes fragmentos:

J1: informacin acerca de presupuestos de proyectos


JNO PRESUPUESTO
J1

230000

J2

235000

J3

250000

J4

460000

J5

750000

J2: informacin acerca de los nombres y ubicaciones de proyectos


JNO JNOMBRE

LUGAR

J1

Programador

Medelln

J2

Desarrollo BD Cali

J3

CAD/CAM

Bogot

J4

Soporte

Neiva

J5

CAD/CAM

Ibagu

Ejemplo. Considere la siguiente relacin global:


EMP( empnum, name, sal, tax, mgrnum, depnum )
una fragmentacin vertical de esta relacin puede ser definida como:
EMP1 = PJempnum, name, mgrnum, depnum EMP
EMP2 = PJempnum, sal, tax EMP
la reconstruccin de la relacin EMP puede ser obtenida como:
EMP = EMP1 (JN empnum) EMP2 porque empnum es una clave de EMP
9.4 FRAGMENTACIN HBRIDA
Fundamentalmente, se habla de fragmentacin mixta o hbrida cuando el proceso de
particin hace uso de los dos tipos anteriores. La fragmentacin mixta puede llevarse a
cabo de tres formas diferentes: desarrollando primero la fragmentacin vertical y,
posteriormente, aplicando la particin horizontal sobre los fragmentos verticales
(denominada particin VH), o aplicando primero una divisin horizontal para luego,
sobre los fragmentos generados, desarrollar una fragmentacin vertical (llamada
particin HV), o bien, de forma directa considerando la semntica de las transacciones.
Ejemplo Considere la relacin global
EMP( empnum, name, sal, tax, mrgnum, depnum )
Las siguientes son para obtener una fragmentacin mixta, aplicando la vertical seguida
de la horizontal:
EMP1 = SL depnum <= 10 PJempnum, name, mgrnum, depnum EMP

EMP2 = SL 10 < depnum <= 20 PJempnum, name, mgrnum, depnum EMP


EMP3 = SL depnum > 20 PJempnum, name, mgrnum, depnum EMP
EMP4 = PJ empnum, name, sal, tax EMP
La reconstruccin de la relacin EMP es definida por la siguiente expresin:
EMP = UN(EMP1, EMP2, EMP3)JNempnum = empnumPJempnum, sal, tax
EMP4
otro ejemplo que tiene el siguiente esquema global
EMP(EMPNUM, NAME, SAL, TAX, MGRNUM, DEPNUM)
DEP(DEPNUM, NAME, AREA, MGRNUM)
SUPPLIER(SNUM, NAME, CITY)
SUPPLY(SNUM, PNUM, DEPNUM, QUAN)
Despus de aplicar una fragmentacin mixta se obtiene el siguiente esquema
fragmentado
EMP1 = Sldepnum <= 10 PJempnum, name, mgrnum, depnum (EMP)
EMP2 = SL 10 < depnum <= 20 PJempnum, name, mgrnum, depnum (EMP)
EMP3 = SL depnum > 20 PJempnum, name, mgrnum, depnum (EMP)
EMP4 = PJ empnum, name, sal, tax (EMP)
DEP1 = SL depnum <= 10 (DEP)
DEP2 = SL 10 < depnum <= 20 (DEP)

DEP3 = SL depnum > 20 (DEP)


SUPPLIER1 = SL city == "SF" (SUPPLIER)
SUPPLIER2 = SL city == "LA" (SUPPLIER)
SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1
SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2

9.5 ASIGNAMIENTO DE FRAGMENTOS


El Asignamiento de recursos entre los nodos de una red de computadoras es un
problema que se ha estudiado de manera extensa. Sin embargo, la mayora de este
trabajo no considera el problema de diseo de bases de datos distribuidas, en lugar de
eso considera el problema de ubicar archivos individuales en redes de computadoras.
Suponga que hay un conjunto de fragmentos F = { F1, F2, ..., Fn } y una red que
consiste de los sitios S = { S1, S2, ..., Sm } en los cuales un conjunto de consultas Q = {
q1, q2, ..., qq } se van a ejecutar. El problema de asignamiento determina la distribucin
"ptima" de F en S. La optimalidad puede ser definida de acuerdo a dos medidas:
1. Costo mnimo. Consiste del costo de comunicacin de datos, del costo de
almacenamiento, y del costo procesamiento (lecturas y actualizaciones a cada
fragmento). El problema de asignamiento, entonces, pretende encontrar un
esquema de asignmiento que minimiza una funcin de costo combinada.
2. Rendimiento. La estrategia de asignamiento se disea para mantener una
mtrica de rendimiento. Las dos mtricas ms utilizadas son el tiempo de
respuesta y el "throughput" (nmero de trabajos procesados por unidad de
tiempo).

En cualquier problema de optimizacin existen restricciones que se deben satisfacer. El


caso de distribucin de fragmentos, las restricciones se establecen sobre las
capacidades de almacenamiento y procesamiento de cada nodo en la red.
En la fase de asignamiento se necesita conocer informacin cuantitativa relativa a la
base de datos, las aplicaciones que se utilizarn, la red de comunicaciones, las
capacidades de procesamiento y de almacenamiento de cada nodo en la red. Esta
informacin tiene datos sobre:

Informacin sobre la base de datos. Es necesario conocer la selectividad de un


fragmento Fj con respecto a una consulta qi, esto es, el nmero de tuplas de Fj
que ser necesario accesar para procesar qi. Este valor se denota como

sel( Fj ). As tambin, es necesario conocer el tamao de cada fragmento, el cual


est dado por:
size(Fj ) = card( Fj ) * length( Fj )

Informacin sobre las aplicaciones. Es necesario distinguir el nmero de lecturas


que una consulta qj hace a un fragmento Fj durante su ejecucin, del nmero de
escrituras. Se requiere de una matriz que indique que consultas actualizan
cuales fragmentos. Una matriz similar se necesita para indicar las lecturas de
consultas a fragmentos. Finalmente, se necesita saber cual es el nodo de la red
que origina cada consulta.

Informacin sobre cada nodo de la red. Las medidas utilizadas son el costo
unitario de almacenamiento de datos en un nodo y el costo unitario de
procesamiento de datos en un nodo.

Informacin sobre la red de comunicaciones. Las medidas a considerar son: la


velocidad de comunicacin, el tiempo de latencia en la comunicacin y la
cantidad de trabajo adicional a realizar para una comunicacin.

Asignamiento de archivos y de fragmentos


En el diseo de bases de datos distribuidas no se puede considerar igual al problema
de la distribucin de archivos existen algunas razones a considerar:
1. Los fragmentos no son archivos individuales. La colocacin de un fragmento
usualmente tiene un impacto en la colocacin de otros fragmentos. Por lo tanto,
es necesario mantener las relaciones entre fragmentos.
2. El acceso a las bases de datos es ms complicado que a archivos. Los modelos
de acceso remoto a archivos no se aplican. Es necesario considerar las
relaciones entre el asignamiento de fragmentos y el procesamiento de consultas.
3. El costo del mantenimiento de la integridad de la informacin debe ser
considerado en las bases de datos distribuidas.
4. El costo del control de concurrencia a una base de datos distribuida tambin
debe ser considerado.
Modelo de Asignamiento
El siguiente es un modelo de asignamiento que pretende minimizar el costo total de
procesamiento y almacenamiento cumpliendo algunas restricciones en el tiempo de
respuesta. El modelo a forma general:
min( Costo Total )
Dadas
Restricciones en el tiempo de respuesta
Restricciones en las capacidades de almacenamiento
Restricciones en el tiempo de procesamiento

UNIDAD 4 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS


CAPITULO 10 ARQUITECTURA DEL PROCESAMIENTO DE CONSULTAS
Estructura temtica
10.1. Introduccin
10.2. Descomposicin de consultas
10.3. Optimizacin Global de Consultas
10.4. Optimizacin Local de Consultas
10.1. INTRODUCCIN
En este capitulo se muestra como la

disponibilidad de lenguajes no procedurales

pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del


usuario final. Ocultando los detalles de bajo nivel acerca de la localizacin fsica de
datos, los lenguajes de bases de datos relacionales permiten la expresin de consultas
complejas en una forma concisa y simple para construir la respuesta a una consulta, el
usuario no tiene que especificar de manera precisa el procedimiento que se debe
seguir. Este procedimiento es llevado a cabo por un mdulo del DBMS llamado el
procesador de consultas (query processor).
Dado que la ejecucin de consultas es un aspecto crtica en el rendimiento de un
DBMS, el procesamiento de consultas ha recibido una gran atencin tanto para bases
de datos centralizadas como distribuidas. Sin embargo, el procesamiento de consultas
es mucho ms difcil en ambientes distribuidos que en centralizados, ya que existe un
gran nmero de parmetros que afectan el rendimiento de las consultas distribuidas.
En este captulo se revisa el procesamiento de consultas para bases de datos
distribuidas

Objetivo general
El objetivo

principal es mostrar como un procesador de consultas relacionales

transforma una consulta en una especificacin de alto nivel, tpicamente en clculo


relacional, a una consulta equivalente en una especificacin de bajo nivel.
10.2. DESCOMPOSICIN DE CONSULTAS
La descomposicin de consultas consiste de cuatro pasos: normalizacin, anlisis,
simplificacin y reestructuracin. En esta seccin se dar claridad sobre cada uno de
los pasos.
Normalizacin
La consulta de entrada puede ser arbitrariamente compleja dependiendo de las
facilidades provistas por el lenguaje. El objetivo de la normalizacin es transformar una
consulta a una forma normalizada para facilitar su procesamiento posterior. La
normalizacin consiste de dos partes:
El anlisis lxico y sintctico. En esta parte se verifica la validez de la expresin que da
origen a la consulta. Se verifica que las relaciones y atributos invocados en la consulta
estn acordes con la definicin en la base de datos. Por ejemplo, se verifica el tipo de
los operandos cuando se hace una operacin.
Para la construccin de la forma normal. Existen dos tipos de formas normales. La
forma normal conjuntiva es una conjuncin de disyunciones como sigue:
(p11 p12 . . . p1n) (p21 p22 . . . p2n) . . . (pm1 pm2 . . .
pmn)
donde pij es un predicado simple. Una consulta est en forma normal disyuntiva
cuando se tiene una disyuncin de conjunciones:

(p11 p12 . . . p1n) (p21 p22 . . . p2n) . . . (pm1 pm2 . . .


pmn)
En toda forma normal, la expresin est libre de cuantificadores el existencial o
universal, por lo que solo se consideran predicados simples. Existe un procedimiento
para obtener la forma normal, conjuntiva o disyuntiva, de cualquier expresin en el
clculo de proposiciones. Para la aplicacin que se esta considerando, la forma normal
conjuntiva es ms prctica puesto que incluye ms operadores AND ( ) que
operadores OR ( ). Tpicamente, los operadores OR se transforman en uniones de
conjuntos y los operadores AND se transforman en operadores de junta o seleccin.
Ejemplo

Considere la siguiente consulta en una base de datos que tiene

nombre(ENO), nmeses de trabajo (DUR), proyecto(JNO) y salario. En las tablas E,G.


"Encuentre los nombres de los empleados que han trabajado en el proyecto J1 12 o 24
meses"
La consulta expresada en SQL es:
SELECT ENAME
FROM E, G
WHERE E.ENO = G.ENO AND G.JNO = "J1" AND DUR = 12 OR DUR = 24
La consulta en forma normal conjuntiva es:
E.ENO = G.ENO G.JNO = "J1" (DUR = 12 DUR = 24)
La consulta en forma normal disyuntiva es:
(E.ENO = G.ENO G.JNO = "J1" DUR = 12)
(E.ENO = G.ENO G.JNO = "J1" DUR = 24)

En esta ltima forma, si se tratan las conjunciones en forma independiente.


Anlisis
El anlisis de consultas permite rechazar consultas normalizadas para los cuales no se
requiere mayor procesamiento. Una consulta se puede rechazar si alguno de sus
atributos o nombres de relacin no estn definidas en el esquema global. Tambin se
puede rechazar si las operaciones que se aplican a los atributos no son del tipo
adecuado.
La consulta se puede rechazar si las componentes no contribuyen de ninguna forma a
la generacin del resultado. Dentro del clculo relacional no es posible determinar la
correctitud semntica de una consulta general. Sin embargo, es posible hacerlo para
una clase importante de consultas relacionales, aquellas que no contienen
disyunciones y negaciones.
Ejemplo. Considere la siguiente consulta:
"Encuentre los nombres y responsabilidades de los programadores que han estado
trabajando en el proyecto de CAD/CAM por ms de tres aos y el nombre de su
administrador"
La consulta expresada en SQL es:
SELECT ENAME, RESP
FROM E, G, J
WHERE E.ENO = G.ENO AND G.JNO = J.JNO AND JNAME = "CAD/CAM"
AND DUR >= 36 AND TITLE = "Programador"
La grfica de la consulta anterior se presenta en la Figura a. En la Figura b se presenta
la grfica de juntas.


Figura a) Grfica de una consulta. b) Grfica de juntas.
Simplificacin
La consulta en forma normal conjuntiva puede contener predicados redundantes. Una
evaluacin directa de la consulta con redundancia puede llevarnos a realizar trabajo
duplicado. La redundancia puede ser eliminada aplicando sucesivamente las siguientes
reglas:
1. p p p
2. p p p
3. p true p
4. p false p
5. p false false
6. p true true
7. p p false
8. p p true

9. p1 (p1 p2) p1
10. p1 (p1 p2) p1
Ejemplo. La siguiente consulta en SQL
SELECT TITULO
FROM E
WHERE (NOT (TITULO = "Programador"))
AND (TITULO = "Programador"
OR TITULO = "Ingeniero Elctrico")
AND NOT (TITULO = "Ingeniero Elctrico")
OR ENOMBRE = "J. Doe"
Puede ser simplificada usando las reglas anteriores a
SELECT TITULO
FROM E
WHERE ENOMBRE = "J. Doe"

Reestructuracin
El ltimo paso en la descomposicin de consultas reescribe la consulta en el lgebra
relacional. Esto se hace tpicamente en los siguientes paso:
Una transformacin directa del clculo relacional en el lgebra relacional
Una reestructuracin de la consulta en el lgebra relacional para mejorar la eficiencia

Por claridad es costumbre representar la consulta en el lgebra relacional por un rbol


del lgebra relacional, el cual es un rbol en donde una hoja representa a una relacin
almacenada en la base de datos y un nodo no hoja es una relacin intermedia
producida por una operacin del lgebra relacional.
La transformacin de una consulta en el clculo relacional en un rbol del lgebra
relacional se puede hacer como sigue. Primero, se crea una hoja diferente para cada
variable de tuplo diferente. En SQL, las hojas estn disponibles de forma inmediata en
la clusula FROM. Segundo, el nodo raz se crea como una operacin de proyeccin
con los atributos resultantes. Estos se encuentran en la clusula SELECT de una
consulta en SQL. Tercero, la calificacin (WHERE) de una consulta se traduce a una
secuencia apropiada de operaciones relacionales (select,join,union, etc.) yendo de las
hojas a la raz. La secuencia se puede dar directamente por el orden de aparicin de
los predicados y operadores.
Ejemplo "Encuentre los nombres de empleados diferentes de "J. Doe" que trabajaron
en el proyecto de CAD/CAM por uno o dos aos"
se puede expresar en SQL como sigue:
SELECT ENAME
FROM J, E, G
WHERE E.ENO = G.ENO
AND G.JNO = J.JNO
AND ENAME "J. Doe"
AND JNAME = "CAD/CAM"
AND (DUR = 12 OR DUR = 24)

Se puede mapear de manera directa al rbol del lgebra relacional de la Figura 10.1

Ejemplo de un rbol del lgebra relacional.


Aplicando las reglas de transformacin que se vern a continuacin, rboles diferentes
se pueden encontrar por el procedimiento descrito antes. Las seis reglas de
equivalencia ms tiles, las cuales estn relacionadas a las operaciones del lgebra
relacional se presentan a continuacin. En lo que sigue, R, S y T son relaciones donde
R se define sobre los atributos
A = { A1, A2, ..., An } y
S se define sobre los atributos B = { B1, B2, ..., Bn }.
1. Conmutatividad de operaciones binarias:
RS=SR
R><S=S><R
RS=SR

2. Asociatividad de operaciones binarias:


R (S T) (R S) T
R > < (S > < T) (R > < S) > < T
3. Idempotencia de operaciones unarias:
P A? (P A?? (R)) P A? (R)
s p1(A1) (s p2(A2) (R)) s p1(A1) p2(A2) (R)
donde R[A] y A? A, A?? A y A? A.
4. Conmutando seleccin con proyeccin
P A1, ..., An (s p(Ap) (R)) P A1, ..., An (s p(Ap) (P A1, ..., An, Ap (R)))
5. Conmutando seleccin con operaciones binarias
s p(A) (R S) (s p(A) (R)) S
s p(Ai) (R > < (Aj, Bk) S) (s p(Ai) R) > < (Aj, Bk) S
s p(Ai) (R T) s p(Ai) (R) s p(Ai) (T)
donde Ai pertenece a R y a T.
6. Conmutando proyeccin con operaciones binarias
P C (R S) P A? (R) P B? (S)
P C (R > < (Aj, Bk) S) P A? (R) > < (Aj, Bk) P B? (S)
P C (R S) P C (R) P C (T)

donde R[A] y S[B]; C = A? B? donde A? A y B? B.


Ejemplo En la Figura 10.2 se presenta un rbol equivalente al mostrado en la
Figura 10.1. La reestructuracin del rbol de la Figura 10.1 se presenta en la
Figura 10.2. El resultado es bueno en el sentido de que se evita el acceso
repetido a la misma relacin y las operaciones ms selectivas se hacen primero.
Sin embargo, este rbol an no es ptimo. Por ejemplo, la operacin de
seleccin E no es muy til antes de la junta dado que no reduce grandemente el
tamao de la relacin intermedia.

Figura 10.2. Arbol equivalente al de la Figura 10.2.

El rbol se reestructura a partir del de la Figura 10.1


Caracterizacin de los procesadores de consultas
Es un trabajo dispendioso evaluar y comparar procesadores de consultas para
sistemas centralizados y distribuidos dado que ellos difieren en muchos aspectos. En
esta seccin se enumeran algunas caractersticas importantes de los procesadores de
consultas que pueden ser usados como base para su comparacin.
Tipo de optimizacin
El problema de optimizacin de consultas es altamente demandante en tiempo de
ejecucin es un problema de la clase NP. As existen dos estrategias para su solucin:
bsqueda exhaustiva o el uso de heursticas. Los algoritmos de bsqueda exhaustiva
tienen una complejidad combinatoria en el nmero de relaciones de la consulta.
Obtienen la transformacin ptima, pero slo se aplican a consultas simples dado su
tiempo de ejecucin.
Por otro lado, los algoritmos heursticos obtienen solo aproximaciones a la
transformacin ptima pero lo hacen en un tiempo de ejecucin razonable. Las
heursticas ms directas a aplicar son el agrupamiento de expresiones comunes para
evitar el clculo repetido de las mismas, aplicar primero las operaciones de seleccin y
proyeccin, reemplazar una junta por una serie de semijuntas y reordenar operaciones
para reducir el tamao de las relaciones intermedias.
Granularidad de la optimizacin
Existen dos alternativas: considerar slo una consulta a la vez o tratar de optimizar
mltiples consultas. La primera alternativa no considera el uso de resultados comunes
intermedios. En el segundo caso puede obtener transformaciones eficientes si las
consultas son similares. Sin embargo, el espacio de decisin es mucho ms amplio lo
que afecta grandemente el tiempo de ejecucin de la optimizacin.

Tiempo de optimizacin
Una consulta puede ser optimizada en tiempos diferentes con relacin a tiempo de
ejecucin de la consulta. La optimizacin se puede realizar de manera esttica antes
de ejecutar la consulta o de forma dinmica durante la ejecucin de la consulta. La
optimizacin esttica se hace en tiempo de compilacin de la consulta. As, el costo de
la optimizacin puede ser amortizada sobre mltiples ejecuciones de la misma
consulta.
Durante la optimizacin de consultas dinmica la eleccin de la mejor operacin
siguiente se puede hacer basado en el conocimiento exacto de los resultados de las
operaciones anteriores. se requiere tener estadsticas acerca del tamao de los
resultados intermedios para aplicar esta estrategia.
Un tercer enfoque, conocido como hbrido, utiliza bsicamente un enfoque esttico,
pero se puede aplicar un enfoque dinmico cuando los tamaos de las relaciones
estimados estn alejados de los tamaos actuales.
Estadsticas
El buen funcionamiento de una optimizacin se soporta en las estadsticas de la base
de datos. La optimizacin dinmica de consultas requiere de estadsticas para elegir
las operaciones que deben realizarse primero. La optimizacin esttica es an ms
demandante ya que el tamao de las relaciones intermedias tambin debe ser
estimado basndose en estadsticas. En bases de datos distribuidas las estadsticas
para optimizacin de consultas tpicamente se relacionan a los fragmentos; la
cardinalidad y el tamao de los fragmentos son importantes as como el nmero de
valores diferentes de los atributos. Para minimizar la probabilidad de error, estadsticas
ms detalladas tales como histogramas de valores de atributos se usan pagando un
costo mayor por su manejo.

Nodos de Decisin
Con el uso de la optimizacin esttica, un solo nodo o varios de ellos pueden participar
en la seleccin de la estrategia a ser aplicada para ejecutar la consulta. La mayora de
los sistemas utilizan un enfoque centralizado para la toma de decisiones en el cual un
solo lugar decide la estrategia a ejecutar. Sin embargo, el proceso de decisin puede
ser distribuido entre varios nodos los cuales participan en la elaboracin de la mejor
estrategia. El enfoque centralizado es simple, pero requiere tener conocimiento de la
base de datos distribuida completa. El enfoque distribuido requiere solo de informacin
local. Existen enfoques hbridos en donde un nodo determina una calendarizacin
global de las operaciones de la estrategia y cada nodo optimiza las subconsultas
locales.
Topologa de la Red
El tipo de red puede causar influencias sobre la funcin objetivo a optimizar para elegir
la estrategia de ejecucin. Por ejemplo, en redes de tipo WAN se sabe que en la
funcin de costo el factor debido a las comunicaciones es dominante. Por lo tanto, se
trata de crear una calendarizacin global basada en el costo de comunicacin. A partir
de ah, se generan calendarizaciones locales de acuerdo a una optimizacin de
consultas centralizada. En redes de tipo LAN el costo de comunicacin no es tan
dominante. Sin embargo, se puede tomar ventaja de la comunicacin "broadcast" que
existe comnmente en este tipo de redes para optimizar el procesamiento de las
operaciones junta. Por otra parte, se han desarrollado algoritmos especiales para
topologas especficas, como por ejemplo, la topologa de estrella.
10.3. Optimizacin Global de Consultas
Con una consulta algebraica sobre fragmentos, el objetivo es hallar una estrategia de
ejecucin para la consulta cercana a la ptima. La estrategia de ejecucin para una
consulta distribuida puede ser descrita con los operadores del lgebra relacional y con

primitivas de comunicacin para transferir datos entre nodos. Para encontrar una
buena transformacin se consideran las caractersticas de los fragmentos, como, sus
cardinalidades. Un aspecto importante de la optimizacin de consultas es el
ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la
consulta pueden conducir a un mejoramiento de varios rdenes de magnitud. La salida
de la capa de optimizacin global es una consulta algebraica optimizada con operacin
de comunicacin incluida sobre los fragmentos.

10.4. Optimizacin Local de Consultas


El trabajo de la ltima capa se efecta en todos los nodos con fragmentos involucrados
en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es
optimizada usando el esquema local del nodo. Hasta este momento, se pueden eligen
los algoritmos para realizar las operaciones relacionales. La optimizacin local utiliza
los algoritmos de sistemas centralizados.

CAPITULO. 11 LOCALIZACIN DE DATOS DISTRIBUIDOS


Estructura temtica
11.1. Introduccin
11.2. Reduccin para fragmentacin vertical
11.3. Reduccin para fragmentacin horizontal primaria
11.4. Reduccin para fragmentacin horizontal derivada
11.1. INTRODUCCIN
La fragmentacin de una relacin se define a travs de las reglas de fragmentacin, las
cuales pueden ser expresadas como consultas relacionales. Una relacin global puede
ser reconstruida aplicando las reglas de reconstruccin y derivando un programa en el
lgebra relacional cuyos operandos son los fragmentos.. Una forma simple de localizar
una consulta distribuida es generar una consulta donde cada relacin global es
sustituida por su programa de localizacin.

Objetivo general
Presentar de forma general la tcnicas por cada tipo de fragmentacin que permitan
realizar consultas simples y optimizadas.
11.2. REDUCCIN PARA FRAGMENTACIN VERTICAL
La fragmentacin vertical distribuye una relacin de acuerdo a los atributos de
proyeccin. Dado que el operador de reconstruccin para la fragmentacin vertical es
la junta, el programa de localizacin para una relacin fragmentada verticalmente
consiste de la junta de los fragmentos sobre el atributo comn.

Ejemplo 11.1. Considere la relacin E dividida en dos fragmentos verticales


donde el atributo ENO sirve como atributo comn.
E1 = P ENO,ENOMBRE (E)
E2 = P ENO,TITULO (E)
El programa de localizacin es
E = E 1 > < E2
La reduccin de consultas sobre fragmentos verticales se hace determinando
relaciones intermedias intiles y eliminando los subrboles que las producen. Las
proyecciones sobre fragmentos verticales que no tienen atributos en comn con los
atributos de proyeccin (excepto la llave de la relacin) producen relaciones intiles
aunque probablemente no vacas.
Dada una relacin R definida sobre los atributos A = { A1, A2, ..., An }, la cual se
fragmenta verticalmente como Ri = P

A?

(R), donde A? A, la regla para determinar

relaciones intermedias intiles se puede formular como sigue:


Regla 3: P D,K (R) es intil si el conjunto de atributos de proyeccin D no est en A?.
Ejemplo 11.2. Considere de nuevo la relacin E dividida en fragmentos verticales
como en el Ejemplo . Considere tambin la siguiente consulta en SQL:
SELECT ENAME
FROM E
E1 = P ENO,ENOMBRE (E)
E2 = P ENO,TITULO (E)

La consulta genrica equivalente se presenta en la Figura 11.1a. Conmutando la


proyeccin con la junta, se puede ver que la proyeccin sobre E2 es intil dado que
ENOMBRE no est en E2. Por lo tanto, la proyeccin necesita aplicarse nicamente a
E1, como se presenta en la Figura 11.1b.

Figura 11.1. Reduccin para fragmentacin vertical.


11.3. REDUCCIN PARA FRAGMENTACIN HORIZONTAL PRIMARIA
La fragmentacin horizontal distribuye una relacin basada en predicados de seleccin.
El ejemplo siguiente ser usado a lo largo de esta seccin.
Ejemplo 11.3. La relacin E(ENO, ENOMBRE, TITULO) puede ser dividida en tres
fragmentos horizontales E1, E2 y E3, definidos como sigue:
E1 = s ENO "E3" (E)
E2 = s "E3" < ENO "E6" (E)

E3 = s ENO > "E6" (E)


El programa de localizacin para fragmentacin horizontal es la unin de los
fragmentos. Aqu se tiene que:
E = E1 E2 E13
La relacin G puede ser dividida en dos fragmentos horizontales G1 y G2 definidos
como sigue:
G1 = s ENO "E3" (G)
G2 = s ENO > "E3" (G)
El programa de localizacin para G es la unin de los fragmentos. Aqu se tiene que:
G = G1 G2

El rbol genrico se presenta en la Figura 11.2

Arbol genrico para el ejemplo 11.3


Reduccin con seleccin
Dada una relacin R que ha sido fragmentada horizontalmente como R1, R2, ..., Rw,
donde Rj = s pj( R ), la regla puede ser formulada asi
Regla 1: s pj( Rj ) = f si " x en R: (pi(x) pj(x))
donde pi(x) y pj(x) son predicados de seleccin, x denota a un tuplo, y p( x ) denota que
el predicado p se satisface para x.
Ejemplo 11.4. Considere la siguiente consulta
SELECT *
FROM E
WHERE ENO = "E5"
Aplicando el enfoque directo para localizar E a partir de E1, E2 y E3, se obtiene la
consulta genrica de la Figura 11.2a. Conmutando la seleccin con la operacin de

unin, es fcil detectar que el predicado de seleccin contradice los predicados de E1 y


E3, produciendo relaciones vacas. La consulta reducida es simplemente aplicada a E2
como se muestra en la Figura 11.2b.

Figura 11.2. Reduccin para fragmentacin horizontal con seleccin.


Reduccin con junta
Juntas en relaciones fragmentadas horizontalmente pueden ser simplificadas cuando
las relaciones juntadas estn fragmentadas de acuerdo al atributo de la junta. La
simplificacin consiste en distribuir las juntas sobre las uniones y eliminar juntas
intiles. La distribucin de una junta sobre una unin puede ser establecida como
(R1 R2) > < R3 = (R1> < R3) (R2 > < R3)
donde Ri son fragmentos. Con esta transformacin las uniones pueden ser movidas
hacia arriba en el rbol de consulta de manera que todas las posibles juntas de
fragmentos son exhibidas. Juntas intiles de fragmentos pueden ser determinadas
cuando los predicados de fragmentos juntados son contradictorios. Suponga que los
fragmentos Ri y Rj estn definidos de acuerdo a los predicados pi y pj, respectivamente,
sobre el mismo atributo, la regla de simplificacin puede formularse como sigue:
Regla 2: R1> < R3 = f si " x en Ri, " y en Rj: (pi(x) pj(y))

Ejemplo 11.5 la fragmentacin de la relacin G del Ejemplo junto con la fragmentacin


de E. E1 y G1 estn definidos de acuerdo al mismo predicado. Ms an, el predicado
que define a G2 es la unin de los predicados que definen E2 y E3. Ahora considere la
consulta con junta
SELECT *
FROM E, G
WHERE ENO = G.ENO
La consulta genrica equivalente se presenta en la Figura 11.3a. La consulta reducida
se puede observar en la Figura 11.3b.

Figura 11.3. Reduccin para fragmentacin horizontal con junta.


11.4. REDUCCIN PARA FRAGMENTACIN HORIZONTAL DERIVADA
Si una relacin R es sometida a una fragmentacin horizontal derivada con respecto a
S, los fragmentos de R y S que tienen el mismo valor del atributo para la junta se
localizan en el mismo nodo. As, S puede ser fragmentado de acuerdo al predicado de
seleccin. Dado que los tuplos de R se colocan de acuerdo a los tuplos de S, la
fragmentacin horizontal derivada debe ser usada solo para relaciones uno-a-muchos
de la forma S R, donde un tuplo de S se asocia con n tuplos de R, pero un tuplo de R
se asocia exactamente con uno de S.

Ejemplo 11.6. Dado una relacin uno-a-muchos de E a G, la relacin G[ENO, JNO,


RESPONSABLE, DUR] se puede fragmentar indirectamente de acuerdo a las
siguientes reglas:
G1 = G > < ENO E1
G2 = G > < ENO E2
La relacin E es fragmentada horizontalmente de la siguiente forma:
E1 = s TITULO="Programador" E
E2 = s TITULO "Programador" E
El programa de localizacin para G es
G = G1 G2
Las consultas en fragmentos derivados tambin se pueden reducir. Dado que este tipo
de fragmentacin es til para optimizar consultas con juntas, una transformacin til es
distribuir las juntas sobre las uniones (usadas en los programas de localizacin) y
aplicar la regla 2 presentada antes. Ya que las reglas de fragmentacin indican como
se asocian los tuplos, ciertas juntas producirn relaciones vacas si los predicados de la
fragmentacin son inconsistentes.
Ejemplo 11.7. Considere la siguiente consulta en SQL sobre la fragmentacin definida
en el Ejemplo 11.6:
SELECT *
FROM E, G
WHERE G.ENO = E.ENO AND TITLE = "Ingeniero Mecnico"
La consulta genrica que presenta en la Figura 11.4a. Aplicando primero la seleccin
sobre los fragmentos E1 y E2, el predicado de la seleccin es inconsistente con el de
E1, por lo tanto, E1 puede ser eliminado y la consulta se reduce a la mostrada en la

Figura 11.4b. Ahora se distribuyen las juntas sobre las uniones produciendo el rbol de
la Figura 11.4c El subrbol de la izquierda junta los fragmentos G1 y E2, sin embargo,
sus predicados son inconsistentes (TITULO = "Programador" de G1 es inconsistente
con TITULO "PROGRAMADOR" en E2). As, el subrbol de la izquierda produce una
relacin vaca por lo que puede ser eliminado obteniendo la consulta reducida de la
Figura 11.4d.

Figura 11.4. Reduccin para fragmentacin horizontal derivada.

CAPITULO. 12 OPTIMIZACIN GLOBAL DE CONSULTAS


Estructura temtica
12.1. Introduccin
12.2. Definiciones bsicas
12.3. Modelo de costo
12.4. Optimizacin centralizada de consultas
12.1. Introduccin
La optimizacin global de consultas es la tercera etapa del procesamiento de consultas
distribuidas. El objetivo de esta capa es hallar una estrategia de ejecucin para la
consulta cercana a la ptima. La salida de la capa de optimizacin global es una
calendarizacin de una consulta optimizada en el lgebra relacional la cual indica el
orden en que se ejecutan los operadores e incluye operaciones de comunicacin sobre
los fragmentos.
Objetivo general
El objetivo del optimizado es encontrar la mejor estrategia, no necesariamente ptima,
para ejecutar la consulta. La seleccin de la "mejor" estrategia requiere, por lo general,
predecir los costos de ejecucin de diferentes alternativas para ejecutar la consulta.
12.2. DEFINICIONES BSICAS
Los conceptos involucrados en la optimizacin de consultas, se revisarn brevemente.
En un proceso de optimizacin es necesario optimizar (minimizar o maximizar) una
funcin objetivo, en este caso la funcin de costo. El proceso de optimizacin
selecciona el mejor miembro x de un conjunto que optimiza la funcin de costo. A este
conjunto de posibles soluciones se le conoce como el conjunto solucin. Dada la forma
en que trabajan los algoritmos de optimizacin, al conjunto solucin tambin se le

conoce como el espacio de bsqueda. Los algoritmos, llamados de bsqueda, se


mueven de elemento a elemento en este espacio hasta encontrar una buena solucin.
Existen diversas tcnicas para el desarrollo de algoritmos de bsqueda: bsqueda
vida, programacin dinmica, algoritmos heursticos, mejoramiento iterativo, recocido
simulado, algoritmos genticos, bsqueda en profundidad y a lo ancho.
12.3. MODELO DE COSTO
El costo de una estrategia de ejecucin distribuida se puede expresar con respecto al
costo total (tiempo de ejecucin) o al tiempo de respuesta. El costo total es la suma de
todas sus componentes (I/O, CPU y comunicacin). El tiempo de respuesta es el
tiempo transcurrido desde el inicio de la consulta hasta su terminacin. Ambas
estrategias de optimizacin son diferentes. Mientras que en la funcin de costo total se
trata de reducir el costo de cada componente haciendo que stas sean tan rpidas
como sea posible, en la funcin del tiempo de respuesta se trata de hacer tantas cosas
en forma simultnea (paralela) como sea posible lo que puede conducir a un
incremento en el tiempo total de ejecucin de la consulta.
Costo Total
El costo total es la suma de todos los factores de costo y puede expresarse como
Costo total = costo de I/O + costo de CPU + costo de comunicacin
en donde,
costo de CPU = costo de una instruccin * no. de instrucciones
costo de I/O = costo unitario de una operacin de I/O a disco * no. de accesos
costo de comunicacin = (tiempo de iniciacin + tiempo de transmisin) *
no. de mensajes
cada factor puede tener pesos diferentes dependiendo del ambiente distribuido en el
que se trabaje. Por ejemplo, en las redes de rea amplia (WAN), el costo de

comunicacin domina dado que hay una velocidad de comunicacin relativamente


baja, los canales estn saturados y el trabajo adicional requerido por los protocolos de
comunicacin es considerable. Los costos de iniciacin y transmisin de mensajes en
una WAN son relativamente altos relativos a los tiempos de procesamiento local. Por
otra parte, un rango comn entre el costo de comunicacin y el costo de I/O es 20:1.
As, los algoritmos diseados para trabajar en una WAN, por lo general, ignoran los
costos de CPU y de I/O. En redes de rea local (LAN), por otro lado, el costo de
comunicacin no es tan dominante, as que se consideran los tres factores con pesos
variables.
Tiempo de Respuesta
El tiempo de respuesta es el tiempo transcurrido desde el inicio de la consulta hasta su
terminacin y se puede expresar asi:
Costo total = costo de I/O + costo de CPU + costo de comunicacin
en donde,
costo de CPU = costo de una instruccin * no. de instrucciones secuenciales
costo de I/O = costo unitario de una operacin de I/O a disco *
no. de accesos secuenciales
costo de comunicacin = (tiempo de iniciacin + tiempo de transmisin) *
no. de mensajes secuenciales

12.4. OPTIMIZACIN CENTRALIZADA DE CONSULTAS


Se trabaja sobre el proceso de optimizacin de consultas para ambientes
centralizados. Primero, una consulta distribuida se transforma a varias consultas
locales cada una de las cuales se procesa en forma centralizadas. Segundo, las
tcnicas para optimizacin distribuida son, por lo general, extensiones de tcnicas para
optimizacin centralizada. Finalmente, el problema de optimizacin centralizada es
mucho ms simple que el problema distribuido.
Las tcnicas de optimizacin ms populares se deben a dos sistemas de bases de
datos relacionales: INGRES y System R. Ambos sistemas tienen versiones para
sistemas distribuidos pero sus tcnicas difieren sustancialmente. Por un lado, INGRES
utiliza una tcnica dinmica la cual es ejecutada por un intrprete. Por otra parte,
System R utiliza un algoritmo esttico basado en bsqueda exhaustiva. Los sistemas
ms comerciales utilizan variantes de la bsqueda exhaustiva por su eficiencia y
compatibilidad con la compilacin de consultas.
se revisar brevemente el esquema de optimizacin de INGRES. Posteriormente, se
revisar con mayor detenimiento el esquema de System R.
Algoritmo de INGRES
INGRES usa un algoritmo de optimizacin dinmico que recursivamente divide una
consulta en el clculo relacional en piezas ms pequeas. Combina dos fases de la
descomposicin clculo-lgebra relacional y optimizacin. No requiere informacin
estadstica de la base de datos. Las dos fases generales del algoritmo son:
Descompone cada consulta con mltiples variables en una secuencia de consultas con
una sola variable comn.
Procesa cada consulta mono-variable mediante un procesador de consultas de una
variable el cual elige, de acuerdo a algunas heursticas, un plan de ejecucin inicial.

Posteriormente, ordena las operaciones de la consulta considerando los tamaos de


las relaciones intermedias.
La primera parte se hace en tres pasos como se indica a continuacin:

Reemplaza una consulta q con n variables en una seria de consultas


q1 q2 ... qn
donde qi usa el resultado de qi-1.

La consulta q se descompone en q? q??, donde q? y q?? tienen una variable en


comn la cual es el resultado de q?.
Se reemplaza el valor de cada tuplo con los valores actuales y se simplifica la
consulta

q( V1, V2, ..., Vn) (q?( t1, V2, ..., Vn), t1 R)


Ejemplo. Para ilustrar el paso de descarrilamiento del algoritmo de INGRES considere
la siguiente consulta:
"Encuentre los nombres de los empleados que trabajan en el proyecto CAD/CAM"
Esta consulta se puede expresar en SQL de la siguiente forma:
q1: SELECT E.ENOMBRE
FROM E, G, J
WHERE E.ENO = G.ENO AND G.JNO = J.JNO AND JNAME = "CAD/CAM"
q1 es reemplazada por q11 seguida de q? en donde JVAR es una relacin intermedia.
q11: SELECT J.JNO INTO JVAR
FROM J
WHERE JNAME = "CAD/CAM"
q?: SELECT E.ENOMBRE

FROM E, G, JVAR
WHERE E.ENO = G.ENO AND G.JNO = JVAR.JNO
La aplicacin sucesiva de este paso a q? puede generar
q12: SELECT G.ENO INTO GVAR
FROM G, JVAR
WHERE G.JNO = JVAR.JNO
q13: SELECT E.ENOMBRE
FROM G, GVAR
WHERE E.ENO = GVAR.ENO
As, q1 ha sido reducido a la secuencia de consultas q11 q12 q13. La consulta q11 es
monovariable. las consultas q12 y q13 no son monovariables. Buscar la forma de como
transformar q13. La relacin definida por la variable GVAR es sobre un solo atributo
(ENO). Suponga que contiene nicamente dos tuplos: <E1> y <E2>. La sustitucin de
GVAR genera dos consultas de una sola variable:
q131: SELECT E.ENOMBRE
FROM E
WHERE E.ENO = "E1"
q132: SELECT E.ENOMBRE
FROM E
WHERE E.ENO = "E2"
Algoritmo de System R
System R una aplica una optimizacin de consultas esttica basada en bsqueda
exhaustiva del espacio solucin. La entrada del optimizador es un rbol del lgebra

relacional que resulta de una consulta en SQL. La salida es un plan de ejecucin que
implementa el rbol del lgebra relacional "ptimo".
El optimizador asigna un costo a cada rbol candidato y obtiene aquel con costo
menor. Los rboles candidatos se obtienen permutando el orden de las juntas de las n
relaciones de una consulta usando las reglas de Conmutatividad y Asociatividad. Para
limitar el costo de optimizacin, el nmero de alternativas se reduce utilizando
programacin dinmica. El conjunto de estrategias alternativas se construye de forma
dinmica, de manera que, cuando dos juntas son equivalentes por Conmutatividad, se
queda solo con la de costo ms bajo. Ms an, cada vez que aparecen productos
Cartesianos se trata de eliminar la estrategia correspondiente.
El costo de una estrategia candidato es una combinacin pesada de costos de I/O y
CPU. La estimacin de tales costos (en tiempo de compilacin) se basa en un modelo
de costo que proporciona una frmula de costo para cada operacin de bajo nivel. Para
la mayora de las operaciones, esas frmulas de costo se basan en las cardinalidades
de los operandos. La informacin de las cardinalidades se obtiene del mismo System
R. La cardinalidad de las relaciones intermedias se estima de acuerdo a los factores de
selectividad de las operaciones.
El algoritmo de optimizacin consiste de dos grandes pasos:
1. Las consultas simples se ejecutan de acuerdo al mejor camino de acceso (basada
en un predicado de seleccin).
2. Para cada relacin R, se estima el mejor ordenamiento de juntas, en donde R tiene
acceso primero usando el mejor mtodo de acceso a una sola relacin. As, se
determinan todos los posibles ordenamientos de juntas, se determina el costo de cada
ordenamiento y se elige aquel con el costo mnimo.

Para la junta de dos relaciones, la relacin cuyos tuplos se leen primero se llama
externa, mientras que la otra, cuyos tuplos se encuentran de acuerdo a los valores
obtenidos de la relacin externa, se llama relacin interna. Una decisin importante es
determinar el camino de acceso menos costoso a la relacin interna.
Al considerar las juntas, hay dos algoritmos disponibles. El primero, llamado de ciclos
anidados, compone el producto de las dos relaciones y se puede observar mediante el
siguiente pseudocdigo.
Para cada tuplo de la relacin externa (con cardinalidad n1)
Para cada tuplo de la relacin interna (con cardinalidad n2)
junta los dos tuplos si el predicado de la junta es verdadero
end
end
este mtodo tiene complejidad n1*n2.
El segundo mtodo, llamado junta-mezcla, consiste en mezclar dos relaciones
ordenadas sobre el atributo de la junta. Los ndices del atributo de la junta se pueden
usar como caminos de acceso. Si el criterio de junta es igualdad, el costo de juntar dos
relaciones de n1 y n2 pginas, respectivamente, es proporcional a n1 + n2.