102070

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

BASE DE DATOS DISTRIBUIDAS

JAIME RUBIANO LLORENTE

1. INTRODUCCIÓN ................................................................................................ 5 2. JUSTIFICACIÓN............................................................................................... 10 3. INTENCIONALIDADES FORMATIVAS............................................................ 12 UNIDAD 1 FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDA ................. 14 CAPITULO 1 CONCEPTOS BÁSICOS. ............................................................... 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 INTRODUCCIÓN .................................................................................................... 26 2.2 ESTADO DEL ARTE.............................................................................................. 26 2.3 APLICACIONES ..................................................................................................... 28 CAPITULO 3 SISTEMAS DE BASES DE DATOS ............................................... 28 3.1 INTRODUCCIÓN .................................................................................................... 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 diseño ........................................................................................ 34 3.4.3 Objetivos del Diseño de la Distribución de los Datos. ................................ 35 3.4.4 Enfoques al problema de diseño 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 INTRODUCCIÓN .................................................................................................... 37 4.2 independencia lógica de datos ......................................................................... 37 4.3 independencia física de los datos.................................................................... 38 4.4 transparencia al nivel de red ............................................................................. 38 4.5 transparencia sobre replicacion ....................................................................... 38 4.6 transparencia a nivel de fragmentación de datos........................................ 39

CAPITULO. 5 ARQUITECTURA DE LAS BDD.................................................... 45 5.1 INTRODUCCIÓN .................................................................................................... 45 5.3 arquitectura ANSI –SPARC ................................................................................ 46 CAPITULO. 6 ALTERNATIVAS PARA LA IMPLEMENTACION DE SMBDD .... 50 6.1 INTRODUCCIÓN .................................................................................................... 50 6.2. Distribución ........................................................................................................... 50 6.3 Heterogeneidad ..................................................................................................... 50 6.4 Autonomía............................................................................................................... 53 UNIDAD 3 DISEÑO DE BASE DE DATOS DISTRIBUIDAS ............................... 55 CAPITULO 7 DISEÑO DE LA DISTRIBUCION DE LOS DATOS ....................... 55 7.1 INTRODUCCIÓN .................................................................................................... 55 7.2. Procesamiento local............................................................................................ 55 7.3. Distribución de la carga de trabajo................................................................. 56 7.4 . Costo de almacenamiento y Disponibilidad .......................................... 56 CAPITULO 8 ENFOQUES AL PROBLEMA DE DISEÑO DE BDD ..................... 57 8.1. INTRODUCCIÓN ................................................................................................... 57 8.2. Enfoque de arriba hacia abajo (top down)................................................ 57 8.3 Diseño de abajo hacia arriba (bottom-up)...................................................... 58 CAPITULO. 9 FRAGMENTACION ...................................................................... 59 9.1. Introducción .......................................................................................................... 59 9.2. Fragmentación Horizontal ................................................................................. 60 9.3. Fragmentación Vertical ...................................................................................... 62 9.4 Fragmentación Híbrida....................................................................................... 64 9.5 Asignamiento de Fragmentos ...................................................................... 66 UNIDAD 4 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS ..................... 69 CAPITULO 10 ARQUITECTURA DEL PROCESAMIENTO DE CONSULTAS.... 69 10.1. Introducción ........................................................................................................ 69 10.2. Descomposición de consultas....................................................................... 70 10.3. Optimización Global de Consultas ............................................................... 81

............................................... 89 CAPITULO............ Definiciones básicas. 93 12............................................. Introducción ............ Reducción para fragmentación vertical ..........4 ... 92 12.... 82 CAPITULO.........4 ........... 12 OPTIMIZACIÓN GLOBAL DE CONSULTAS.............3..................3..................... 83 11.............................2................................ Optimización centralizada de consultas ...... 11 LOCALIZACIÓN DE DATOS DISTRIBUIDOS ....................... Introducción .................. 83 11.................................................1............... 83 11.... 85 11......................4 ...........10......... Optimización Local de Consultas ................. 95 ............................... 92 12.... 92 12...... reducción para fragmentación horizontal primaria............................................................................................................1...2....... Reducción para fragmentación horizontal derivada..................................................... Modelo de costo.......................................................

1. INTRODUCCIÓN

Este curso ofrece a los alumnos los conceptos y aspectos fundamentales de los sistemas de bases de datos distribuidos y presentar los problemas más 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 créditos académicos los cuales comprenden el estudio independiente y el acompañamiento tutorial, acompañado de talleres que fortalecen el proceso del aprendizaje: • Enseñar a los estudiante los conceptos y principios del manejo y diseño de bases de datos distribuidos. • Fomentar en el estudiante la capacidad de apropiar conocimiento y relacionarlo para su aplicación 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 optimización de consultas distribuidas. • Fomentar en el estudiante el espíritu 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 didácticas a saber: Unidad 1. Fundamentos de bases de datos distribuidas

Conceptos Básicos 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 implementación de smbd

Unidad 3. Diseño de base de datos distribuidas Diseño de la Distribución de los Datos. Enfoques al problema de diseño de bases de datos distribuidas Fragmentación Unidad 4

Procesamiento de consultas distribuidas Arquitectura del procesamiento de consultas Localización de datos distribuidos Optimización global de consultas

El curso es de carácter teórico – práctico y la metodología a seguir será bajo la estrategia de educación abierta y a distancia. Por este motivo, es importante planificar el proceso de: Estudio Independiente: se desarrolla a través del trabajo personal, del trabajo en pequeños grupos colaborativos de aprendizaje y el trabajo de grupo de curso. Acompañamiento tutorial: corresponde al tiempo de acompañamiento que el tutor realiza al estudiante para potenciar el aprendizaje por medio de talleres guiados y asesorías que fortalecen la formación. El sistema de evaluación del curso es a través de la evaluación formativa, que constituye distintas formas de comprobar el avance en el auto-aprendizaje del curso. En este sentido, se realizarán tres tipos de evaluación alternativas y complementarias, estas son: Autoevaluación: Evaluación que realiza el estudiante para valorar su propio proceso de aprendizaje. Coevaluación: se realiza a través de los grupos colaborativos, y pretende la socialización de los resultados del trabajo personal. Heteroevaluación: Es la valoración que realiza la institución de la apropiación de los conceptos por parte del estudiante.

§  §"  ¥  ¨ (E9)' DC@ ¥%BA©§(@$9"(8¡5(#6%5§4 ¡3 ¡(211 %0§)(% ¥(' #¨&%#©!¨©§ ¥¦¤¢   4  4 7  § " 4¨ $   $ ¥ '   ¥ $ " ¨ ¥      £ ¡  4" TD`(4 ¡¡H E$%)Y§(@D D12#&§(G(4 WT#R(V9F¨)¡GI@D U4T)TFQR1P D@I#(DH%G)) %' F6%  ¥  X ¨ ¥  ¨  § ¡  4Q "  ¨ ¥"  2 S   ¥  " 7   §    ¥ ¥¨ $ g  h9"1IBf9©I (D` )§d f@D@I1F")Y@§d(Sc%E' #)#ba§% ¡4   ¨ ¥ 2 ¥ ¡   e   ¨  7   2 § 4 ¥¨ Q V 4

Sitios Web: propician el acercamiento al conocimiento. Estudiantes-estudiantes: en los procesos de socialización que se realizan en el grupo que . audioconferencias. Para el desarrollo del curso es importante el papel que juega los recursos tecnológicos como medio activo e interactivo.- Tutor-estudiante: a través del acompañamiento individual Estudiante-estudiante: mediante la participación activa en los grupos colaborativos de aprendizaje. por tal razón es imprescindible el recurso a diversas fuentes documentales y el acceso a . Los materiales impresos en papel. se han convertido en el principal soporte para favorecer los procesos de aprendizaje autodirigido. Sistemas de interactividades sincrónicas: permite la comunicación a través de encuentros presénciales directos o de encuentros mediados (Salas de conversación. Tutor-estudiantes: mediante el acompañamiento en grupo del curso en procesos de retroalimentación. exige conocimientos y planteamientos preliminares. la interacción y la producción de nuevas dinámicas educativas. mediante la utilización de correo electrónico. foros. videoconferencia. tutorías telefónicas. buscando la interlocución durante todo el proceso de diálogo docente-estudiante. grupos de discusión.fomentan la participación y las competencias básicas de comunicación. El acceso a documentos adquiere una dimensión de suma importancia en tanto la información sobre el tema. Estudiantes-tutor: es el acompañamiento a los pequeños grupos colaborativos del proceso enseñanza aprendizaje. foros) Sistemas de interactividades diferidas: permite la comunicación en forma diferida favoreciendo la disposición del tiempo del estudiante para su proceso de enseñanza aprendizaje.

€h@§Ey¨©(BD 4 " 2$  §  § ¨ § 7 4" § " ¡ %4©))2(h(7W%49`%4 H§%4 ¡¤"1I@IW9I(170@§II9@DUD4 F9©DT§()D41T%©(7w%4 HD( ¥S )D  ¨ V 4 x" 4  e ¨ " ¥" ¨  4  " V § 4¨ 2 § ¡  2 ¡ 7  § v  ¥" ¥ ¨  e ¥ $ ¨ ¥  ¨ ¥  ¨    ¡ "  " ¥ 2 S    §  2 S    ¥  EHs@$ FD4 F"©!¥0E§uI 1ED©§ Dsr9©D D12#©§(I¡%ID4t¡r9 %)rEs(r%r% D(Bq pi  ¡ sitios Web especializados. . hemerotecas digitales e impresas. diversos medios como son: bibliotecas electrónicas.

el diseño y administración de bases de datos distribuidas constituye un gran desafío que incorpora problemas no encontrados en bases de datos centralizadas. aprendiendo a aprender para luego el solo generar sus nuevas necesidades de aprendizaje y por consiguiente ser complemento de su formación. Entre las más importantes se encuentra la transparencia en el acceso y localización de información. Sin embargo.2. social y en el plano regional nacional e internacional. político. . cultural. El estudiante se apropia del conocimiento sobre la arquitectura. tecnológico. El estudiante encontrara una forma de aprendizaje paso a paso que le permite apropiarse del conocimiento básico y lógico. diseño y administración de las bases de datos distribuidas para producir soluciones computacionales y aplicarlas a diferentes áreas del conocimiento. monitoreo y aplicación de procesos de pensamiento. expresar mensajes y de desarrollar procesos argumentativos. COMUNICATIVA: Capacidad de comprender. Las competencias que promueve el curso y que son necesarias son: COGNITIVA: Capacidad de apropiarse de un conjunto de conocimientos a través del desarrollo. y la capacidad para aplicarlo en procesos de producción. CONTEXTUAL: Capacidad de ubicar el conocimiento en el contexto científico. apoyados en las relaciones interpersonales. . JUSTIFICACIÓN Las bases de datos distribuidas ofrecen diversas ventajas a los diseñadores y usuarios de bases de datos.

desarrolle los diferentes momentos de evaluación propuestos en el curso como son la autoevaluación. consulta en biblioteca. consulta a bases de datos documentales. bibliografía recomendada. Procesos de evaluación: Una vez se haya realizado el proceso de retroalimentación. Para el logro de éstas competencias. La dignidad humana. . como ser social y como profesional. Internet. este proceso se puede planificar de la siguiente manera: Auto estudio: Estudio individual del material sugerido y consulta de otras fuentes (documentales. Como ingeniero de Sistemas. estudie nuevamente el tema. la convivencia. la solidaridad. Consultas al tutor: Consulta al tutor de las inquietudes surgidas en el punto anterior.VALORATIVA: Capacidad de apropiarse de valores como el respeto a la vida. coevaluación y heteroevaluación. teniendo en cuenta las sugerencias o respuestas dadas por el tutor. De esta manera se pretende alcanzar los objetivos propuestos del curso teniendo en cuenta la formación de la persona. Retroalimentación: Una vez el tutor haya resuelto las inquietudes. la tolerancia y la libertad que orientan las acciones del individuo como persona. entre otros) Trabajo en grupo: Creación de grupos de estudio o discusión con el propósito de preparar consultas estructuradas al docente-tutor. 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.

2 OBJETIVOS • • • Revisar los conceptos básicos de las bases de datos distribuidos y las características más importantes Conocer la arquitectura de un sistema de manejo de bases de datos distribuidas.3. . la investigación formativa y la creatividad. • 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 de datos. aprehensión de los conceptos propios de la computación distribuida. que lo identifiquen en el entorno regional y nacional como Ingeniero diseñador de bases 3. • Motivar los estudiantes en proceso de comprensión.1 PROPÓSITOS • Fundamentar a lo estudiantes en los conocimientos básicos de las características y diseño de bases de datos distribuidas. Identificar el procesamiento de consultas y los factores que intervienen en la optimización de consultas distribuidas. • Aplicar el esquema de manejo de transacciones distribuidas y los problemas de control de concurrencia y confiabilidad. INTENCIONALIDADES FORMATIVAS 3.

3. Manejar consultas a sitios distribuidos y entenderá los mecanismos de control de concurrencia y confiabilidad en bases de datos distribuidas. Estará en capacidad el diseñar y hacer la administración de bases de datos distribuidas Tendrá la capacidad de proponer soluciones lógicas a la solución de problemáticas computacionales de manejo de datos en bases de datos distribuidas El estudiante podrá evaluar de manera lógica procesos de manejo de información en redes de computadores. el estudiante estará en capacidad de: Aplicar de manera eficiente los esquemas de fragmentación y localización de información. .3 METAS Al finalizar el curso Bases de Datos Distribuida .4 COMPETENCIAS Tendrá manejo de consultas a sitios distribuidos y entenderá los mecanismos de control de concurrencia y confiabilidad en bases de datos distribuidas. Diseñar y hacer la administración de bases de datos distribuidas Proponer soluciones lógicas a la solución de problemáticas computacionales de manejo de datos en bases de datos distribuidas 3.

con la ayuda de la tecnología de redes de computadoras disponible. entre otras cosas. tener accesos rápidos a la información.5. .1. más bien. Desventajas 1. Estructura temática 1. ¿Que es una base de datos Distribuida? 1. Objetivo general Introducir los conceptos y aspectos fundamentales de los sistemas de bases de datos distribuidos y presentar los problemas más importantes para su explotación y uso y las soluciones a los mismos. los sistemas de bases de datos que no necesariamente son homogéneos. INTRODUCCIÓN los sistemas de bases de datos distribuidas buscan el manejo eficiente e integrado de la información sobre un sistema de computación distribuida. ¿Qué es Computación Distribuida? 1.2.UNIDAD 1 FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDA CAPITULO 1 CONCEPTOS BÁSICOS.4. La distribución de la información permite.1.3. Introducción 1. Ventajas 1. tener copias de la información para accesos más rápidos y para tener respaldo de los procesos. la información 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. Este proceso de integración no implica la centralización de la información. pueden a los usuarios dar una visión generalizada de la información disponible.

Se podría corresponder con una máquina usuario que proporciona capacidad de interfaz al usuario y procesamiento local. en un sistema de gestión de bases de datos es normal dividir los diferentes módulos software en tres niveles: • El software de servidor que gestiona los datos locales en un sitio.2. Es una máquina que puede proporcionar a las máquinas cliente servicios. el cómputo 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. impresoras. • Servidor. servidores Web y otros equipos están interconectados a través de una red. servidores de bases de datos. ARQUITECTURA CLIENTE-SERVIDOR La arquitectura cliente-servidor esta diseñada para manejar los nuevos entornos de cómputo en los que un gran número de PC. Aún no se ha establecido de forma exacta cómo dividir la funcionalidad del SGBD entre el cliente y el servidor aunque existen varios enfoques. estaciones de trabajos. ¿QUÉ ES COMPUTACION DISTRIBUIDA? La computación distribuida es sistema de manejo de computadores en los cuales un conjunto de elementos de procesamiento independiente (no necesariamente homogéneos) se interconectan por una red de comunicaciones y cooperan entre ellos para realizar sus tareas asignadas. En cuanto al software. servidores de ficheros. como poder imprimir tener acceso a ficheros o acceso a la base de datos.1. . En un sistema cliente-servidor tenemos dos partes fundamentales: • Cliente. al igual que el software del SGBD centralizado.

Un sistema de base de datos distribuidas se compone de un conjunto de sitios. Funciones. En computación distribuida los elementos que se pueden distribuir son: • Control.• El software del cliente que soporta casi todas las tareas de distribución y maneja las interfaces de usuario. conectados entre sí. en el cual : . para realizar una tarea. • • • Datos. Procesamiento lógico. • El software de comunicaciones (algunas veces junto con el sistema operativo Distribuido) proporciona las primitivas de comunicación que utiliza el cliente para transmitir instrucciones y datos entre los sitios necesarios. Las actividades relacionadas con el manejo o administración del sistema. Las tareas específicas involucradas en una actividad de procesamiento de información. y las aplicaciones que se ejecutan accesan datos en distintos sitios. Las actividades que cada elemento del sistema realiza. La información que maneja el sistema. Existen componentes a distribuir. La información que constituye la base de datos esta almacenada en diferentes sitios en la red. 1. una base de datos construida sobre una red computadores y no por el contrario en una computadora sola.3. pero se encuentra físicamente distribuido en varios computadores de la red. mediante algún tipo de red de comunicaciones. QUE ES UNA BASE DE DATOS DISTRIBUIDA Una Base de Datos Distribuida es. Una Base de Datos Distribuida entonces es una colección de datos que pertenecen lógicamente a un sólo sistema.

. Así pues. Los datos que se encuentran distribuidos en varios sitios y que están interconectados por una red de comunicaciones. En otras palabras. 2. no externos o a nivel del usuario. distributed database management system ). es la unión lógica de esas bases de datos. sus propios DBMS y programas para la administración de transacciones y su propio administrador local de comunicación de datos ( administrador DC ). el sistema de bases de datos distribuidas puede considerarse como una especie de sociedad entre los DBMS individuales locales de todos los sitios. una extensión del DBMS local ) realiza las funciones de sociedad necesarias. Todos los problemas de los sistemas distribuidos son (o deberían ser ) internos o a nivel de realización. cada sitio puede tener un sistema de base de datos. un sistema distribuido deberá ser idéntico a un sistema no distribuido. Un nuevo componente de software en cada sitio ( en el aspecto lógico. los usuarios de un sistema distribuido se comportan en su manejo exactamente como si el sistema no estuviera distribuido. los sitios han sido diseñados 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. cuyas partes componentes se almacenan físicamente en varias bases de datos "reales" distintas ubicadas en diferentes sitios. la llamada "base de datos distribuida" es en realidad una especie de objeto virtual. • Cada sitio tiene capacidad de procesamiento autónomo de transacciones y puede hacer procesos locales.1. Entonces. cada sitio tiene sus propias bases de datos "reales" locales. y es la combinación de este nuevo componente y el DBMS ya existente lo que constituye el llamado "sistema de administración de bases de datos distribuidas" (DDBMS. Desde el punto de vista del usuario. sus propios usuarios locales.

Independencia con respecto a la localización. Independencia de réplica. 6. 5. 10. Independencia con respecto al equipo. . Independencia con respecto al DBMS. Autonomía local. 9. 12. Manejo distribuido de transacciones. la cual requiere accesos a datos en diversos sitios. 3. Procesamiento distribuido de consultas. 7. No dependencia de un sitio central. 11. Independencia con respecto a la red. Configuración De Conectividad De Base De Datos Distribuidas los principios fundamentales de un sistema de datos distribuido son: 1. Operación continua. 8. 2. Independencia con respecto a la fragmentación. Independencia con respecto al sistema operativo. 4.• Cada sitio realiza la ejecución de al menos una transacción global.

ningún sitio A deberá depender de algún otro sitio B para su buen funcionamiento (pues de otra manera el sitio A podría ser incapaz de trabajar. el sistema sería vulnerable . sí son útiles como fundamento para entender la tecnología distribuida y como marco de referencia para caracterizar la funcionalidad de sistemas distribuidos específicos. Sin embargo. . seria lo ideal pero si no se logra la autonomía local completa. . aunque no tenga en sí problema alguno. La autonomía local significa que todas las operaciones en un sitio determinado se controlan en ese sitio. ni son por fuerza exhaustivas. aunque sean accesibles desde algún sitio distante. Todo el manejo de la seguridad la integridad y los datos se da con control de la instalación local. en segundo lugar. No dependencia de un sitio central. ni tienen todas la misma importancia cada usuario le dará diferentes grados de importancia a diferentes reglas en diferentes ambientes ). Los sitios de un sistema distribuido deben ser autónomos . La autonomía local significa que existe un propietario y un administrador local de los datos. estos sitios podrían generar un cuello de botella . Por ello vale la pena expresarlo como un objetivo separado. La no dependencia de un sitio central. con responsabilidad local : todos los datos pertenecen a una base de datos local. todo el sistema dejaría de funcionar. si cae el sitio B. 2. 1. si el sitio central sufriera un desperfecto. Autonomía local. La dependencia de un sitio central sería indeseable al menos por las siguientes razones : en primer lugar.Estas doce reglas no son todas independientes entre sí.

Independencia con respecto a la localización. de manera que la mayor parte de las operaciones sean sólo locales y se reduzca al tráfico en la red. idealmente nunca debería haber necesidad de apagar o dejar de funcionar Es decir. La reconstrucción de la relación originada a partir de los . lo mismo que en uno no distribuido. el sistema nunca debería necesitar apagarse para que se pueda realizar alguna función. respectivamente. sino que trabajen estuvieran almacenados en su propio sitio local. Independencia con respecto a la fragmentación. Esta probabilidad de migración permite modificar la distribución de los datos dentro de la red en respuesta a cambios en los requerimientos de desempeño. La fragmentación es deseable por razones de desempeño: los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia. 4. como añadirse un nuevo sitio o instalar una versión mejorada del DBMS en un sitio ya existente. 3. Un sistema tiene fragmentación de datos si es posible dividir una relación en partes o "fragmentos" para propósitos de almacenamiento físico. Operación continua. La independencia con respecto a la localización es deseable porque simplifica los programas de los usuarios y sus actividades en la terminal. La independencia con respecto a la localización (también conocida como transparencia de localización). Esto hace posible la migración de datos de un sitio a otro sin anular la validez de ninguno de esos programas o actividades. horizontal y vertical. no debe ser necesario que los usuarios sepan dónde están como si todos los datos almacenados físicamente los datos. correspondientes a las operaciones relacionales de restricción y proyección.3. En un sistema distribuido. Existen en esencia dos clases de fragmentación. un fragmento puede ser cualquier subrelación que pueda derivarse de la relación original mediante operaciones de restricción y proyección.

. en segundo lugar. Independencia de réplica. 7. La desventaja principal de las réplicas es cuando se pone al día un cierto objeto copiado. la unión en casos de fragmentación horizontal ). es decir. en muchos sitios distintos. La réplica es deseable al menos por dos razones : en primer lugar. deben ponerse al dia todas las réplicas de ese objeto.fragmentos se hace mediante operaciones de reunión y unión apropiadas ( reunión en el caso de fragmentación vertical. La independencia con respecto a la fragmentación ( al igual que la independencia con respecto a la independencia con respecto a la localización) 6. puede producir un mejor desempeño (las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos) . Procesamiento distribuido de consultas. los usuarios deberán poder comportarse como si sólo existiera una copia de los datos. un sistema que maneja la réplica de los datos deberá ofrecer también una independencia de réplica (conocida también como transparencia de réplica). un sistema que maneja la fragmentación de los datos deberá tener también una independencia con respecto a la fragmentación (llamada también transparencia de fragmentación). también puede significar una mejor disponibilidad (un objeto estará disponible para su procesamiento en tanto esté disponible por lo menos una copia. La réplica debe ser "transparente para el usuario". Un sistema maneja réplica de datos si una relación dada se puede representar en el nivel físico mediante varias copias réplicas. La independencia de réplica es buena porque simplifica los programas de los usuarios y los trabajos en la terminal. Este manejo de datos en las consultas permite las consultas eficiente desde diferentes usuarios con las características que determine el sistema. al menos para propósitos de recuperación).

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

1. . VENTAJAS Las ventajas de BDD son: • Favorecer la naturaleza distribuidora de muchas aplicaciones. sino también poder ejecutarlo en diferentes sistemas operativos y lograr que una versión UNIX y una PC/DOS participen todas en el mismo sistema distribuido. con equipo distinto y diferentes sistemas operativos. Si el sistema ha de poder manejar múltiples sitios diferentes. no solamente a nivel local si no incluso en diferentes lugares. • Se consigue una compartición de los datos. Es necesario y conveniente no sólo de poder ejecutar el mismo DBMS en diferentes equipos. 12. Independencia con respecto al sistema operativo.10.4. 11. 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 . • Hay un acercamiento bastante notable a las estructuras organizacionales de las empresas. . no necesitan ser por fuerza copias del mismo sistema. sin perder el control local. Independencia con respecto a la red. resulta obvia la conveniencia de poder manejar también varias redes de comunicación distintas.

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 diseño e implementación del sistema. 4. Los procesos de expansión se hacen más sencillos en sistema distribuido. Para garantizar las ventajas anteriormente descritas. 2. las ventajas se pueden transformar en desventajas.5. la autonomía de estos sistemas es grande. Un paralelismo entre las consultas ejecutando varias en sitios diferentes. se puede conseguir lo siguiente en estos sistemas: 1. descomposición consultas en subconsultas que puedan ejecutarse en paralelo. Además si la replicación de datos no se hace de forma adecuada. cuando se quiere añadir un sitio en nuestro sistema distribuido. el resto de operaciones que se ejecutan en los demás no se verán afectados.• El rendimiento Cuando se distribuye una gran base de datos por múltiples sitios. 1. 6. Reducir el número de transacciones ejecutándose por sitio. Aumento de la fiabilidad y la disponibilidad ya comentadas en el objetivo 5. A parte de esta distribución. es necesario que el software del DDBMS proporcione las siguientes funciones adicionales a las que un sistema centralizado ya tiene de por si: . • Excesivos costos en el intento de conseguir la transparencia mencionada anteriormente. • No se puede garantizar al 100 % el rendimiento y la fiabilidad. • Falta de estándares y de experiencia. las consultas locales y las transacciones tienen mejor rendimiento porque las bases de datos locales son más pequeñas. 3. una vez más en estos modelos avanzados de BD.

• Capacidad para seguir la pista a la distribución y replicación de los datos en el catálogo del DDBMS • Capacidad para acceder a sitios remotos. gestión apropiada de seguridad de datos y los privilegios de autorización. . • Capacidad de idear estrategias de ejecución para consultas y transacciones que tiene acceso a datos de más de un sitio. • Capacidad de recuperarse de caídas de sitios o fallos de la red. • Gestión del directorio o catálogo distribuido de la BDD. • Seguridad. • Capacidad de decidir a qué copia de un elemento de datos replicado acceder y de mantener la consistencia de las copias.

1 INTRODUCCIÓN Se muestran las diferentes aplicaciones de las BDD y Los ambientes en los que se encuentra con mayor frecuencia así mismo las características de las bases de datos distribuidas en la actualidad con algunas de sus restricciones mas frecuentes. mas adelante se tratara este tema.2 ESTADO DEL ARTE Cuando los beneficios del uso de BDD son claramente demostrables en las aplicaciones. La distribución de . Manejo transparente de datos distribuidos.3 Aplicaciones 2. fragmentados y replicados. así como el estado del arte de estas aplicaciones en donde se pueden determinar algunas necesidades de estos sistemas.2. 2. A continuación se discute el estado actual de las bases de datos comerciales respecto de cuatro logros potenciales asequibles en BDD. Comercialmente aún no se soporta la replicación de información. en la actualidad muchos de los desarrollos se encuentran únicamente en sistemas complejos y con poca información de su manejo. Objetivo general Mostrar al estudiante las diferentes aplicaciones de las BDD y su funcionamiento.CAPITULO 2 APLICACIONES Estructura temática 2.1 introducción 2. Estado del arte de las BDD) 2. La fragmentación utilizada es únicamente de tipo horizontal.

Sin embargo. es posible tener transacciones distribuidas pero éstas deben ser implementadas en las aplicaciones mediante primitivas dadas. Los sistemas comerciales ofrecen únicamente aproximaciones a este requisito. Algunos sistemas como Ingres. El manejo de réplicas es complicado dado que las actualizaciones a este tipo de datos involucran a todos los sitios teniendo copias del dato. Otro punto en donde se puede incrementar la eficiencia es mediante la explotación del paralelismo entre operaciones. La seguridad en las BDD en la actualidad presentas fallas de acceso. Respecto del soporte para replicación de información o no se ofrece o se hace a través de la regla une lee todos escriben. NonStop SQL y Oracle ofrecen el soporte de transacciones distribuidas. éstas se pueden procesar por sitios diferentes. Mejoramiento de la eficiencia. Existen varias partes en donde ésto se puede lograr. por ejemplo. Una mayor eficiencia es una de las grandes promesas de los SMBDD. En primer lugar. la explotación del paralelismo requiere que se tenga tanta información requerida por cada aplicación en el sitio donde la aplicación se utiliza. . lo cual conduciría a una replicación completa.información no se realiza aún con la transparencia requerida. Sin embargo. esto es. el procesamiento de una sola consulta puede involucrar varios sitios y así procesarse de manera más rápida. En Sybase. La mayoría de los sistemas comerciales utilizan el modelo múltiples clientes-un solo servidor. Por ejemplo. el usuario debe indicar la localización de un objeto y el acceso a los datos es mediante sesiones remotas a bases de datos locales. para lograrlo es necesario tener un buen soporte para fragmentación y replicación de información. la ubicación de los datos a lugares próximos a donde se usan puede mejorar la eficiencia en el acceso a la información. estas pueden ser violadas por sistemas desarrollados con altas técnicas de programación. tener toda la información en cada sitio de la red. Especialmente en el caso de varias consultas independientes. Mejoramiento de la confiabilidad y disponibilidad de la información mediante transacciones distribuidas.

particularmente. Tener sistemas escalables de manera fácil y económica se ha logrado por el desarrollo de la tecnología de microprocesadores y estaciones de trabajo. CAPITULO 3 SISTEMAS DE BASES DE DATOS . La industria de la manufactura. En donde el volumen de información es grande y las características de ubicación geográfica hacen necesario esta implementación. Sin embargo.3 APLICACIONES La aplicación de BDD para el manejo de información por las características de software y hardware requerido para su implementación solo es posible verse funcionando en grandes empresas o emporios comerciales tales como: Organismos gubernamentales y/o de servicio público. Servicios bancarios y financieros. la comunicación de la información tiene un costo el cual no se ha estudiado con suficiente profundidad. Aplicaciones de control y comando militar. aquella con plantas múltiples. 2. Supermercados de cadena Líneas de transporte aéreo. respecto de la escalabilidad. Servicios de seguridad Cadenas hoteleras.Mejor escalabilidad de las BD.

4. 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 actúa 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. enfoques frente al problema del diseño. SBDD y SMBDD sus diferencias y sus características generales.4 Sistema de Manejo de Bases de Datos Distribuidos (SMBDD) 3. así como los objetivos del diseño de la distribución y los .4. Base de Datos Distribuida (BDD) 3. así como los objetivos del diseño de la distribución los enfoques y el problema del diseño.3 Sistema de Bases de Datos Distribuida (SBDD) 3.3 Objetivos del Diseño de la Distribución de los Datos.1 Aspectos importantes de los SMBD distribuidos 3.1 INTRODUCCIÓN En este capitulo se hace una descripción de los sistemas de multiprocesamiento y como pueden administrar bases de datos usualmente a través de un solo sistema de manejo de base de datos.Estructura temática 3.2.2 El problema de diseño 3.1 introducción 3. 3.4.4 Enfoques al problema de diseño de bases de datos distribuidas 3. Objetivo general Determinar los conceptos de BDD.4.

El término transparente significa que la aplicación trabajaría.3 SISTEMA DE BASES DE DATOS DISTRIBUIDA(SBDD) Un sistema de bases de datos distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones.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 distribución sea transparente a los usuarios.3. . de tal forma que. como si un solo SMBD ejecutado en una sola máquina. desde un punto de vista lógico. 3.2 BASE DE DATOS DISTRIBUIDA (BDD) Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones 3. administrara esos datos. 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.

entonces. ellos están interconectados por una red de tipo WAN.Nodo w DBMw BDw Nodo x Programa de consulta o transacción Nodo y Programa de consulta o transacción Nodo z Programa de consulta o transacción DDB Interfaz de acción DTMx DBMx BDx DTMy DBMy BDy DTMz Interfaz de solicitud DDBMS El medio ambiente típico 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. si los sitios están localizados en diferentes edificios o departamentos de una misma organización pero geográficamente en la misma ubicación. Si los diferentes sitios pueden estar geográficamente dispersos. un sistema de manejo de bases de datos y facilidades de comunicaciones. están conectados por una red local (LAN) . entonces. Por otro lado.

es decir. Primero. como asignar cada fragmento entre los diferentes sitios de la red. como fragmentar la información.Cali Bogota Red de comunicación Neiva Medellín 3. Finalmente.4. Diseño de la base de datos distribuida. se . Entre los más importantes se encuentran los siguientes: 1. se deben abordar dos problemas relacionados. en este caso. cuando se busca eficiencia en el acceso a la información. una parte importante en el diseño de una BDD se refiere al manejo del directorio. En el diseño de la BDD también es importante considerar si la información está replicada. como mantener la consistencia de la información. Segundo. Si existen únicamente usuarios globales.1 Aspectos importantes de los SMBD distribuidos Existen varios factores relacionados a la construcción de bases de datos distribuidas que no se presentan en bases de datos centralizadas. Existen razones organizacionales las cuales determinan en gran medida lo anterior. si existen copias múltiples del mismo dato y. En el diseño de bases de datos distribuidas se debe considerar el problema de como distribuir la información entre diferentes sitios. Sin embargo.

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

El diseño de las bases de datos centralizadas contempla los dos puntos siguientes: 1. La decisión 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.cuales tienen un principio y un fin. Este problema debería estar relacionado al diseño de la misma red de computadoras. en general. mapear el esquema conceptual a las áreas de almacenamiento y determinar los métodos de acceso a las bases de datos. esto es. verticales o mixtos. Diseño del "esquema conceptual" el cual describe la base de datos integrada (esto es. . el control de recuperación en sistemas distribuidos debe asegurar que el conjunto de agentes que participan en una transacción realicen todos un compromiso al unísono o todos al mismo tiempo restablezcan la información anterior (roll-back). todos los datos que son utilizados por las aplicaciones que tienen acceso a las bases de datos). este se determina por la forma en que las relaciones globales se subdividen en fragmentos horizontales.4. ya que una sola transacción puede involucrar dos o más sitios de la red. Diseño "físico de la base de datos". En el caso de las bases de datos distribuidas se tienen que considerar los dos problemas siguientes: 3. el manejo de la atomicidad y durabilidad de las transacciones es aún más complejo.2 El problema de diseño El problema de diseño de bases de datos distribuidos se refiere. Diseño de la fragmentación. Así. 3. 2. a la ubicación de datos y programas a través de los diferentes sitios de la red de computadoras. En los sistemas distribuidos.

4. la distribución de la carga de trabajo podría afectar negativamente el procesamiento local deseado. esto se determina en la forma en que los fragmentos se mapean a las imágenes físicas. que de esta forma se seleccione la mejor solución de ellas. Se puede realizar el diseño de la distribución de los datos para maximizar el procesamiento local agregando el número de referencias locales y remotas que le corresponden a cada fragmentación candidata y la localización del fragmento. • Distribución de la carga de trabajo. 3. Sin embargo el costo de almacenamiento de datos no es tan relevante si éste se compara con el del CPU. . • Costo de almacenamiento y disponibilidad. Esta distribución de la carga se realiza para tomar ventaja de las diferentes características (potenciales) o utilizaciones de las computadoras de cada sitio. en esta forma. es posible tener sitios especializados en la red para el almacenamiento de datos. Para el diseño de la distribución de los datos.4. La distribución de la carga de trabajo sobre los sitios. para maximizar el procesamiento local corresponde al principio simple de colocar los datos tan cerca como sea posible de las aplicaciones que los utilizan. Para esto. también se determina la solicitud de fragmentos. Sin embargo. y maximizar el grado de ejecución de paralelismo de las aplicaciones.3 Objetivos del Diseño de la Distribución de los Datos. es una característica importante de los sistemas de cómputo distribuidos. se deben de tener en cuenta los siguientes objetivos: • Procesamiento local. I/O y costos de transmisión de las aplicaciones. La distribución de la base de datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios. La distribución de los datos. Diseño de la asignación de los fragmentos.

El diseño de abajo hacia arriba (bottom-up). Después se hace la traducción de cada esquema local en el modelo de datos común y finalmente se hace la integración del esquema local en un esquema global común.4 Enfoques al problema de diseño de bases de datos distribuidas Existen dos estrategias generales para abordar el problema de diseño de bases de datos distribuidas: 1. 2. Se utiliza particularmente a partir de bases de datos existentes. A partir de ellas se define un esquema conceptual global y los esquemas externos necesarios. creando las imágenes físicas. Consiste en partir desde el análisis de requerimientos para definir el diseño conceptual y las vistas de usuario. . en cada sitio.4. Esto se debe es posible que se utilicen diferentes SMBD. generando con esto bases de datos distribuidas. y de aquí se continúa con la localización de los fragmentos en los sitios.3. El enfoque de arriba hacia abajo (top-down). el diseño bottom-up de una base de datos distribuida requiere de la selección de un modelo de bases de datos común para describir el esquema global de la base de datos. Se prosigue con el diseño de la fragmentación de la base de datos. "el diseño físico" de los datos. Esta aproximación se completa ejecutando. Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos. que se localizan en éste. En forma resumida.

el agregar un nuevo . se introducirá el concepto de fragmentación de datos relacionado con el nivel de transparencia de distribución que un SBDD debe ofrecer. Esto permite que un cambio en la definición de un esquema no debe afectar a las aplicaciones de usuario.2 INDEPENDENCIA LÓGICA DE DATOS Se refiere a la inmunidad de las aplicaciones de usuario a los cambios en la estructura lógica de la base de datos.6 transparencia a nivel de fragmentación de datos 4.5 transparencia sobre replicacion 4.Objetivo general Revisar los conceptos básicos de la arquitectura y definir la estructura de un sistema. Por ejemplo. NIVELES DE TRANSPARENCIA EN SBDD Estructura temática 4.4 transparencia al nivel de red 4. Se dará una descripción acerca de las componentes de las bases de datos distribuidas.1.UNIDAD 2 ARQUITECTURA DE BASE DE DATOS DISTRIBUIDA CAPITULO. Al definir la arquitectura se deben identificar las componentes de un sistema. .2 independencia lógica de datos 4. 4.1 INTRODUCCIÓN En este capítulo se mostrará la arquitectura general de un sistema de bases de datos distribuida.3 independencia física de los datos 4. Introducción 4. las funciones que realiza cada una de las componentes y las interrelaciones e interacciones entre cada componente. 4.

Se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario. 4. 4. no se debe mezclar la información de la localización con en el nombre de un objeto. En este caso no existe transparencia sobre la localización. las aplicaciones no deben notar su existencia. Se debe tener en cuenta que cuando el usuario se encarga de manejar las . Esto es. La transparencia al nivel de red conlleva a dos cosas: Transparencia sobre la localización de datos. la descripción física de datos puede cambiar sin afectar a las aplicaciones de usuario. la creación de una nueva relación. Esto es. su existencia debe ser controlada por el sistema no por el usuario. Cp se utiliza para copias locales y rcp se utiliza para copias remotas. los datos pueden ser movidos de un disco a otro. Lo anterior se logra proporcionando un nombre único a cada objeto en el sistema distribuido. 4. Por ejemplo. en Unix existen dos comandos para hacer una copia de archivo. el comando que se usa es independiente de la ubicación de los datos en la red y del lugar en donde la operación se lleve a cabo. Por ejemplo. sin embargo. el reordenamiento lógico de algunos atributos. Transparencia sobre el esquema de nombramiento. Así.3 INDEPENDENCIA FÍSICA DE LOS DATOS La Independencia física de datos.5 TRANSPARENCIA SOBRE REPLICACIÓN La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos.atributo a una relación.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. o la organización de los datos puede cambiar.

réplicas en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas teniendo así datos diferentes.

4.6 TRANSPARENCIA A NIVEL DE FRAGMENTACIÓN DE DATOS La transparencia a nivel de fragmentación de datos permite que cuando los objetos de la bases de datos están fragmentados, el sistema tiene que manejar la conversión de consultas de usuario definidas sobre relaciones globales a consultas definidas sobre fragmentos. Así también, 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 compañía de ingeniería. Las entidades a ser modeladas son ingenieros y proyectos. Para cada ingeniero, se desea conocer su número de empleado (ENO), su nombre (ENOMBRE), el puesto ocupado en compañía (TITULO), el salario (SAL), la identificación de los nombres de proyectos en los cuales está trabajando (JNO), la responsabilidad que tiene dentro del proyecto (RESP) y la duración de su responsabilidad en meses (DUR). Así mismo, para cada proyecto se desea conocer el número 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 más de un proyecto pero su salario corresponde únicamente al puesto que ocupa en la compañía. Así, después de aplicar normalización 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 relación se presenta en la Figura 4.1

ENO ENOMBRE E1 Juan Pérez

TITULO Ingeniero Eléctrico

E2

Carlos Parra

Analista de Sistemas

E3

Armando Guzmán

Ingeniero Mecánico Programador Analista de Sistemas

E4 E5

Pablo López Jorge Pérez

E6

Luis Chivito

Ingeniero Eléctrico

E7

Marcos Castro

Ingeniero Mecánico

E8

Andrés Medina

Analista de Sistemas

G ENO JNO PUESTO E1 E2 E2 E3 E3 E4 E5 E6 E7 E7 E8 J1 J1 J2 J3 J4 J2 J2 J4 J3 J5 J3 J JNO JNOMBRE J1 J2 PRESUPUESTO LUGAR Cali Bogotá Ingeniero Analista Analista Consultor Administrador Programador Ingeniero Administrador Ingeniero Ingeniero Administrador DUR 14 10 8 10 10 44 24 32 32 24 44

Instrumentación 150000 Desarrollo de bases de datos 135000

J3 J4

CAD/CAM Mantenimiento

250000 310000

Neiva Cali

ENO AND E.ENO = G.J5 CAD/CAM S TITULO Ingeniero Eléctrico Analista de Sistemas Ingeniero Mecánico 500000 Pereira SALARIO 40000 34000 27000 Programador 24000 4.2 se presentan esquemas diferentes para el manejo de proyectos.TITULO Se debe tener en cuenta que en cada sitio de la corporación puede haber esquemas diferentes o repetidos.1 Bases de datos de una empresa con cuatro relaciones.1. Por ejemplo. . en la Figura 4. SALARIO FROM E. Si se quisiera obtener todos los empleados y sus salarios en la corporación quienes han trabajado más de 12 meses se haría la consulta siguiente en SQL: SELECT ENOMBRE. empleados y puestos en cada sitio de la bases de datos del Ejemplo 4. G.TITULO = S. S WHERE JORNADA > 12 AND E.

. En el tercer nivel se permite la transparencia de la fragmentación. En el cuarto nivel se permite la transparencia de acceso. Diferentes sitios de una empresa. La transparencia tiene como punto central la independencia de datos. En el segundo nivel se permite la transparencia de replicación de datos. Entre estos tres módulos se deben resolver los aspectos sobre el procesamiento distribuido de consultas y sobre el manejo de nombres de objetos distribuidos. Los diferentes niveles de transparencia se puede organizar en capas como se muestra en la Figura 4.Figura 4. 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.3. En el primer nivel se soporta la transparencia de red.2.

.Figura 4. Organización en capas de los niveles de transparencia.3.

1. 5 ARQUITECTURA DE LAS BDD Estructura temática 5. observan los datos a través de un esquema externo definido a nivel externo. conceptual y externo.. 5. conocida también como vista lógica global que representa la visión de la comunidad de usuarios de los datos en la base de datos. Muestra los conceptos de las diferentes vistas. La vista externa proporciona una ventana a la vista conceptual lo cual permite a los usuarios observar únicamente los datos. tales como: interno. conceptual y externo. modelo de referencia 5. Introducción 5.3 arquitectura ANSI -SPARC 5.CAPITULO. Objetivo general Conocer las diferentes formas de representación de la información en sus diferentes vistas. 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. Así como la vista conceptual.2 MODELO DE REFERENCIA Un modelo de referencia el cual sería un marco de trabajo conceptual cuyo propósito es dividir el trabajo de estandarización en piezas manejables y mostrar a un nivel . incluyendo a los programadores de aplicaciones.2.1 INTRODUCCIÓN La mayoría de los sistemas de manejo de bases de datos disponibles actualmente están basadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres niveles: interno.

La ventaja de este enfoque es la importancia que asigna al manejo de datos.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 . la desventaja de este enfoque es que es prácticamente imposible especificar un modelo arquitectural sin especificar los modelos para cada una de sus unidades funcionales. Basado en componentes. No toma en cuenta la . 3. La vista conceptual. un SMBD consiste de un número de componentes. Basado en datos. 5. Se identifican los diferentes tipos de descripción de datos y se especifica un marco de trabajo arquitectural el cual define las unidades funcionales que realizarán y/o usarán los datos de acuerdo con las diferentes vistas. Basado en funciones.Standards Planning and Requirements Committee) en 1975 como ayuda para conseguir la separación entre los programas de aplicación y los datos.general como esas piezas se relacionan unas con otras. Se definen las componentes del sistema junto con las relaciones entre ellas. La especificación del sistema en esta categoría típicamente determina una estructura jerárquica para las clases de usuarios. Sin embargo. Así. cada uno de los cuales proporciona alguna funcionalidad. Este es el enfoque seguido por el modelo ANSI/SPARC. La ventaja de este enfoque funcional es la claridad con la cual se especifican los objetivos del sistema. 2. Este es un enfoque significativo para los SMBD dado que su propósito principal es manejar datos. el manejo de múltiples vistas por parte de los usuarios y el uso de un catálogo para almacenar el esquema de la base de datos. representa la visión de la comunidad de usuarios de los datos en la base de datos. Se identifican las diferentes clases de usuarios junto con la funcionalidad que el sistema ofrecerá para cada clase. conocida también como vista lógica global. Para definir ese modelo de referencia se puede seguir uno de los siguientes tres enfoques: 1.

1. Los usuarios. Este proporciona una interfaz al sistema de archivos del sistema operativo el cual es el responsable del acceso a la base de datos. La vista externa proporciona una ventana a la vista conceptual lo cual permite a los usuarios observar únicamente los datos de interés y los aísla de otros datos en la base de datos. . Puede existir cualquier número de vistas externas y ellos pueden ser completamente independientes o traslaparse entre sí. El esquema conceptual se mapea a un esquema a nivel interno.forma en que las aplicaciones individuales observan los datos o como éstos son almacenados.1. el cual es el nivel de descripción más bajo de los datos en una base de datos. La vista conceptual está basada en el esquema conceptual y su construcción se hace en la primera fase del diseño de una base de datos. interno y externo para las relaciones de la Figura 5. observan los datos a través de un esquema externo definido a nivel externo. qué técnica de organización de archivos utilizar y como los datos se agrupan en el disco para mejorar su acceso. incluyendo a los programadores de aplicaciones. Figura 5. En la Figura se presenta la definición de los esquemas conceptual. El nivel interno tiene que ver con la especificación de qué elementos serán indexados. Arquitectura ANSI/SPARC de una base de datos.

Figura 5.2. S. Vista conceptual de las relaciones E. . J y G.3 Definición de una vista interna a partir de la relación S. Figura 5.

4. Desafortunadamente. no existe un equivalente de una arquitectura estándar para sistemas de manejo de bases de datos distribuidas. . Dos ejemplos de vistas externas.Figura 5. La tecnología y prototipos de SMBDD se han desarrollado más o menos en forma independiente uno de otro y cada sistema ha adoptado su propia arquitectura.

3 HETEROGENEIDAD . la Autonomía y sus niveles tanto de diseño.CAPITULO.1 INTRODUCCIÓN Se muestran en este capitulo los diferentes factores que se deben tener en cuenta a la hora de la implementación de un sistema manejador de base de datos.4 Autonomía 6. comunicación y ejecución. Objetivo general Identificar los componentes que se implementan en sistema manejador de bases de datos distribuida. Tanto en la distribución. Introducción 6. La distribución que Determina si las componentes del sistema están localizadas en la misma computadora o no. la heterogeneidad que se puede presentar a varios niveles: hardware. DISTRIBUCIÓN Determina si las componentes del sistema están localizadas en la misma computadora o no. sistema operativo o SMBD. 6. 6 ALTERNATIVAS PARA LA IMPLEMENTACION DE SMBDD Estructura temática 6. la heterogeneidad y la autonomía 6. sistema de comunicaciones.2.1.2.3 Heterogeneidad 6. Distribución 6.

No existen . Figura 6. Desde el punto de vista funcional y de organización de datos. Los sistemas homogéneos se parecen a un sistema centralizado. Sistemas de manejo de bases de datos distribuidos heterogéneos Un SMBDD homogéneo tiene múltiples colecciones de datos. los datos se distribuyen en varios sitios comunicados por la red.1 Arquitectura de un SMBDD homogéneo. basados en dos filosofías totalmente diferentes y diseñadas para satisfacer necesidades diferentes: 1. Sistemas de manejo de bases de datos distribuidos homogéneos 2. sistema operativo o SMBD. los sistemas de datos distribuidos están divididos en dos clases separadas. integra múltiples recursos de datos como se muestra en la Figura 6.2. al lenguaje de consultas o a los algoritmos para manejo de transacciones. Para el caso de SMBD heterogéneos ésta se puede presentar debido al modelo de datos. sistema de comunicaciones. pero en lugar de almacenar todos los datos en un solo lugar.La heterogeneidad se puede presentar a varios niveles: hardware.

usuarios locales y todos ellos accedan la base de datos a través de una interfaz global. Arquitectura de los esquemas de un SMBDD homogéneo. Figura 6. .2. El esquema global es la unión de toda las descripciones de datos locales y las vistas de los usuarios se definen sobre el esquema global.

Figura 6. 6. Un sistema multi-bases de datos (SmultiBD) tiene múltiples SMBD. La clase de sistemas heterogéneos es aquella caracterizada por manejar diferentes SMBD en los nodos locales. y múltiples bases de datos existentes. La arquitectura general de tales sistemas a diferencia con los sistemas homogéneos. La integración de todos ellos se realiza mediante subsistemas de software. Arquitectura de un sistema multi-bases de datos. La habilidad de un componente del SMBD para decidir cuestiones relacionadas a su propio diseño.4 AUTONOMÍA La autonomía se puede presentar a diferentes niveles: • Autonomía de diseño. existen usuarios locales y globales. • .3. La habilidad de un componente del SMBD para decidir como y cuando comunicarse con otros SMBD. Autonomía de comunicación. Los usuarios locales accesan sus bases de datos locales sin verse afectados por la presencia del Smulti-BD. que pueden ser de tipos diferentes. Una subclase importante dentro de esta clase es la de los sistemas de manejo multi-bases de datos.

. La habilidad de un componente del SMBD para ejecutar operaciones locales de la manera que él quiera.• Autonomía de ejecución.

Costo de almacenamiento y Disponibilidad 7.1 INTRODUCCIÓN Este capítulo muestra los aspectos importantes referentes al diseño de una base de datos distribuida. Procesamiento local 7.UNIDAD 3 DISEÑO DE BASE DE DATOS DISTRIBUIDAS CAPITULO 7 DISEÑO DE LA DISTRIBUCION DE LOS DATOS Estructura temática 7. Objetivo general Conocer las formas de procesamiento local la Distribución de la carga de trabajo y el Manejo del Costo de almacenamiento y disponibilidad.1. 7. Se revisará el problema la distribución de carga y el manejo del costo de almacenamiento y la disponibilidad. Introducción 7.2.2.4. Se puede realizar el diseño de la distribución de los datos para maximizar el procesamiento local agregando el número de referencias locales y remotas que le corresponden a cada fragmentación candidata . PROCESAMIENTO LOCAL El procesamiento local en La distribución 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.3. Distribución de la carga de trabajo 7.

. es posible tener sitios especializados en la red para el almacenamiento de datos. COSTO DE ALMACENAMIENTO Y DISPONIBILIDAD La distribución de la base de datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios. DISTRIBUCIÓN DE LA CARGA DE TRABAJO La distribución de la carga de trabajo sobre los sitios. I/O y costos de transmisión de las aplicaciones. 7. que de esta forma se seleccione la mejor solución de ellas. Sin embargo. 7.4 . Para esto.y la localización del fragmento.3. es una característica importante de los sistemas de cómputo distribuidos. Esta distribución de la carga se realiza para tomar ventaja de las diferentes características (potenciales) o utilizaciones de las computadoras de cada sitio. y maximizar el grado de ejecución de paralelismo de las aplicaciones. Sin embargo el costo de almacenamiento de datos no es tan relevante si éste se compara con el del CPU. la distribución de la carga de trabajo podría afectar negativamente el procesamiento local deseado.

Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos. Esta aproximación se completa ejecutando. Estructura temática 8.2. El enfoque de arriba hacia abajo (top-down). los enfoques tanto el enfoque de arriba hacia abajo (top-down) como el (bottom-up). ENFOQUE DE ARRIBA HACIA ABAJO (TOP DOWN). "el diseño físico" de los datos. Se prosigue con el diseño de la fragmentación de la base de datos. 8. en cada sitio. creando las imágenes físicas. Introducción 8.2. diseño de abajo hacia arriba . A partir de ellas se define un esquema conceptual global y los esquemas externos necesarios. Enfoque de arriba hacia abajo (top down).1.CAPITULO 8 ENFOQUES AL PROBLEMA DE DISEÑO DE BDD .1 se presenta un diagrama con la estructura general del enfoque top-down. Objetivo general Conocer la forma como se realiza el diseño conceptual 8. En la Figura 8. 8. Consiste en partir desde el análisis de requerimientos para definir el diseño conceptual y las vistas de usuario. y de aquí se continúa con la localización de los fragmentos en los sitios. INTRODUCCIÓN Se muestran las estrategias de diseño base de datos distribuida.3 Diseño de abajo hacia arriba (bottom-up). que se localizan en éste.1.

Figura 8. El diseño de abajo hacia arriba (bottom-up). el diseño bottom-up de una base de datos distribuida requiere de la selección de un modelo de bases de datos común para describir el esquema global de la base de datos. En forma resumida. es posible que se utilicen diferentes SMBD. . Después se hace la traducción de cada esquema local en el modelo de datos común y finalmente se hace la integración del esquema local en un esquema global común.1 se presenta un diagrama con la estructura general del enfoque top-down.3 DISEÑO DE ABAJO HACIA ARRIBA (BOTTOM-UP). Se utiliza particularmente a partir de bases de datos existentes. 8. generando con esto bases de datos distribuidas.

que tanto se debe fragmentar. En resumen. Sin embargo.1. . Fragmentación Híbrida 9. Introducción 9.2. La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecución concurrente de varias transacciones que accesan porciones diferentes de una relación.CAPITULO. 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. Asignamiento de Fragmentos 9. el objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas.. como se debe hacer la fragmentación. Y como el problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red. Fragmentación Vertical 9. INTRODUCCIÓN En el presente capitulo se muestra como el diseño de una base de datos distribuida. Fragmentación Horizontal 9. 9 FRAGMENTACION Estructura temática 9.3. cuales son los mecanismos de validez de fragmentación. cualquiera sea el enfoque que siga.4 .1.5. debe cuestionarse preguntas tales como: El por qué hacer una fragmentación de datos. como se realizan los asignamientos de la fragmentación y como se consideran los requerimientos de la información.

9. Ejemplo 9. dividiendo la relación en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. La división o fragmentación horizontal trabaja sobre las tuplas. Considere la relación J del ejemplo : JNO JNOMBRE J1 J2 PRESUPUESTO LUGAR Medellín Cali Programador 230000 Desarrollo BD 235000 J3 J4 J5 CAD/CAM Soporte CAD/CAM 250000 460000 750000 Bogotá Neiva Ibague La relación J se puede fragmentar horizontalmente produciendo los siguientes fragmentos. inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. J1: proyectos con presupuesto menor que $250.000 JNO JNOMBRE PRESUPUESTO LUGAR .1.2. El objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas. FRAGMENTACIÓN HORIZONTAL Corresponde esencialmente a una tabla y la cuestión consiste en dividirla en fragmentos menores.

Ejemplo Considere la relación global SUPPLIER( SNUM. CITY ) entonces. NAME.000 JNO JNOMBRE J3 J4 J5 CAD/CAM Soporte CAD/CAM PRESUPUESTO LUGAR 250000 460000 750000 Bogotá Neiva Ibague Fragmentación horizontal primaria Es el particionamiento en tuplas de una relación global en subconjuntos. la fragmentación horizontal puede ser definida como: SUPPLIER1 = SLcity == "SF"SUPPLIER SUPPLIER2 = SLcity == "LA"SUPPLIER . donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operación de selección sobre la relación global.J1 J2 Programador 230000 Desarrollo BD 235000 Medellín Cali J2: proyectos con presupuesto mayor que o igual a $250.

En esta operación se requiere de Semi-junta (Semi-Join) el cual sirve para derivar las tuplas o registros de dos relaciones. FRAGMENTACIÓN VERTICAL La fragmentación vertical. La fragmentación es correcta si cada atributo se mapea en al menos un atributo del fragmento. en cambio. La fragmentación vertical es la subdivisión de atributos en grupos. . Los fragmentos se obtienen proyectando la relación global sobre cada grupo. Fragmentación horizontal derivada La fragmentación derivada horizontal se define partiendo de una fragmentación horizontal. La condición de reconstrucción se logra con: SUPPLIER = SUPPLIER1 unión SUPPLIER2 La condición de disjuntos se cumple claramente en este ejemplo. SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1 SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2 9.Esta fragmentación satisface la condición si "SF" y "LA" son solamente los únicos valores posibles del atributo CITY.3. se basa en los atributos de la relación para efectuar la división. Las siguientes relaciones definen una fragmentación horizontal derivada de la relación SUPPLY. Ejemplo.

Ejemplo La relación J del ejemplo anterior se puede fragmentar verticalmente produciendo los siguientes fragmentos: J1: información acerca de presupuestos de proyectos JNO PRESUPUESTO J1 J2 J3 J4 J5 230000 235000 250000 460000 750000 J2: información acerca de los nombres y ubicaciones de proyectos JNO JNOMBRE J1 J2 J3 J4 J5 Programador LUGAR Medellín Desarrollo BD Cali CAD/CAM Soporte CAD/CAM Bogotá Neiva Ibagué .

depnum EMP .Ejemplo. sobre los fragmentos generados. mgrnum. name. posteriormente. name. Ejemplo Considere la relación global EMP( empnum. de forma directa considerando la semántica de las transacciones. name. Considere la siguiente relación global: EMP( empnum. tax EMP la reconstrucción de la relación EMP puede ser obtenida como: EMP = EMP1 (JN empnum) EMP2 porque empnum es una clave de EMP 9. depnum ) Las siguientes son para obtener una fragmentación mixta. sal. o aplicando primero una división horizontal para luego. desarrollar una fragmentación vertical (llamada partición HV). name. sal. sal. La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y. mgrnum. mrgnum. tax. o bien. se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. aplicando la vertical seguida de la horizontal: EMP1 = SL depnum <= 10 PJempnum. mgrnum. tax. depnum EMP EMP2 = PJempnum. aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH).4 FRAGMENTACIÓN HÍBRIDA Fundamentalmente. depnum ) una fragmentación vertical de esta relación puede ser definida como: EMP1 = PJempnum.

MGRNUM) SUPPLIER(SNUM. tax (EMP) DEP1 = SL depnum <= 10 (DEP) DEP2 = SL 10 < depnum <= 20 (DEP) . tax EMP La reconstrucción de la relación EMP es definida por la siguiente expresión: EMP = UN(EMP1. mgrnum. depnum EMP EMP3 = SL depnum > 20 PJempnum. DEPNUM. depnum (EMP) EMP3 = SL depnum > 20 PJempnum. NAME. sal. mgrnum. name. mgrnum. name. name. name. MGRNUM. mgrnum. depnum EMP EMP4 = PJ empnum. mgrnum. TAX. name. DEPNUM) DEP(DEPNUM. CITY) SUPPLY(SNUM. SAL. QUAN) Después de aplicar una fragmentación mixta se obtiene el siguiente esquema fragmentado EMP1 = Sldepnum <= 10 PJempnum.EMP2 = SL 10 < depnum <= 20 PJempnum. NAME. EMP2. EMP3)JNempnum = empnumPJempnum. sal. AREA. PNUM. NAME. name. sal. name. depnum (EMP) EMP4 = PJ empnum. tax EMP4 otro ejemplo que tiene el siguiente esquema global EMP(EMPNUM. depnum (EMP) EMP2 = SL 10 < depnum <= 20 PJempnum.

Las dos métricas más utilizadas son el tiempo de respuesta y el "throughput" (número de trabajos procesados por unidad de tiempo)... .DEP3 = SL depnum > 20 (DEP) SUPPLIER1 = SL city == "SF" (SUPPLIER) SUPPLIER2 = SL city == "LA" (SUPPLIER) SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1 SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2 9. Suponga que hay un conjunto de fragmentos F = { F1. en lugar de eso considera el problema de ubicar archivos individuales en redes de computadoras. . . 2. La estrategia de asignamiento se diseña para mantener una métrica de rendimiento.. entonces.. . S2. la mayoría de este trabajo no considera el problema de diseño de bases de datos distribuidas.. del costo de almacenamiento.. q2. Sm } en los cuales un conjunto de consultas Q = { q1. F2. La optimalidad puede ser definida de acuerdo a dos medidas: 1. Rendimiento. El problema de asignamiento.. Costo mínimo.. y del costo procesamiento (lecturas y actualizaciones a cada fragmento).. qq } se van a ejecutar.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. Consiste del costo de comunicación de datos. El problema de asignamiento determina la distribución "óptima" de F en S. Sin embargo. pretende encontrar un esquema de asignmiento que minimiza una función de costo combinada. Fn } y una red que consiste de los sitios S = { S1.

se necesita saber cual es el nodo de la red que origina cada consulta. Finalmente. el número de tuplas de Fj que será necesario accesar para procesar qi. las capacidades de procesamiento y de almacenamiento de cada nodo en la red. las aplicaciones que se utilizarán. • Información sobre cada nodo de la red. la red de comunicaciones.En cualquier problema de optimización existen restricciones que se deben satisfacer. Esta información tiene datos sobre: • Información sobre la base de datos. Se requiere de una matriz que indique que consultas actualizan cuales fragmentos. Así también. Es necesario distinguir el número de lecturas que una consulta qj hace a un fragmento Fj durante su ejecución. • Información sobre la red de comunicaciones. del número de escrituras. 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 información cuantitativa relativa a la base de datos. el tiempo de latencia en la comunicación y la cantidad de trabajo adicional a realizar para una comunicación. Las medidas a considerar son: la velocidad de comunicación. el cual está dado por: size(Fj ) = card( Fj ) * length( Fj ) • Información sobre las aplicaciones. El caso de distribución de fragmentos. . 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. es necesario conocer el tamaño de cada fragmento. esto es. Una matriz similar se necesita para indicar las lecturas de consultas a fragmentos. Es necesario conocer la selectividad de un fragmento Fj con respecto a una consulta qi. Este valor se denota como sel( Fj ).

Los modelos de acceso remoto a archivos no se aplican. 3. Por lo tanto. Es necesario considerar las relaciones entre el asignamiento de fragmentos y el procesamiento de consultas. 2. Los fragmentos no son archivos individuales. El acceso a las bases de datos es más complicado que a archivos. La colocación de un fragmento usualmente tiene un impacto en la colocación de otros fragmentos. 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. 4. El costo del control de concurrencia a una base de datos distribuida también debe ser considerado. es necesario mantener las relaciones entre fragmentos. El costo del mantenimiento de la integridad de la información debe ser considerado en las bases de datos distribuidas. 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 .Asignamiento de archivos y de fragmentos En el diseño de bases de datos distribuidas no se puede considerar igual al problema de la distribución de archivos existen algunas razones a considerar: 1.

Ocultando los detalles de bajo nivel acerca de la localización física de datos. Optimización Global de Consultas 10.2.3. INTRODUCCIÓN 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. Dado que la ejecución de consultas es un aspecto crítica en el rendimiento de un DBMS. Sin embargo. En este capítulo se revisa el procesamiento de consultas para bases de datos distribuidas . el usuario no tiene que especificar de manera precisa el procedimiento que se debe seguir. Introducción 10.1. Descomposición de consultas 10. el procesamiento de consultas es mucho más difícil en ambientes distribuidos que en centralizados.UNIDAD 4 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS CAPITULO 10 ARQUITECTURA DEL PROCESAMIENTO DE CONSULTAS Estructura temática 10. Optimización Local de Consultas 10. los lenguajes de bases de datos relacionales permiten la expresión de consultas complejas en una forma concisa y simple para construir la respuesta a una consulta. ya que existe un gran número de parámetros que afectan el rendimiento de las consultas distribuidas.1. Este procedimiento es llevado a cabo por un módulo del DBMS llamado el procesador de consultas (query processor).4. el procesamiento de consultas ha recibido una gran atención tanto para bases de datos centralizadas como distribuidas.

Normalización La consulta de entrada puede ser arbitrariamente compleja dependiendo de las facilidades provistas por el lenguaje. Una consulta está en forma normal disyuntiva cuando se tiene una disyunción de conjunciones: . Para la construcción de la forma normal. . . La normalización consiste de dos partes: El análisis léxico y sintáctico. La forma normal conjuntiva es una conjunción de disyunciones como sigue: (p11 Ú p12 Ú . Existen dos tipos de formas normales. Se verifica que las relaciones y atributos invocados en la consulta estén acordes con la definición en la base de datos. a una consulta equivalente en una especificación de bajo nivel. se verifica el tipo de los operandos cuando se hace una operación. Ú p2n) Ù . . .Objetivo general El objetivo principal es mostrar como un procesador de consultas relacionales transforma una consulta en una especificación de alto nivel. El objetivo de la normalización es transformar una consulta a una forma normalizada para facilitar su procesamiento posterior. típicamente en cálculo relacional. . . Ú p1n) Ù (p21 Ú p22 Ú . En esta parte se verifica la validez de la expresión que da origen a la consulta. En esta sección se dará claridad sobre cada uno de los pasos. análisis. . Por ejemplo. . simplificación y reestructuración. 10. Ú pmn) donde pij es un predicado simple.2. Ù (pm1 Ú pm2 Ú . DESCOMPOSICIÓN DE CONSULTAS La descomposición de consultas consiste de cuatro pasos: normalización.

Ejemplo Considere la siguiente consulta en una base de datos que tiene nombre(ENO).(p11 Ù p12 Ù .ENO = G.ENO Ù G. por lo que solo se consideran predicados simples. . . .ENO = G. Ù pmn) En toda forma normal. Existe un procedimiento para obtener la forma normal.G. proyecto(JNO) y salario.JNO = "J1" Ù DUR = 12) Ú (E.JNO = "J1" Ù DUR = 24) . Para la aplicación que se esta considerando. "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. Ù p2n) Ú . Ú (pm1 Ù pm2 Ù . .JNO = "J1" Ù (DUR = 12 Ú DUR = 24) La consulta en forma normal disyuntiva es: (E. .ENO AND G. Ù p1n) Ú (p21 Ù p22 Ù . .ENO Ù G. la expresión está libre de cuantificadores el existencial o universal. . los operadores OR se transforman en uniones de conjuntos y los operadores AND se transforman en operadores de junta o selección. G WHERE E. Típicamente. de cualquier expresión en el cálculo de proposiciones. conjuntiva o disyuntiva. nmeses de trabajo (DUR).JNO = "J1" AND DUR = 12 OR DUR = 24 La consulta en forma normal conjuntiva es: E.ENO = G. la forma normal conjuntiva es más práctica puesto que incluye más operadores AND (Ù ) que operadores OR (Ú ).ENO = G. . En las tablas E.ENO Ù G.

es posible hacerlo para una clase importante de consultas relacionales. RESP FROM E. Dentro del cálculo relacional no es posible determinar la correctitud semántica de una consulta general. G. aquellas que no contienen disyunciones y negaciones. si se tratan las conjunciones en forma independiente. La consulta se puede rechazar si las componentes no contribuyen de ninguna forma a la generación del resultado. .ENO AND G. Ejemplo. J WHERE E.JNO AND JNAME = "CAD/CAM" AND DUR >= 36 AND TITLE = "Programador" La gráfica de la consulta anterior se presenta en la Figura a. Sin embargo.En esta última forma. También se puede rechazar si las operaciones que se aplican a los atributos no son del tipo adecuado. Considere la siguiente consulta: "Encuentre los nombres y responsabilidades de los programadores que han estado trabajando en el proyecto de CAD/CAM por más de tres años y el nombre de su administrador" La consulta expresada en SQL es: SELECT ENAME. Análisis El análisis de consultas permite rechazar consultas normalizadas para los cuales no se requiere mayor procesamiento. En la Figura b se presenta la gráfica de juntas.ENO = G.JNO = J. Una consulta se puede rechazar si alguno de sus atributos o nombres de relación no están definidas en el esquema global.

p Ú true Û true 7. p Ù true Û p 4.¨ Figura a) Gráfica de una consulta. p Ù p Û p 2. p Ú p Û p 3. p Ù false Û false 6. Simplificación La consulta en forma normal conjuntiva puede contener predicados redundantes. Una evaluación directa de la consulta con redundancia puede llevarnos a realizar trabajo duplicado. p Ú Ø p Û true . La redundancia puede ser eliminada aplicando sucesivamente las siguientes reglas: 1. p Ù Ø p Û false 8. p Ú false Û p 5. b) Gráfica de juntas.

La siguiente consulta en SQL SELECT TITULO FROM E WHERE (NOT (TITULO = "Programador")) AND (TITULO = "Programador" OR TITULO = "Ingeniero Eléctrico") AND NOT (TITULO = "Ingeniero Eléctrico") OR ENOMBRE = "J. Doe" Puede ser simplificada usando las reglas anteriores a SELECT TITULO FROM E WHERE ENOMBRE = "J.9. p1 Ú (p1 Ù p2) Û p1 Ejemplo. p1 Ù (p1 Ú p2) Û p1 10. Doe" Reestructuración El último paso en la descomposición de consultas reescribe la consulta en el álgebra relacional. Esto se hace típicamente en los siguientes paso: Una transformación directa del cálculo relacional en el álgebra relacional Una reestructuración de la consulta en el álgebra relacional para mejorar la eficiencia .

Ejemplo "Encuentre los nombres de empleados diferentes de "J. se crea una hoja diferente para cada variable de tuplo diferente.JNO AND ENAME ¹ "J. Doe" que trabajaron en el proyecto de CAD/CAM por uno o dos años" se puede expresar en SQL como sigue: SELECT ENAME FROM J.ENO AND G. En SQL. la calificación (WHERE) de una consulta se traduce a una secuencia apropiada de operaciones relacionales (select. etc.JNO = J.) yendo de las hojas a la raíz. el nodo raíz se crea como una operación de proyección con los atributos resultantes. G WHERE E. La secuencia se puede dar directamente por el orden de aparición de los predicados y operadores. La transformación de una consulta en el cálculo relacional en un árbol del álgebra relacional se puede hacer como sigue. las hojas están disponibles de forma inmediata en la cláusula FROM. Segundo.Por claridad es costumbre representar la consulta en el álgebra relacional por un árbol del álgebra relacional. Primero. el cual es un árbol en donde una hoja representa a una relación almacenada en la base de datos y un nodo no hoja es una relación intermedia producida por una operación del álgebra relacional. Tercero. Estos se encuentran en la cláusula SELECT de una consulta en SQL. Doe" AND JNAME = "CAD/CAM" AND (DUR = 12 OR DUR = 24) . E.join.ENO = G.union.

An } y S se define sobre los atributos B = { B1. A2. B2.Se puede mapear de manera directa al árbol del álgebra relacional de la Figura 10. árboles diferentes se pueden encontrar por el procedimiento descrito antes. Bn }...1 Ejemplo de un árbol del álgebra relacional. R.. Aplicando las reglas de transformación que se verán a continuación. S y T son relaciones donde R se define sobre los atributos A = { A1.... 1. Las seis reglas de equivalencia más útiles. . Conmutatividad de operaciones binarias: R´S=S´R R><S=S><R RÈS=SÈR . . En lo que sigue. las cuales están relacionadas a las operaciones del álgebra relacional se presentan a continuación.

. Conmutando proyección con operaciones binarias P C (R ´ S) Û P A? (R) ´ P B? (S) P C (R > < (Aj.... Bk) S) Û (s p(Ai) R) > < (Aj. Conmutando selección con proyección P A1. An (s p(Ap) (P A1. Bk) S) Û P A? (R) > < (Aj.2. 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. An. Conmutando selección con operaciones binarias s p(A) (R ´ S) Û (s p(A) (R)) ´ S s p(Ai) (R > < (Aj. Ap (R))) 5. A?? Í A y A? Í A.. Bk) S s p(Ai) (R È T) Û s p(Ai) (R) È s p(Ai) (T) donde Ai pertenece a R y a T. An (s p(Ap) (R)) Û P A1.. Bk) P B? (S) P C (R È S) Û P C (R) È P C (T) .. 6... . 4. . Asociatividad de operaciones binarias: R ´ (S ´ T) Û (R ´ S) ´ T R > < (S > < T) Û (R > < S) > < T 3. .

El resultado es bueno en el sentido de que se evita el acceso repetido a la misma relación y las operaciones más selectivas se hacen primero.2 se presenta un árbol equivalente al mostrado en la Figura 10.1 se presenta en la Figura 10.donde R[A] y S[B]. Sin embargo. Por ejemplo. La reestructuración del árbol de la Figura 10. C = A? È B? donde A? Í A y B? Í B.2. este árbol aún no es óptimo.2. Arbol equivalente al de la Figura 10. .2. la operación de selección E no es muy útil antes de la junta dado que no reduce grandemente el tamaño de la relación intermedia.1. Ejemplo En la Figura 10. Figura 10.

aplicar primero las operaciones de selección y proyección. Por otro lado. el espacio de decisión es mucho más amplio lo que afecta grandemente el tiempo de ejecución de la optimización.1 Caracterización 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. Sin embargo. Las heurísticas más directas a aplicar son el agrupamiento de expresiones comunes para evitar el cálculo repetido de las mismas. Los algoritmos de búsqueda exhaustiva tienen una complejidad combinatoria en el número de relaciones de la consulta. Así existen dos estrategias para su solución: búsqueda exhaustiva o el uso de heurísticas. Tipo de optimización El problema de optimización de consultas es altamente demandante en tiempo de ejecución es un problema de la clase NP. reemplazar una junta por una serie de semijuntas y reordenar operaciones para reducir el tamaño de las relaciones intermedias. Obtienen la transformación óptima. . En el segundo caso puede obtener transformaciones eficientes si las consultas son similares. En esta sección se enumeran algunas características importantes de los procesadores de consultas que pueden ser usados como base para su comparación. La primera alternativa no considera el uso de resultados comunes intermedios. los algoritmos heurísticos obtienen solo aproximaciones a la transformación óptima pero lo hacen en un tiempo de ejecución razonable.El árbol se reestructura a partir del de la Figura 10. pero sólo se aplican a consultas simples dado su tiempo de ejecución. Granularidad de la optimización Existen dos alternativas: considerar sólo una consulta a la vez o tratar de optimizar múltiples consultas.

el costo de la optimización puede ser amortizada sobre múltiples ejecuciones de la misma consulta. . La optimización estática es aún más demandante ya que el tamaño de las relaciones intermedias también debe ser estimado basándose en estadísticas. conocido como híbrido. Estadísticas El buen funcionamiento de una optimización se soporta en las estadísticas de la base de datos. La optimización estática se hace en tiempo de compilación de la consulta. utiliza básicamente un enfoque estático. Para minimizar la probabilidad de error. pero se puede aplicar un enfoque dinámico cuando los tamaños de las relaciones estimados están alejados de los tamaños actuales. Durante la optimización de consultas dinámica la elección de la mejor operación siguiente se puede hacer basado en el conocimiento exacto de los resultados de las operaciones anteriores. La optimización dinámica de consultas requiere de estadísticas para elegir las operaciones que deben realizarse primero. La optimización se puede realizar de manera estática antes de ejecutar la consulta o de forma dinámica durante la ejecución de la consulta. estadísticas más detalladas tales como histogramas de valores de atributos se usan pagando un costo mayor por su manejo. En bases de datos distribuidas las estadísticas para optimización de consultas típicamente se relacionan a los fragmentos. se requiere tener estadísticas acerca del tamaño de los resultados intermedios para aplicar esta estrategia.Tiempo de optimización Una consulta puede ser optimizada en tiempos diferentes con relación a tiempo de ejecución de la consulta. Un tercer enfoque. Así. la cardinalidad y el tamaño de los fragmentos son importantes así como el número de valores diferentes de los atributos.

un solo nodo o varios de ellos pueden participar en la selección de la estrategia a ser aplicada para ejecutar la consulta.Nodos de Decisión Con el uso de la optimización estática. Topología de la Red El tipo de red puede causar influencias sobre la función objetivo a optimizar para elegir la estrategia de ejecución. Por ejemplo. En redes de tipo LAN el costo de comunicación no es tan dominante. Optimización Global de Consultas Con una consulta algebraica sobre fragmentos. Por lo tanto. como por ejemplo. se han desarrollado algoritmos especiales para topologías específicas. La mayoría 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 decisión puede ser distribuido entre varios nodos los cuales participan en la elaboración de la mejor estrategia. se trata de crear una calendarización global basada en el costo de comunicación. el objetivo es hallar una estrategia de ejecución para la consulta cercana a la óptima. La estrategia de ejecución para una consulta distribuida puede ser descrita con los operadores del álgebra relacional y con . Por otra parte.3. se puede tomar ventaja de la comunicación "broadcast" que existe comúnmente en este tipo de redes para optimizar el procesamiento de las operaciones junta. en redes de tipo WAN se sabe que en la función de costo el factor debido a las comunicaciones es dominante. A partir de ahí. El enfoque centralizado es simple. Sin embargo. la topología de estrella. se generan calendarizaciones locales de acuerdo a una optimización de consultas centralizada. Existen enfoques híbridos en donde un nodo determina una calendarización global de las operaciones de la estrategia y cada nodo optimiza las subconsultas locales. 10. El enfoque distribuido requiere solo de información local. pero requiere tener conocimiento de la base de datos distribuida completa.

se pueden eligen los algoritmos para realizar las operaciones relacionales. Optimización Local de Consultas El trabajo de la última capa se efectúa en todos los nodos con fragmentos involucrados en la consulta. Un aspecto importante de la optimización de consultas es el ordenamiento de juntas. La salida de la capa de optimización global es una consulta algebraica optimizada con operación de comunicación incluida sobre los fragmentos. llamada consulta local. .4. sus cardinalidades. es optimizada usando el esquema local del nodo. como.primitivas de comunicación para transferir datos entre nodos. La optimización local utiliza los algoritmos de sistemas centralizados. Hasta este momento. Para encontrar una buena transformación se consideran las características de los fragmentos. dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios órdenes de magnitud. 10. Cada subconsulta que se ejecuta en un nodo.

Una forma simple de localizar una consulta distribuida es generar una consulta donde cada relación global es sustituida por su programa de localización.3. el programa de localización para una relación fragmentada verticalmente consiste de la junta de los fragmentos sobre el atributo común.1.2. 11 LOCALIZACIÓN DE DATOS DISTRIBUIDOS Estructura temática 11. Reducción para fragmentación horizontal derivada 11. las cuales pueden ser expresadas como consultas relacionales.1. 11.. Una relación global puede ser reconstruida aplicando las reglas de reconstrucción y derivando un programa en el álgebra relacional cuyos operandos son los fragmentos.4. Reducción para fragmentación vertical 11. . Dado que el operador de reconstrucción para la fragmentación vertical es la junta. INTRODUCCIÓN La fragmentación de una relación se define a través de las reglas de fragmentación. REDUCCIÓN PARA FRAGMENTACIÓN VERTICAL La fragmentación vertical distribuye una relación de acuerdo a los atributos de proyección.CAPITULO. Reducción para fragmentación horizontal primaria 11. Objetivo general Presentar de forma general la técnicas por cada tipo de fragmentación que permitan realizar consultas simples y optimizadas. Introducción 11.2.

TITULO (E) El programa de localización es E = E 1 > < E2 La reducción de consultas sobre fragmentos verticales se hace determinando relaciones intermedias inútiles y eliminando los subárboles que las producen. Dada una relación R definida sobre los atributos A = { A1.Ejemplo 11.ENOMBRE (E) E2 = P ENO.ENOMBRE (E) E2 = P ENO. A2. la cual se fragmenta verticalmente como Ri = P A? (R). . Ejemplo 11. E1 = P ENO.1. Considere también la siguiente consulta en SQL: SELECT ENAME FROM E E1 = P ENO. Considere de nuevo la relación E dividida en fragmentos verticales como en el Ejemplo .TITULO (E) .. Considere la relación E dividida en dos fragmentos verticales donde el atributo ENO sirve como atributo común..2.K (R) es inútil si el conjunto de atributos de proyección D no está en A?. la regla para determinar relaciones intermedias inútiles se puede formular como sigue: Regla 3: P D. Las proyecciones sobre fragmentos verticales que no tienen atributos en común con los atributos de proyección (excepto la llave de la relación) producen relaciones inútiles aunque probablemente no vacías. An }. donde A? Í A..

El ejemplo siguiente será usado a lo largo de esta sección. E2 y E3.1b. Conmutando la proyección con la junta. Ejemplo 11. definidos como sigue: E1 = s ENO £ "E3" (E) E2 = s "E3" < ENO £ "E6" (E) .1a. Reducción para fragmentación vertical. 11.3. se puede ver que la proyección sobre E2 es inútil dado que ENOMBRE no está en E2. Figura 11. ENOMBRE. la proyección necesita aplicarse únicamente a E1. REDUCCIÓN PARA FRAGMENTACIÓN HORIZONTAL PRIMARIA La fragmentación horizontal distribuye una relación basada en predicados de selección. como se presenta en la Figura 11.La consulta genérica equivalente se presenta en la Figura 11. La relación E(ENO. Por lo tanto.3.1. TITULO) puede ser dividida en tres fragmentos horizontales E1.

Aquí se tiene que: E = E1 È E2 È E13 La relación 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 localización para G es la unión de los fragmentos.E3 = s ENO > "E6" (E) El programa de localización para fragmentación horizontal es la unión de los fragmentos. Aquí se tiene que: G = G1 È G2 El árbol genérico se presenta en la Figura 11.2 .

se obtiene la consulta genérica de la Figura 11.. x denota a un tuplo. Rw. E2 y E3.4.2a.3 Reducción con selección Dada una relación R que ha sido fragmentada horizontalmente como R1. .. Considere la siguiente consulta SELECT * FROM E WHERE ENO = "E5" Aplicando el enfoque directo para localizar E a partir de E1. y p( x ) denota que el predicado p se satisface para x. donde Rj = s pj( R ).Arbol genérico para el ejemplo 11. Conmutando la selección con la operación de . 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 selección. Ejemplo 11.. R2.

Suponga que los fragmentos Ri y Rj están definidos de acuerdo a los predicados pi y pj. sobre el mismo atributo. Con esta transformación las uniones pueden ser movidas hacia arriba en el árbol de consulta de manera que todas las posibles juntas de fragmentos son exhibidas. Reducción para fragmentación horizontal con selección. es fácil detectar que el predicado de selección contradice los predicados de E1 y E3.unión. produciendo relaciones vacías. la regla de simplificación puede formularse como sigue: Regla 2: R1> < R3 = f si " x en Ri.2b. Reducción con junta Juntas en relaciones fragmentadas horizontalmente pueden ser simplificadas cuando las relaciones juntadas están fragmentadas de acuerdo al atributo de la junta. La consulta reducida es simplemente aplicada a E2 como se muestra en la Figura 11.2. Juntas inútiles de fragmentos pueden ser determinadas cuando los predicados de fragmentos juntados son contradictorios. La distribución de una junta sobre una unión puede ser establecida como (R1 È R2) > < R3 = (R1> < R3) È (R2 > < R3) donde Ri son fragmentos. " y en Rj: Ø (pi(x) Ù pj(y)) . Figura 11. La simplificación consiste en distribuir las juntas sobre las uniones y eliminar juntas inútiles. respectivamente.

los fragmentos de R y S que tienen el mismo valor del atributo para la junta se localizan en el mismo nodo. G WHERE ENO = G. pero un tuplo de R se asocia exactamente con uno de S. Figura 11. la fragmentación 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. La consulta reducida se puede observar en la Figura 11. Más aún. S puede ser fragmentado de acuerdo al predicado de selección. Así.3a. REDUCCIÓN PARA FRAGMENTACIÓN HORIZONTAL DERIVADA Si una relación R es sometida a una fragmentación horizontal derivada con respecto a S. Dado que los tuplos de R se colocan de acuerdo a los tuplos de S.3b. Reducción para fragmentación horizontal con junta.4. 11. E1 y G1 están definidos de acuerdo al mismo predicado. el predicado que define a G2 es la unión de los predicados que definen E2 y E3. .3.5 la fragmentación de la relación G del Ejemplo junto con la fragmentación de E.ENO La consulta genérica equivalente se presenta en la Figura 11.Ejemplo 11. Ahora considere la consulta con junta SELECT * FROM E.

Ejemplo 11. Ya que las reglas de fragmentación indican como se asocian los tuplos. por lo tanto.6: SELECT * FROM E. el predicado de la selección es inconsistente con el de E1. E1 puede ser eliminado y la consulta se reduce a la mostrada en la . Dado una relación uno-a-muchos de E a G. ciertas juntas producirán relaciones vacías si los predicados de la fragmentación son inconsistentes.ENO AND TITLE = "Ingeniero Mecánico" La consulta genérica que presenta en la Figura 11. DUR] se puede fragmentar indirectamente de acuerdo a las siguientes reglas: G1 = G > < ENO E1 G2 = G > < ENO E2 La relación E es fragmentada horizontalmente de la siguiente forma: E1 = s TITULO="Programador" E E2 = s TITULO¹ "Programador" E El programa de localización para G es G = G1 È G2 Las consultas en fragmentos derivados también se pueden reducir. la relación G[ENO. una transformación útil es distribuir las juntas sobre las uniones (usadas en los programas de localización) y aplicar la regla 2 presentada antes.6. RESPONSABLE. G WHERE G. Aplicando primero la selección sobre los fragmentos E1 y E2.4a. Dado que este tipo de fragmentación es útil para optimizar consultas con juntas. Ejemplo 11.ENO = E.7. Considere la siguiente consulta en SQL sobre la fragmentación definida en el Ejemplo 11. JNO.

Así. sus predicados son inconsistentes (TITULO = "Programador" de G1 es inconsistente con TITULO ¹ "PROGRAMADOR" en E2). sin embargo. .Figura 11.4c El subárbol de la izquierda junta los fragmentos G1 y E2. Figura 11. Ahora se distribuyen las juntas sobre las uniones produciendo el árbol de la Figura 11. Reducción para fragmentación horizontal derivada.4.4b. el subárbol de la izquierda produce una relación vacía por lo que puede ser eliminado obteniendo la consulta reducida de la Figura 11.4d.

para ejecutar la consulta. Objetivo general El objetivo del optimizado es encontrar la mejor estrategia. 12.4.2. Modelo de costo 12. no necesariamente óptima. Introducción 12. Optimización centralizada de consultas 12. predecir los costos de ejecución de diferentes alternativas para ejecutar la consulta. La salida de la capa de optimización global es una calendarización de una consulta optimizada en el álgebra relacional la cual indica el orden en que se ejecutan los operadores e incluye operaciones de comunicación sobre los fragmentos. En un proceso de optimización es necesario optimizar (minimizar o maximizar) una función objetivo. DEFINICIONES BÁSICAS Los conceptos involucrados en la optimización de consultas.2. La selección de la "mejor" estrategia requiere. Introducción La optimización global de consultas es la tercera etapa del procesamiento de consultas distribuidas. por lo general. al conjunto solución también se le .1. Definiciones básicas 12. Dada la forma en que trabajan los algoritmos de optimización. El objetivo de esta capa es hallar una estrategia de ejecución para la consulta cercana a la óptima. A este conjunto de posibles soluciones se le conoce como el conjunto solución.CAPITULO. en este caso la función de costo.1. El proceso de optimización selecciona el mejor miembro x de un conjunto que optimiza la función de costo. se revisarán brevemente.3. 12 OPTIMIZACIÓN GLOBAL DE CONSULTAS Estructura temática 12.

CPU y comunicación). Existen diversas técnicas para el desarrollo de algoritmos de búsqueda: búsqueda ávida. llamados de búsqueda. Ambas estrategias de optimización son diferentes. algoritmos genéticos. programación dinámica.conoce como el espacio de búsqueda. en las redes de área amplia (WAN). El costo total es la suma de todas sus componentes (I/O.3. en la función del tiempo de respuesta se trata de hacer tantas cosas en forma simultánea (paralela) como sea posible lo que puede conducir a un incremento en el tiempo total de ejecución de la consulta. El tiempo de respuesta es el tiempo transcurrido desde el inicio de la consulta hasta su terminación. Mientras que en la función de costo total se trata de reducir el costo de cada componente haciendo que éstas sean tan rápidas como sea posible. algoritmos heurísticos. búsqueda en profundidad y a lo ancho. se mueven de elemento a elemento en este espacio hasta encontrar una buena solución. recocido simulado. MODELO DE COSTO El costo de una estrategia de ejecución distribuida se puede expresar con respecto al costo total (tiempo de ejecución) o al tiempo de respuesta. 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 comunicación en donde. el costo de . de accesos costo de comunicación = (tiempo de iniciación + tiempo de transmisión) * no. 12. costo de CPU = costo de una instrucción * no. de mensajes cada factor puede tener pesos diferentes dependiendo del ambiente distribuido en el que se trabaje. Por ejemplo. de instrucciones costo de I/O = costo unitario de una operación de I/O a disco * no. mejoramiento iterativo. Los algoritmos.

por lo general. costo de CPU = costo de una instrucción * no. ignoran los costos de CPU y de I/O. por otro lado. En redes de área local (LAN). el costo de comunicación no es tan dominante. de instrucciones secuenciales costo de I/O = costo unitario de una operación de I/O a disco * no. Los costos de iniciación y transmisión de mensajes en una WAN son relativamente altos relativos a los tiempos de procesamiento local.comunicación domina dado que hay una velocidad de comunicación relativamente baja. de accesos secuenciales costo de comunicación = (tiempo de iniciación + tiempo de transmisión) * no. los algoritmos diseñados para trabajar en una WAN. Por otra parte. los canales están saturados y el trabajo adicional requerido por los protocolos de comunicación es considerable. Tiempo de Respuesta El tiempo de respuesta es el tiempo transcurrido desde el inicio de la consulta hasta su terminación y se puede expresar asi: Costo total = costo de I/O + costo de CPU + costo de comunicación en donde. de mensajes secuenciales . Así. un rango común entre el costo de comunicación y el costo de I/O es 20:1. así que se consideran los tres factores con pesos variables.

se revisará brevemente el esquema de optimización de INGRES. se revisará con mayor detenimiento el esquema de System R. por lo general. extensiones de técnicas para optimización centralizada. Por otra parte. Primero. el problema de optimización centralizada es mucho más simple que el problema distribuido. de acuerdo a algunas heurísticas. Las técnicas de optimización más populares se deben a dos sistemas de bases de datos relacionales: INGRES y System R. una consulta distribuida se transforma a varias consultas locales cada una de las cuales se procesa en forma centralizadas. Las dos fases generales del algoritmo son: Descompone cada consulta con múltiples variables en una secuencia de consultas con una sola variable común. System R utiliza un algoritmo estático basado en búsqueda exhaustiva. Algoritmo de INGRES INGRES usa un algoritmo de optimización dinámico que recursivamente divide una consulta en el cálculo relacional en piezas más pequeñas. No requiere información estadística de la base de datos. INGRES utiliza una técnica dinámica la cual es ejecutada por un intérprete. OPTIMIZACIÓN CENTRALIZADA DE CONSULTAS Se trabaja sobre el proceso de optimización de consultas para ambientes centralizados. Combina dos fases de la descomposición cálculo-álgebra relacional y optimización. Ambos sistemas tienen versiones para sistemas distribuidos pero sus técnicas difieren sustancialmente.12. Posteriormente. . Por un lado. las técnicas para optimización distribuida son. Finalmente. Segundo. un plan de ejecución inicial. Los sistemas más comerciales utilizan variantes de la búsqueda exhaustiva por su eficiencia y compatibilidad con la compilación de consultas.4. Procesa cada consulta mono-variable mediante un procesador de consultas de una variable el cual elige.

. V2. J WHERE E.Posteriormente..ENO AND G. ordena las operaciones de la consulta considerando los tamaños de las relaciones intermedias.. donde q? y q?? tienen una variable en común la cual es el resultado de q?. .JNO INTO JVAR FROM J WHERE JNAME = "CAD/CAM" q?: SELECT E. • La consulta q se descompone en q? ® q??.ENOMBRE . V2. Vn).ENOMBRE FROM E. G.. . ® qn donde qi usa el resultado de qi-1. • Se reemplaza el valor de cada tuplo con los valores actuales y se simplifica la consulta q( V1. 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. La primera parte se hace en tres pasos como se indica a continuación: • Reemplaza una consulta q con n variables en una seria de consultas q1 ® q2 ® .ENO = G... t1 Î R) Ejemplo.JNO AND JNAME = "CAD/CAM" q1 es reemplazada por q11 seguida de q? en donde JVAR es una relación intermedia.. Vn) ® (q?( t1. q11: SELECT J..JNO = J.

JVAR WHERE E.ENO INTO GVAR FROM G.FROM E.ENO AND G.ENOMBRE FROM E WHERE E.ENO Así.JNO q13: SELECT E.JNO = JVAR. Suponga que contiene únicamente dos tuplos: <E1> y <E2>.ENO = "E1" q132: SELECT E.ENO = G. La relación definida por la variable GVAR es sobre un solo atributo (ENO). Buscar la forma de como transformar q13. G.JNO La aplicación sucesiva de este paso a q? puede generar q12: SELECT G. q1 ha sido reducido a la secuencia de consultas q11 ® q12 ® q13.ENOMBRE FROM G. JVAR WHERE G.ENO = "E2" Algoritmo de System R System R una aplica una optimización de consultas estática basada en búsqueda exhaustiva del espacio solución. La consulta q11 es monovariable.JNO = JVAR.ENOMBRE FROM E WHERE E. La entrada del optimizador es un árbol del álgebra .ENO = GVAR. GVAR WHERE E. La sustitución de GVAR genera dos consultas de una sola variable: q131: SELECT E. las consultas q12 y q13 no son monovariables.

2. La salida es un plan de ejecución que implementa el árbol del álgebra relacional "óptimo". se determina el costo de cada ordenamiento y se elige aquel con el costo mínimo. . se queda solo con la de costo más bajo. Para limitar el costo de optimización. Las consultas simples se ejecutan de acuerdo al mejor camino de acceso (basada en un predicado de selección). El optimizador asigna un costo a cada árbol candidato y obtiene aquel con costo menor. en donde R tiene acceso primero usando el mejor método de acceso a una sola relación. el número de alternativas se reduce utilizando programación dinámica. Así. de manera que.relacional que resulta de una consulta en SQL. cada vez que aparecen productos Cartesianos se trata de eliminar la estrategia correspondiente. La información 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. Para la mayoría de las operaciones. se determinan todos los posibles ordenamientos de juntas. Para cada relación R. La estimación de tales costos (en tiempo de compilación) se basa en un modelo de costo que proporciona una fórmula de costo para cada operación de bajo nivel. Más aún. cuando dos juntas son equivalentes por Conmutatividad. El algoritmo de optimización consiste de dos grandes pasos: 1. El costo de una estrategia candidato es una combinación pesada de costos de I/O y CPU. El conjunto de estrategias alternativas se construye de forma dinámica. se estima el mejor ordenamiento de juntas. 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. esas fórmulas de costo se basan en las cardinalidades de los operandos.

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

Sign up to vote on this title
UsefulNot useful