UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración REPLICACION Y FRAGMENTACION “REPLICACION DE BASES DE DATOS DISTRIBUIDAS” MONOGRAFÍA Para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta: Alejandra Zavala Mendoza Asesor: Mtra. María Luisa Velasco Ramírez Xalapa-Enríquez, Enríquez, Veracruz Agosto 2010 1 2 UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración REPLICACION Y FRAGMENTACION “REPLICACION DE BASES DE DATOS DISTRIBUIDAS” MONOGRAFÍA Para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta: Alejandra Zavala Mendoza Asesor: Mtra. María Luisa Velasco Ramírez Xalapa-Enríquez, Enríquez, Veracruz Agosto 2010 3 AGRADECIMIENTOS Primero que nada quiero dedicar mi monografías a mis padres que son las personas que más amo, porque gracias a ellos he podido llegar a donde estoy por que sin su apoyo no hubiera podido lograr este gran sueño terminar mi carrera profesional. Gracias por todo su apoyo incondicional, comprensión y por estar siempre a mi lado los amooo mucho. También quiero agradecer a mis compañeros que durante estos cuatro años siempre me brindaron su amistad: Luisito, perrota, tachi, Jorge, Juan Ramón, increíble, etc. Los quiero mucho y los voy a extrañar demasiado. Por último también quiero agradecer a mis amigas que siempre han estado conmigo marinita, andri, mafer, talis las quiero mucho 4 INDICE Pág. Resumen…………………………………………………….………………………….1 Introducción………………………………………………….………………..............2 Contenido: Capitulo 1: Base de datos……………………………..….……………....................5 1.1.- Antecedentes de las bases de datos….............................................6 1.2.- Bases de datos………………………….……….………………………6 1.3.- Diseño de Bases de datos……………………….……………………..9 1.4.-Usuarios finales………....………………………….…….....................10 1.5 -Control de redundancia………………...………….……………………11 1.6.- Suministros de copias de seguridad y recuperación……………….12 1.7.-Lenguaje de SGBD……………………………………….……………..14 1.7.1.- Componentes del SGBD…………….…..……………….....17 1.8.- Utilidades del Sistema de Base de Datos…………………………18 Capitulo 2: Bases de Datos Distribuidas…………………………….…………….20 2.1.- Bases de Datos Distribuidas……………………...…………………..21 2.2.- Ventajas de las Bases de Datos Distribuidas……………………….22 2.3.- Desventajas de las bases de datos distribuidas……………………25 2.4.- Aplicaciones de las bases de datos distribuidas……………………26 2.5.- Funciones de las Bases de Datos Distribuidas……………………..27 II 2.6.- Técnicas de Fragmentación replicación y asignación de las Bases de Datos Distribuidas………………………………………………………………..29 2.6.1.- Fragmentación horizontal………………….........................30 2.6.2.- Fragmentación Vertical.………..........................................31 2.7.- Replicación y asignación de las Bases de Datos Distribuidas…….31 2.8.- Tipos de Bases de Datos Distribuidas……………………………….33 2.8.1.- Características de los Sistemas de Gestión de Bases de Datos Distribuidas……………………………………………………………………………35 2.9.- Procesamiento de consultas de Bases de Datos Distribuidas…….37 2.10.- Control de concurrencia y recuperación en Bases de datos distribuidas……………………………………………………………………………39 2.10.1.- Recuperación distribuida…………………………………………..43 2.11.- Arquitectura cliente servidor con bases de Datos Distribuidas….43 Capitulo 3: Replicación y Fragmentación de una Base de Datos Distribuida………..……………………………………………………………………47 3.1.- Replicación…………………..……………………………………........48 3.1.1.- Tipos de replicación……………………….…………………50 3.1.2.- Factores para la replicación…………….……….………….51 3.1.3.- Ventajas y Desventajas de la replicación………………….52 3.2.- Fragmentación de los datos…………………………………………..53 3.2.1.- Requerimientos de información…………………………….54 3.2.2.- Fragmentación Horizontal…………………………………...54 3.2.3.- Fragmentación Vertical......................................................56 III 3.2.4.- Fragmentación mixta……………………………...…………58 3.4.- Colocación de datos.....……………………………………...………..61 3.4.1.- Criterios para escoger la distribución….………...………...62 3.5.- Transparencia………………….……………………………………….63 Conclusión……………………………………………………………………….……65 Fuentes de Información………………………………………………………..……68 Índice de Tablas………………………………………………………………..…….70 Índice de Figuras………………………………………………………………..……71 IV RESUMEN El siguiente trabajo titulado “Replicación y fragmentación de Bases de Datos Distribuidas” principalmente está enfocado a la descripción de las bases de datos distribuidas, sus características, ventajas y sus usos. Esta investigación documental va dirigida a cualquier organización que cuente con la necesidad de almacenar información en bases de datos y poder manipular dicha información desde cualquier punto que lo desee gracias las bases de datos distribuidas, mismos que por medio de una red de comunicación, pueden acceder a la información de una forma rápida y eficiente. El trabajo se centra en considerar la importancia de tener replicada una base de datos, los grandes beneficios que esta proporciona, y las ventajas competitivas que esta proporciona. 1 INTRODUCCION 2 Los almacenamientos de datos son un elemento fundamental para las empresas por ello ha llamado la atención de estas ya que en la actualidad cualquier compañía por pequeña que sea tiene que manejar grandes cantidades de información, para poder tener control sobre todas las áreas de su empresa, es por ello que surge la necesidad de emplear bases de datos dentro de las organizaciones, no importando el giro de las empresas. Por lo cual, se le denomina “Base de Datos” a la colección de datos aparentes usados por el sistema de aplicaciones de una determinada empresa. La mayoría de las empresas necesitan contar con bases de datos ya que las bases de datos facilitan la realización de sus actividades, garantiza la seguridad, la confiabilidad de la información, consistencia de los datos, mejora en la disponibilidad de información, guarda información sobres sus clientes, proveedores, información financiera, inventarios, compras, ventas etc. Si contamos con un buen control de la información se podrá llevar una empresa de mejor manejar y mas organizadamente La gran cantidad de información que producen grandes empresas geográficamente distribuidas, ha generado una gran dispersión de los datos asociados a sus sistemas de información. Para compartir dichos datos se requiere de tecnología capaz de integrarlos para permitir el acceso concurrente de múltiples usuarios. Una de las tecnologías que se propone alcanzar este tipo de objetivos son las bases de datos distribuidas Las bases de datos distribuidas mejoran la disponibilidad de los datos pues permite que el sistema pueda seguir operando y los usuarios desde cualquier sitio puedan acceder a la información, exactamente igual como si los datos estuvieran en el mismo sitio del usuario. 3 Las bases de datos distribuidas se conectan por medio de redes de computadoras, estas pueden tener cientos de usuarios conectados concurrentemente, por lo cual es un problema en muchas empresas que compiten en los mercados mundiales. Debido al alto grado de conectividad que provee Internet a las empresas, se debe tener un buen diseño de replicación y fragmentación. Este problema consiste en tratar de determinar la mejor forma de dividir relaciones de la base de datos en fragmentos. las La fragmentación mejora la disponibilidad de la información notablemente por que el sistema puede seguir operando mientras, por lo menos, uno de los sitios esta activo, con la replicación también se mejora el rendimiento de la recuperación en consultas globales, por que el resultado de semejante consulta se puede obtener localmente en cualquier sitio, esto ayuda a contar con la información necesaria de una forma más fácil y rápida y hoy en día para las empresas contra con la información en un corto tiempo es un factor clave para la toma de decisiones oportunas. 4 Capitulo 1: Bases de Datos. 5 Las bases de datos, hoy en día, ocupan un lugar determinante en cualquier área ya que se emplea en diversas empresas no importando el giro de esta, es por ello que deben de tener los conocimientos necesarios para poder utilizar las bases de datos .En este capítulo se hablará de las bases de datos, algunas de sus ventajas, características, además de cuales son algunas de sus principales características, componentes, su diseño, etc. 1.1.- Antecedentes de las bases de datos. Según Coronel, Carlos. (2004) históricamente las primeras aplicaciones de computadora se concentraron en tareas de oficina: en procedimientos de entradas o pedidos o cambios, nominas, planificación del trabajo, etc. Tales aplicaciones tenían acceso a datos guardados en archivos de computadora. Se solicitaba información ¿Cuántos productos fueron vendidos por quien y a quien?; y se generaban reportes para transformar los datos a información útil para las decisiones de la gerencia. 1.2.- Bases de datos Siguiendo con Coronel, Carlos Bases de datos: es una colección de datos relacionados. Por datos: se entiende hechos conocidos que pueden registrarse y que tienen un significado implícito. Po ejemplo, considérese los nombres, números de teléfono y direcciones de gente que usted conoce. Usted podría registrar dichos datos en un libro de direcciones, utilizando una computadora personal y un software como ACCESSO EXCEL. Este es una colección de datos relacionados con un significado implícito y por tanto es una base de datos. Se suelen utilizar sistemas de archivos, que son muchos archivos separados y no relacionados, las bases de datos se componen de datos lógicamente relacionados 6 guardados en un solo reposito de datos. Como se muestra en la figura 1.1 las bases de datos brindan grandes ventajas Figura 1.1 Comparación de una base de datos y un sistema archivos. Una base de datos puede tener cualquier tamaño y complejidad. Por ejemplo, la lista de nombres y direcciones mencionada, puede constar de unos pocos cientos de registros, cada uno con una estructura sencilla. Una base de datos puede crearse manualmente o puede estar informatizada. 7 Una base de datos informatizada puede crearse y mantenerse bien mediante un conjunto de programas de aplicación diseñados específicamente pata dicha tarea o bien mediante un sistema de gestión bases de datos. Un sistema de gestión de bases de datos: (data management system o DBMS) es una colección de programas que permiten a los usuarios crear y mantener una base de datos. El SGBD es por tanto un sistema software de propósito general que facilita los procesos de definición, construcción y manipulación de base de datos para distintas aplicaciones. Las definición de una base de datos consiste en especificar los tipos de datos, las estructuras y restricciones para los datos que se van a almacenar en dicha base. La construcción de una base de datos es el proceso de almacenar los datos concretos sobre algún medio de almacenamiento controlado por el SGBD. La manipulación de la base de datos incluye funciones tales como consultar la base de datos para recuperar unos datos específicos, actualizar la base de datos para reflejar los cambios ocurridos en el mini mundo, y generar informes a partir de los datos. No es preciso utilizar software de SGBD de propósito general para implementar una base de datos informatizada. Se codifica un conjunto de programas para crear y mantener la base de datos, es decir, crear software de SGBD de propósito especifico, en cualquier caso, se use usemos o no un SGBD de propósito general, normalmente se emplea gran cantidad de software para manipular la base de datos. Se Denomina sistemas de base de datos al conjunto formado por la base de datos más el SGBD. La figura 1.2 ejemplifica un SGBD. 8 Figura 1.2 Muestra un entorno de sistema de base de datos simplificado, que ilustra los conceptos y terminología de un Sistema de Base de datos. 1.3.- Diseño de bases de datos Según RAMEZ, Elmasri. (2006), Los diseños de bases de datos se encargan de identificar los datos que se almacenan en la base de datos y de elegir las estructuras apropiadas para presentar y almacenar dichos datos. Por lo general, estas tareas se realizan antes de que se implemente la base de datos y se carguen los datos. Los diseñadores tiene la responsabilidad de comunicarse con toso los futuros usuarios de la base de datos con el fin de comprender sus necesidades, y de presentar un diseño que satisfaga esos requerimientos. En 9 muchos casos los diseñadores forman parte del personal de ABD (Administrador de bases de datos) y tal vez asuman otras responsabilidades una vez terminado el diseño de la base de datos. Casi siempre, los diseñadores interactúan con cada uno de los grupos de usuarios potenciales y desarrollan una vista de la base de datos que satisfaga los requerimientos de datos y de procesamiento de cada grupo, después, se analizan las vistas y se integran con las de otros grupos de usuarios. El diseño final debe ser capaz de satisfacer las necesidades de todos los grupos. 1.4.- Usuarios finales Continuando con RAMEZ, Elmasri. (2006)., Los usuarios finales son las personas cuyo trabajo requiere acceder a la base de datos para consultarla, actualizarla y generar informes; las base de datos existe principalmente para que ellos la utilicen. • Los usuarios finales ocasionales: acceden de vez en cuando a la base de datos, pero es posible que requieran información diferente en cada ocasión. Utilizan un lenguaje de consulta de base de datos avanzado para especifica sus solicitudes y suelen ser gerentes de nivel medio o alto u otras personas que examinan la base de datos ocasionalmente • Los usuarios finales simples o paramétricos: construyen una porción apreciable de la totalidad de los usuarios finales. La función principal de su trabajo gira en torno a consultas y actualizaciones constantes de la base de datos, utilizando tipos estándar de consulta y actualizaciones, transacciones programadas, que se han programado y probado con mucho cuidado. Las tareas realizadas dichos usuarios son variadas: Los cajeros de los bancos revisan los saldos y realizan los reintegros y depósitos de dinero. 10 Los encargados de reservas de líneas aéreas, hoteles y compañías de alquiler de automóviles revisan la disponibilidad para una solicitud presentada y realizan las reservas. Los usuarios finales avanzados: pueden ser los ingenieros, científicos, analistas de negocios y otros, que están suficientemente familiarizados con los recursos de SGBD como para implementar sus aplicaciones de forma que cumplan sus complejos requerimientos. Los usuarios autónomos: mantienen bases de datos personales mediante la utilización de paquetes de programas comerciales que cuentan con interfaces de fácil uso, basados en menús o en gráficos. Un ejemplo es el usuario de un paquete fiscal que almacena diversos datos financieros personales para fines fiscales Normalmente los SGBD proporcionan múltiples recursos para acceder a la base de datos. Los usuarios finales simples necesitan aprender pocas cosas sobre los recursos proporcionados por el SGBD; solo necesitan entender los tipos de transacciones estándar diseñadas e implementadas para que ellos las usen los usuarios ocasionales aprender únicamente unos pocos recursos que pueden utilizar de forma repetida. Los usuarios avanzados intentan conocer la mayoría de los recursos del SGBD para satisfacer sus complejos requerimientos. Los usuarios autónomos normalmente adquieren gran habilidad para utilizar un paquete de software específico 1.5.- Control de redundancias La redundancia: es el almacenamiento de los mismos datos varias veces, provoca varios problemas. En primer lugar, es necesario realizar una misma actualización lógica (como introducir los datos de un nuevo alumno varias veces: una vez por cada fichero en el que se registren los datos de alumnos. Esto implica una duplicación del trabajo. En segundo lugar se desperdicia espacio de almacenamiento al guardar los mismos datos en varios sitios, y este problema puede ser grave si las bases de datos son grandes. En tercer lugar, es posible 11 que los ficheros que representan los mismos datos, se vuelvan inconsistentes. Esto puede suceder porque una actualización se haya aplicado a ciertos ficheros pero no a otros. Restricción de los accesos no autorizados Cuando muchos usuarios comprante una misma base de datos, es probable que no todos tengan la autorización para acceder a toda la información que contiene. Por ejemplo es habitual considerar que los datos financieros son confidenciales y que solo ciertas personas pueden tener autorización para acceder a lo mismo. Además, es posible que solo algunos usuarios tengan permiso para recuperar datos, mientras que a otros se les permita obtenerlos y actualizarlos por tanto, también es preciso controlar los tipos de acceso( recuperación o actualización). Normalmente a los usuarios o grupos de usuarios se le asigna números de cuenta protegidos, con contraseñas que sirven para detener accesos a la base de datos. EL SGBD (Sistema de gestión de base de datos), debe contar con un sistema de seguridad y autorización que le permita al ABD crear cuentas y especificar restricciones para ellas. El SGBD deberá entonces garantizar automáticamente el cumplimiento de dichas restricciones. Cabe señalar que el mismo tipo de controles se puede aplicar al software que SGBD por ejemplo, solo el personal del ABD tendrá autorización para utilizar ciertos software privilegiados como el que sirve para crear cuentas nuevas. De manera similar podemos hacer que los usuarios paramétricos solo puedan tener acceso a la base de datos a través de las transacciones programadas que expresamente fueron creadas para ellos. 1.6.- Suministros de copias de seguridad y recuperación Todo SGBD debe contar con recursos para recuperarse de fallos de hardware o de software. El sistema de copias de seguridad (Backus) y recuperación del SGBD es el responsable de llevar a cabo dicha recuperación por ejemplo si el sistema falla mientras se está ejecutando un complejo programa de actualización el subsistema de recuperación se encargara de asegurarse de que la base de datos se restaure al estado en que estaba antes de comenzar la ejecución de dicho 12 programas, con alternativa el subsistema de recuperación puede asegurarse de que el programa reanude sus ejecución en el punto en que fue interrumpido de modo que su efecto complejo se registre en la base de datos Arquitectura de tres esquemas de un SGBD El objetivo de la arquitectura de tres esquemas es separar las aplicaciones del usuario y la base de datos física. En esta arquitectura se definen esquemas de los tres siguientes niveles: 1.- El nivel interno: tiene un esquema interno que describe la estructura física de almacenamiento de la base de datos. El esquema interno emplea un modelos de datos físicos y describe todos los detalles para su almacenamiento, así como los caminos de acceso para la base de datos 2.- El nivel conceptual: el nivel conceptual tiene un esquema conceptual que describe la estructura de la base de datos completa para una comunidad de usuarios. El esquema conceptual oculta los detalles de las estructuras físicas de almacenamiento y se concentra en describir entidades, tipos de datos, vínculos, operaciones de los usuarios y restricciones. En este nivel podemos usar un modelo de datos o uno de implementación. 3.- El nivel externos o de vistas: incluyen varios esquemas externos o vistas de usuarios. Cada esquema externo describe de la base de datos que interesa a un grupo de usuarios determinado, y oculta a ese grupo el resto de la base de datos. En este nivel podemos usar un modelo de datos de alto nivel o uno de implementación. La estructura de tres esquemas es una herramienta adecuada para que el usuario visualice los niveles de esquema de un sistema de base de datos. La mayoría de los SGBD no separan los tres niveles completamente pero en algunos de ellos se soporta, en cierta médica la arquitectura de tres esquemas. Algunos SGBD incluyen detalles del nivel físico en el esquema conceptual. En casi todos los SGBD se manejan vistas de usuarios, los esquemas externos se especifican en el 13 mismo modelos de datos que describe la información del nivel conceptual. Con algunos SGBD es posible utilizar diferentes modelos de datos en los niveles conceptual y externo. Cabe señalar que los tres esquemas son más que descripciones de los datos; los últimos datos que existen realmente están en el nivel físico. En un SGBD basado en la base de arquitectura de tres esquemas cada grupo de usuarios hace referencia exclusivamente su propio esquema externo, por lo tanto, el SGBD debe transformar una solicitud expresada en términos de un esquema externo en una solicitud expresada en términos del esquema conceptual y luego de una solicitud en el esquema interno que se procesara sobre la base de datos almacenada. Si la solicitud es una obtención de datos será preciso modificar el formato de información extraída de la base de datos almacenada para que coincida con la vista externa del usuario. El proceso de transformar solicitudes y resultados de un nivel a otro se denomina correspondencia o transformación. Esta correspondencia puede requerir bastante tiempo por lo que algunos SGBD no soportan vistas externas. Sin embargo, incluso de tales sistemas es preciso realizar algunas correspondencias para transformar solicitudes entre los niveles conceptual o interno 1.7.- Lenguaje del SGBD Silberschatz, Abraham. (2006). Una vez que se ha completado el diseño de una base de datos y se ha elegido un SGBD para su implementación el primer paso será identificar los esquemas conceptual o interno de la base de datos y cualquier correspondencia existente entre ambos. El muchos SGBD en los que no se mantienen una separación estricta de niveles, el ABD y los diseñadores de la base de datos utilizan un mismo lenguaje; el lenguaje de definición de datos (LDD), para definir ambos esquemas el SGBD contara con un compilador de LDD cuya función podrá procesar las sentencias escritas en el LDD para identificar las descripciones de los elementos de los esquemas y almacenar la descripción del esquema el catalogo del SGBD. Cuando los SGBD se mantengan una clara separación entre 14 los niveles conceptual o externo el LDD servirá solamente para especificar el esquema conceptual. Para especificar el esquema interno, se utiliza otro lenguaje, el lenguaje de definición de almacenamiento LDA las correspondencias entre los esquemas se pueden especificar en cualquiera de los dos lenguajes. Para una verdadera arquitectura de los tres esquemas, necesitamos un tercer lenguaje, el lenguaje de definición de vistas LDV, para especifica las vistas de usuario y sus correspondencias con el esquema conceptual. Sin embargo, en la mayoría de los SGBD el LDD se utiliza tanto como para describir el esquema conceptual como el externo. Una vez que se han cumplido los esquemas de la base de datos y que en esta se han introducido los datos; los usuarios requieran algún mecanismo para manipularla. Las operaciones de manipulación más comunes son la recuperación, inserción, la eliminación y la modificación de los datos. El SGBD ofrece un lenguaje de manipulación de datos LMD para estos fines. En los actuales SGBD, los tipos de lenguaje mencionados no se consideran lenguajes diferentes más bien, se utilizan un amplio lenguaje integrado que cuenta con elementos, para definir esquemas conceptuales, definir vistas, manipular datos y definir su almacenamiento. La definición de almacenamiento normalmente se mantiene separada puesto que se utiliza para definir las estructuras físicas de almacenamiento para armonizar la ejecución del sistema de bases de datos y normalmente se utiliza por el personal de administración de la base de datos. Un ejemplo representativo es el lenguaje de bases de datos relacionales SQL que representa una combinación de LDD, LDV, LMD así como sentencia para especificación de restricciones y evolución del esquema. El LDA fue componente de las primeras versiones del SQL, pero se ha retirado del lenguaje para mantenerlos solo a nivel conceptual y externo. Hay dos tipos principales de LMD, los LMD de alto nivel o de no procedimiento se pueden utilizar de manera independiente para especificar operaciones complejas 15 de base de datos en forma concisa en muchos SGBD, es posible introducir interactivamente instrucciones de LMD de alto nivel desde un terminal o desde un terminal o bien embebidas en un lenguaje de programación de propósito general. En el segundo caso es preciso identificar las sentencias del LMD dentro del programa para que le pre compilador pueda extraerlas, y SGBD procesarlas. Los LMD de bajo nivel o de procedimientos deben estar embebidos en un lenguaje de programación de propósito general. En general, estos tipos de LMD recuperan registros u objetos individuales de la base de datos y los procesa por separado. Por tanto, necesita utilizar elementos del lenguaje de programación, como los bucles para recupera y procesar cada registro individual de un conjunto de registros. Por esta razón los MLD de bajo nivel, se conocen también como LMD de registro por registro u orientados a registro los LMD de alto nivel, como SQL pueden especificar y recuperar muchos registros con una sola instrucción de LMD por eso se le llama LMD conjunto por conjunto u orientado a conjuntos. Las consultad de los LMD de alto nivel suelen especificar que datos ahí que obtener y como obtenerlos por ello tales lenguajes se denominan también declarativos. Siempre que las instrucciones de un LMD sean de alto o de bajo nivel, estén embebidas en un lenguaje de programación de propósito general, a ese nivel se le denomina lenguaje anfitrión al MLD sub lenguaje de datos. Por otro lado los LMD de alto nivel utilizados en forma interactiva e independiente se denominan lenguajes de consulta, en general tanto las instrucciones de recuperación o de la actualización de datos del LMD de alto nivel se pueden utilizar interactivamente, así que se consideran parte de una lenguaje de consulta. Normalmente los usuarios finales ocasionales utilizan un lenguaje de consulta de alto nivel para especificar sus solicitudes, mientras que los programadores utilizan el MLD en su forma embebida. Para los usuarios simples y paramétricos casi siempre se incluyen interfaces amigables con el usuario que permiten interactuar con la base de datos; estos también pueden aprovechar los usuarios ocasionales que no deseen aprender los detalles de un lenguaje de consulta de alto nivel. 16 1.7.1- Componentes del SGBD Continuando con RAMEZ, Elmasri. (2006). La base de datos y el catálogo del SGBD casi siempre se almacenan en el disco el acceso al disco suele controlarlo principalmente el sistema operativo que planifica la entrada y salida del disco. Un modulo gestor de datos almacenados del SGBD de más alto nivel controla el accedo a la información el SGBD almacenada en el disco bien sea aparte de la base de datos o del catalogo. El gestor de datos almacenados puede emplear servicios básicos del Sistema operativo para transferir los datos de bajo nivel entre el disco y la memoria principal del computador, pero controla los aspectos de la transferencia de datos, como el manejo de los buffers de la memoria principal. Una vez que los datos estén en dichos bufes fe la memoria principal podrán ser procesados por otros módulos del SGBD o por los programas de aplicación. El compilador de LDD procesa las definiciones de esquemas especificadas en el LDD y almacena las descripciones de los esquemas (metadatos) en el catalogo del SGBD. El catalogo contiene información como los nombres de los ficheros y de los elementos de datos los detalles de almacenamiento de cada fichero la información que corresponde entre los esquemas y las restricciones, además de otros tipos de información que es necesaria para los módulos del SGBD. Los módulos del SGBD que necesitan conocer esa información deberán consultar el catalogo El procesador de base de datos en tiempo de ejecución se encarga de los acceso a la misma durante la ejecución; revive operaciones de obtención o de actualización y las ejecuta sobre la base de datos. El acceso al disco se tiene mediante el gestor de datos almacenados. El recopilador de consultas maneja las consultas de alto nivel que se introducen interactiva, ente analiza las sintaxis y compila la consulta o la interpreta creando el código de acceso la base de datos y luego genera llamadas al procesador en tiempo de para ejecutar dicho cogido. 17 El precompilador extrae instrucciones el MLD de un programa de aplicación escrito en un lenguaje de programación anfitrión. Estas instrucciones se envían al compilador de MLD para convertirlas en código objeto para el acceso de la base de datos, y el resto del programa se envía al compilador del lenguaje anfitrión el código objeto de las instrucciones LMD y el del resto del programa se enlazan, formando una transacción programada cuyo código ejecutable incluye llamadas al procesador de la base de datos durante el tiempo de ejecución El SGBD también se comunica con los compiladores de los lenguajes de programación anfitriones de propósito general, puede ofrecer interfaces amigables con el usuario como ayuda a cualquiera de los tipos de usuarios 1.8.- Utilidades del Sistema de Base de Datos Además de los modelos de software que se acaban de describir, casi todos los SGBD cuentan con utilidades de base de datos que ayudan al ABD a destinar el sistema. Las utilidades comunes efectúan los siguientes tipos de funciones: 1.- Carga: se utiliza para cargar ficheros de datos ya existentes (como ficheros de texto o secuenciales) en la base de datos. Normalmente a la utilidad se le especifica el formato actual del fichero de datos (fuente) y la estructura de fichero en la base de datos deseada (destino). La utilidad modifica automáticamente el formato de los datos y los almacena en la base de datos. Con la proliferación de los SGBD, la transferencia de datos de un SGBD a otro se ha vuelto algo común en muchas organizaciones. Algunos proveedores actualmente ofrecen productos que generan los programas de carga apropiados, de acuerdo con las descripciones de almacenamiento de las bases de datos fuente y destino (esquemas internos). Tales herramientas también se denominan herramientas de conversión. 2.- Copia de seguridad backup: las utilidades de respaldo crean una copia de seguridad de la base de datos, casi siempre volcando toda la base de datos en 18 cinta. La copia de seguridad puede servir para restaurar la base de datos en caso de un fallo catastrófico. También se suelen usar copias de seguridad en niveles, donde solo se registran los cambios habidos desde la anterior copia de seguridad. La copia de seguridad ahora es más compleja, pero se ahorra espacio. 3.- Reorganización de ficheros: esta utilidad puede servir para pasar de una organización de los ficheros de la base de datos a otra con el fin de mejorar el rendimiento 4.- Control de rendimiento: las utilidades de este tipo supervisan la utilización de la base de datos y proporcionan datos estadísticos al ABD, el cual los utilizan para decidir, por ejemplo, si conviene reorganizar los ficheros con el fin de mejorar el rendimiento En este primer capítulo se explico que son las bases de datos, cómo funcionan y la importancia de contar con una base de datos dentro de una organización. Existen diversos tipos de bases de datos pero las bases de datos que actualmente mas se demandan gracias a sus grandes ventajas competitivas son las bases de datos distribuidas las cuales abordaremos en el siguiente capítulo. 19 Capitulo 2: Bases de Datos Distribuidas. 20 En el actual capitulo se darán a conocer en qué consisten las bases de datos distribuidas sus principales características así como sus ventajas, principales funciones, tipos de bases de datos distribuidas, etc. En este capítulo se explicara la razón por la que tales bases de datos están llegando a ser cada vez más importantes, así como algunos de los problemas que se generan. Las bases de datos distribuidas son una colección de sitios, conectados por medio de una red de comunicación, los sitios trabajan juntos, a fin de que un usuario de cualquier sitio puede acceder a los datos desde cualquier logar de la red, exactamente como si los datos estuvieran guardados en el propio sitio del usuario, es por ello que cada día más empresas están implementando bases de datos distribuidas para tener acceso a su base de datos desde cualquier sitio que desee. 2.1.- Bases de datos distribuidas Según RAMEZ, Elmasri. (2006). Las bases de datos distribuidas aportan las ventajas de la computación distribuida al dominio de las bases de datos. Un sistema de computación distribuido consiste en un conjunto de elementos de procesamiento, no necesariamente homogéneos que están interconectados por una red de computadoras y que cooperan con la ejecución de ciertas tareas asignadas. Como objetivo general los sistemas de computación distribuidos dividen un problema grande e inmanejable en piezas más pequeñas y lo resuelven eficientemente de forma coordinada. La viabilidad económica de este enfoque proviene de dos razones: 1.- Se aprovecha mas la potencia del ordenador para resolver tareas complejas, y cada electo del procesamiento autónomo se puede resignar independientemente y puede desarrollar sus propias aplicaciones. 21 2.-Definir una base de dato distribuida BDD como una colección de múltiples bases de datos interrelacionadas lógicamente, distribuidas por una red de computadores y un sistema de gestión de bases de datos distribuido ( SGBD) como un sistema software que maneja una base de datos distribuida haciendo la distribución transparente para el usuario. Una colección de ficheros almacenados en diferentes nodos de una red y el mantenimiento de interrelaciones entre ellos por medio de hipervínculos se ha convertido en una organización común en internet, con los ficheros de la página web. Las funciones usuales de la gestión de bases de datos, incluyendo el procesamiento uniforme de consultas y el procedimiento de transacciones, no se aplican todavía a este entorno. Las tecnología, sin embargo se está moviendo en una dirección tal que las bases de datos Word Wide Web (www) distribuidas se harán realizad en un futuro cercano 2.2.- Ventajas de las bases de datos distribuidas La gestión de bases de datos distribuidas se ha propuesto por varias razones yendo estas desde la descentralización organizacional y procesamiento económico hasta la gran autonomía. 1.-Gestión de datos distribuidos con diferentes niveles de transparencia: idealmente un SGBD deberá ofrecer transparencia de distribución en el sentido que debería ocultar los detalles de donde se almacenan físicamente cada fichero (tabla, relación) dentro el sistema. Otras ventajas de las bases de datos distribuidas son: • Transparencia de red o de distribución, hace referencia a la liberación del usuario de los detalles operacionales de la red. Se podrá dividir la transparencia de localización y transparencia de los nombres. Las transparencia de localización se refiere al hecho de que la instrucción usada para ejecutar una tarea, es independiente de la localización del dato y de la localización el sistema donde la instrucción fue utilizada. La transparencia de nombres implica que una vez especificado un nombre se 22 puede acceder de manera no ambigua a los objetos con nombre sin ninguna especificación adicional. • Transparencia de replica: las copias de los datos se deben almacenar en varios sitios para mejorar la disponibilidad, rendimiento, y fiabilidad. La transparencia de replica hace que el usuario desconozca la existencia de copias. • Transparencia de fragmentación: son posibles dos tipos de fragmentación, la fragmentación horizontal distribuye una relación en conjunto de tuplas (filas) la fragmentación distribuye una relación en sub relaciones donde cada sub relación se define por un conjunto de columnas de la relación original. La consulta global del usuario se debe transformar en varias consultas sobre fragmentos. La transparencia de fragmentación hace que el usuario desconozca la existencia del fragmento. 2.- Incremento de la fiabilidad y disponibilidad; estas dos ventajas son de las más comunes para las bases de datos distribuidas. La fiabilidad se define claramente como la probabilidad de que un sistema este en marcha no caído en un punto de tiempo determinado, mientras que la disponibilidad es la probabilidad de que en sistema esté disponible continuamente durante un intervalo de tiempo. Cuando los datos y el software del SGBD están distribuidos por varios sitios un sitio puede fallar mientras otros continúan operando. Solamente son inaccesibles los datos y el software del sitio que ha fallado. Esto mejora tanto la fiabilidad y la disponibilidad. Si se replica acertadamente tanto los datos como el software en más de un sitio se consiguen grandes mejoras en un sistema centralizado. Un fallo en un único sitio hace al sistema inaccesible para todos los usuarios una base de datos distribuida, algunos de los datos podrían ser inalcanzables pero los usuarios podrán aun acceder a otra parte de la base de datos. 3.- Mejora del rendimiento: un SGBD distribuido fragmenta la base de datos manteniendo los datos cerca de donde más se necesita. La localización de datos reduce la contención para la CPU y los servicios de es y simultáneamente reduce 23 los retrasos de acceso involucrados en redes de área ancha. Cuando se distribuye una gran base de datos con múltiples sitios ahí bases de datos más pequeñas en cada sitio. Como resultado las consultas locales y las transacciones que accede a datos de un único sitio, tienen mejor rendimiento por que las bases de datos locales son más pequeñas. Además cada sitio tiene un menor número de transacciones ejecutándose que si todas las transacciones refirieren a una base de datos centralizada. Además de un paralelismo interconsulta, puede conseguirse ejecutando varias consultas en sitios diferentes o descomponiendo una consulta en sub consultas, que pueden ejecutarse en paralelo. Esto contribuye a mejorar el rendimiento. 4. Expansión más sencillas en un entorno distribuido, la expansión del sistema mediante la adición de datos, el aumento del tamaño de la base de datos, o la adición de más procesadores es mucho más sencillos. La transparencia total permite ver al usuario global la vista completa del SBDD como si fuese el único sistema centralizado. La transparencia se proporciona como un complemento a la autonomía, que proporciona al usuario un control más estrecho sobre sus propias bases de datos locales. Las características de la transparencia se deben implementar como parte del lenguaje del usuario que traduce los servicios requeridos en operaciones apropiadas. Además la transparencia afectada a las características que debe proporcionar un sistema operativo y el SGBD 5. Costo de operaciones reducidas ya que es mucho más barato agregar estaciones a una red que actualizar un sistema mainframe. El costo de las lineas de comunicación de datos dedicadas y el software de mainframe se reduce proporcionalmente. El trabajo de desarrollo se realiza con más rapidez y menor costo con computadoras personales baratas que con mainframes. De hecho la mayoría de las corporaciones prohíben el trabajo desarrollo de mainframes, las 24 mainframes no están condenadas a desaparecer de la escena de la base de datos; su poder no puede ser descontado. No obstante de redes de computadoras personales hace posible distribuir las cargas de trabajo con más prudencia y reservar las costosas mainframe para tareas de procesamiento mas especializadas. 6. Facilidad de crecimiento, ya que se pueden agregar sitios nuevos a la red sin afectar las operaciones de otros sitios, tal flexibilidad permite que la compañía se expanda con relativa facilidad y rapidez. 7. Interface de usuario fácil de usar, las computadoras personales y las estaciones de trabajo en general, vienen equipadas con una interfaz de usuario grafica, esto simplifica el uso y el entrenamiento de usuarios finales. 8.- Independencia del procesador: el usuario final es capaz de accesar cualquier copia disponible de los datos, y la solicitud de un usuario es procesada por cualquier procesador disponible en la ubicación de los datos. En otras palabras, las solicitudes no dependen de un procesador especifico; cualquier procesador disponible puede manejar dicha solicitud. 2.3.- Desventajas de las bases de datos distribuidas Según Coronel, Carlos. (2004), Las bases de datos distribuidas están sujetas a algunos problemas. Estos incluyen • Complejidad de manejo y control: el manejo de datos distribuidos es más complejo que el de datos centralizados. Las aplicaciones deben reconocer la ubicación de los datos y ser capaces de reunir los datos de diferentes sitios. Los administradores de las bases de datos deben tener la capacidad de coordinar las actividades para evitar la degradación de estas provocada por anomalías de los datos. El manejo de transacciones, el control de concurrencia, la seguridad, el respaldo, la 25 recuperación, la optimización de las consultas, la selección de la ruta de acceso , etc. Deben abordarse y resolverse. En suma, mantener los diversos componentes de bases de datos distribuidas sincronizados es una tarea difícil • Seguridad: la probabilidad de fallas de seguridad se incrementa cuando los datos están en varios sitios. La responsabilidad del manejo de los datos se reparte entre diferentes personas en varios sitios y las redes de área local no disponen de la compleja seguridad de las instalaciones mainframe centralizadas. • Falla de estándares: aunque las bases de datos dependen de la comunicación eficaz, no existen protocolos de comunicación estándar a nivel de base de datos ( aunque TCP/ IP es el estándar de hecho a nivel de red, a nivel de aplicación no existe un estándar). En realidad, existen pocos estándares oficiales en cualquiera de los protocolos de base de datos distribuidas, ya sea que se ocupen de la comunicación o del control de acceso a los datos • Requerimientos de almacenamiento incrementados: la base de datos distribuida guarda varias copias de los datos requeridos en diferentes sitios, con lo que se requiere más espacio de almacenamiento de disco. Esta desventaja es mínima, por que el espacio de almacenamiento en disco es relativamente barato y cada vez se abarata mas • Mayor dificultad en el ambiente de datos. El acceso y almacenamiento en disco es un ambiente de almacenamiento de datos más disperso, se vuelve mas difícil tanto desde la perspectiva del software como de la humana • Alto costo de entrenamiento: los costos de entrenamiento en general son más elevados en un modelo distribuido de lo que sería en un modelo centralizado, incluso, en ocasiones al grado de neutralizar el ahorro de operativo y de hardware 2.4 Aplicaciones de las bases de datos distribuidas 26 Los ambientes en los que se encuentra con mayor frecuencia el uso de las bases de datos distribuidas son: • Cualquier organización que tiene una estructura descentralizada. • Casos típicos de lo anterior son: organismos gubernamentales y/o de servicio público. • La industria de la manufactura, particularmente, aquella con plantas múltiples. Por ejemplo, la industria automotriz. • Aplicaciones de control y comando militar. • Líneas de transportación aérea. • Cadenas hoteleras. • Servicios bancarios y financieros 2.5.- Funciones de las bases de datos distribuidas La distribución conlleva un incremento de la complejidad en el diseño e implementación del sistema. Para conseguir las ventajas potenciales enumeradas previamente, el software de SGBD debe poder proporcionar las siguientes funciones además de las proporcionadas por los SGBD centralizados: • Mantenimiento de la pista de los datos: la capacidad para seguir la pista a la distribución de datos, la fragmentación y la réplica expandiendo el catalogo del SGBDD. • Procesamiento de consultas distribuidas: la capacidad para acceder a sitios remotos y transmitir consultas y datos a través de varios sitios utilizando una red de comunicación • Gestión de transacciones distribuidas; la capacidad para ejecutar estrategias de ejecución para consultas y transacciones que acceden a los datos desde más de un sitio y de sincronizar el acceso de datos distribuidos y mantener integridad sobre todo la base de datos • Gestión de datos replicados: la capacidad de decidir a qué copia de un elemento de datos replicados acceder y mantener la consistencia de copias de los elementos de datos replicados. 27 • Recuperación de bases de datos distribuida la capacidad de recuperarse de caídas de sitios individuales y de nuevo tipos de fallos como enlace de comunicación • Seguridad: las transacciones distribuidas se debe ejecutar con una gestión apropiada y de seguridad de datos, y los privilegios de autorización / acceso de los usuarios • Gestión del directorio (catalogo) distribuido: un directorio contiene información (metadatos) de los datos de la base de datos. El directorio debe ser global para toda la BDD o local para cada sitio. Las asignación y distribución del directorio son temas de políticas y diseño Esta función incrementa la complejidad de un SGBD respecto a un SGBD centralizado. Antes de comprender todas las ventajas potenciales de la distribución podemos encontrar soluciones satisfactorias a estos temas y problemas de diseño. Incluir todas estas funcionalidades adicionales es muy difícil de llevar acabo y encontrar soluciones óptimas lo es aun más. En un nivel físico de hardware un sistema centralizado se distingue del un SGBDD por los siguientes factores principales: • Existen varios computadores, llamados sitios o nodos • Estos sitios se deben conectar a algún tipo de red de comunicación para transmitir datos e instrucciones a lo largo de los sitios Los sitios podrán estar localizados físicamente próximos, es decir dentro del mismo edificio o grupo de edificios adyacentes conectados mediante una red de área local, no podría estar distribuido geográficamente uno de otro conectado mediante una red de área ancha o de larga distancia. Las redes de área local normalmente utilizan cables mediante las redes de larga distancia utilizan líneas telefónicas o satélites, también es posible utilizar una combinación de los tipos de redes Las redes podrían tener diferentes topologías, que definen los caminos de comunicación directos entre sitios. Los sitios de topologías de las redes utilizadas 28 podrían tener un efecto significativo en el rendimiento y por lo tanto en las estrategias de procesamiento de consultas distribuidas y de diseño de bases de datos distribuidas. Para temas de arquitectura de alto nivel, sin embargo no importa el tipo de red utiliza, lo único importante es que cada sitio puede comunicarse directa o indirectamente con todos los demás sitios . 2.6.- Técnicas de fragmentación, replicación y asignación de las Bases de datos distribuidas Según RAMEZ, Elmasri. (2006). En una BDD es preciso tomar decisiones respecto a en que sitios se almacenaran, que porciones de la base de datos. Antes de decidir cómo distribuir los datos debemos determinar las unidades lógicas de las bases de datos que se va a distribuir.las unidades lógicas más simples son las propias relaciones es decir, cada relación completa se almacenara en un sitio especifico, como se muestra en la figura 2.1 donde replica es igual a las demás replicas del sistema. 29 Figura 2.1 Replicación y distribución de datos en bases de datos distribuidas 2.6.1- Fragmentación horizontal Continuando con RAMEZ, Elmasri. (2006). Un fragmento horizontal es una relación de un subconjunto de las tuplas de esta relación. Las tuplas que pertenecen al fragmento horizontal se especifican mediante una condición sobre uno o más de los atributos de la relación. Con frecuencia, solo interviene un atributo, por ejemplo podríamos definir tres fragmentos horizontales en la relación empelado con las siguientes condiciones: (N_d = 5), (N_d=4) y (N_d=1); cada fragmento contiene las tuplas empleado, que pertenecen a un departamento en particular. De manera similar, podemos definir tres fragmentos horizontales para la relación proyecto, con al condiciones (Numd = 5), (numd=4),(num=5), cada fragmento contiene las tuplas proyecto controladas por un departamento en particular. La fragmentación horizontal divide una relación “horizontalmente” agrupando filas para crear subconjuntos de tuplas, donde cada subconjunto tiene un cierto significado lógico. Estos fragmentos pueden entonces asignarse a diferentes sitios en el sistema distribuido. La fragmentación horizontal derivadas aplica la participación de una relación primaria en nuestro ejemplo empleado proyecto, que referencia a la primaria a través de una clave externa. De esta forma los datos relacionados entre las relaciones primarias y secundarias se fragmentan de la misma forma. 2.6.2- Fragmentación vertical Ningún sitio tiene porque necesitar todos los atributos de una relación, lo que indica la necesidad de otro tipo diferente de fragmentación. La fragmentación vertical divide una relación “verticalmente” en columnas un fragmento vertical de una relación mantiene solo ciertos atributos de la relación. Por ejemplo podríamos 30 querer dividir la relación empleado en dos fragmentos verticales. Primero incluiría información personal; nombre, fecha de nacimiento, dirección y sexo. Y el segundo información relacionada con el trabajo: NSS, salario, nss_superv, nd. La fragmentación vertical lo es de todo apropiada, porque si ambos fragmentos se almacenan por separado, no podremos juntar otra vez las tuplas de empleado originales, ya que no existe una atributo común entre los dos fragmentos. Es necesario incluir el atributo de clave primaria o clave candidata en todo fragmento vertical, p ara que sea posible reconstruir la relación completa a partir de los fragmentos pro tanto habrá que añadir el atributo NSS al fragmento de información personal 2.7- Replicación y asignación de los datos La replicación resulta útil para mejorar la disponibilidad de los datos. El caso más extremo de la replicación de toda la base de datos en todos los sitios del sistema distribuido creando así una base de datos distribuida totalmente replicada. Puede mejorar la disponibilidad notablemente por que el sistema puede seguir operando mientras por lo menos unos de los sitios esta activado. También mejora el rendimiento de la recuperación de consultas globales por que el resultado de semejante consulta se pueden obtener totalmente en cualquier sitio así; una consulta de recuperación se puede procesar en el sitio local donde se introduce, si dicho sitio cuenta con un modulo servidor. La desventaja de la replicación completa es que puede reducir drásticamente la rapidez de las operaciones de actualización, pues una sola actualización lógica se deberá ejecutar en todas y cada una de las copias de las bases de datos a fin de mantener la consistencia. Esto es especialmente cierto si existen muchas copias de las bases de datos. Con la replicación completa, las técnicas de control de concurrencia y recuperación se vuelven más costosas de los que serian sin replicación. En externo opuesto a la replicación completa, es no tener ninguna replicación esto es, cada fragmento se almacena exactamente en un sitio. En este caso todos los fragmentos deben ser disjuntos, con excepción de la repetición de claves 31 primarias en los fragmentos verticales o mixtos. Esto se denomina también asignación no redundante. En estos dos extremos, tenemos una amplia gana de replicación parcial de los datos; es decir, algunos fragmentos de la base de datos pueden estar replicados y otros no. El número de copias de cada fragmento puede ir desde uno hasta el número total de sitios en el sistema distribuidos. Un caso especial de replicación parcial ocurre con frecuencia en aplicaciones donde trabajadores que se desplazan como vendedores gestores financieros y reguladores de reclamaciones llevan con ellos bases de datos parciales replicadas en computadores portátiles y asistentes digitales personales y las sincronizan periódicamente con la base de datos en el servidor. En ocasiones se llama esquema de replicación a una descripción de la replicación de los fragmentos. Cada fragmento, o copia de un fragmento se debe asignar a un sitio determinado en el sistema distribuido. Este proceso se denomina distribución de datos (o asignación de los datos). La elección de sitios y el grado de replicación depende de los objetivos de rendimiento y disponibilidad para el sistema y de los tipos de frecuencias de transacciones introducidas en cada sitio. Por ejemplo si se requiere una alta disponibilidad y las transacciones se pueden introducir en cualquier sitio y si la mayoría de ellas son de recuperación, entonces una base de datos completamente replicada será una buena opción. Sin embargo si por lo general ciertas transacciones se tiene acceso a partes especificas de la base de datos se introducen en un solo sitio, se podría asignar el conjunto de fragmentos correspondiente exclusivamente a este sitio los datos que se utilizan en múltiples sitios se puede replicar en esos sitios. Si se efectúan muchas actualizaciones puede ser conveniente limitar la replicación. Encontrar una solución optima o incluso buena, para la asignación de datos distribuidos en un problema de optimización muy complejo 2.8- Tipos de sistemas de bases de datos distribuidas 32 El termino sistema de gestión de base de datos distribuida puede describir diversos sistemas que presentan muchas diferencias entre sí. El punto principal que todos estos sistemas tienen en común es el hecho de que los datos y el software están distribuidos entre múltiples sitios conectados por alguna especie de red de comunicaciones, como se muestra en la figura 2.2 Figura 2.2 Ejemplo de una Base de datos Distribuida El primer factor a considerar es el grado de homogeneidad del software de SGBDD. Si todos los servidores o SGBDD locales individuales utilizan software idéntico y todos los usuarios (clientes) emplean software idéntico, se dice que el SGBD es homogéneo en caso contrario se le denomina heterogenia. Otro factor relacionado con el grado de homogeneidad es el grado de autonomía local. Si el sitio local no puede funcionar con un SGBD autónomos, el sistema no tiene 33 autonomía local. Por otro lado, si se permiten las transacciones locales acceso directo a un servidor, el sistema tendrá cierto grado de autonomía local. En un estreno de la gana de autonomía, tenemos un SGBDD que da al usuario la impresión de ser un SGBD centralizado. Solo hay un esquema conceptual y todo acceso al sistema se hace a través de un sitio que es parte del SGBDD de modo que no hay autonomía local. En el otro extremo nos encontramos con un SGBDD denominado SGBDD federado (o sistema de múltiples bases de datos). En un sistema así, cada servidor es un SGBD centralizado independiente y autónomo, que tiene sus propios usuarios locales, transaccionales locales y ABD, por los tanto posee un alto grado de autonomía local. El término “sistema de bases de datos federadas” ( SBDF) se utiliza cuando hay algún esquema o vista global de la federación de bases de datos que es compartido por las aplicaciones. Por otro lado, un sistema de múltiples bases de datos no tiene un esquema global e interactivamente, construye uno según la aplicación lo necesite. Los dos sistemas son un hibrido entre sistemas centralizados y distribuidos, y la distribución que hemos hecho entre ellos no se sigue estrictamente nos referimos a ambos como SBDF en un sentido genérico. Es un SBDF heterogenia, un servidor podría ser un SGBD relacional, otro un SGBD en red, y un tercero SGBD jerárquico o de objetos; en un caso así es necesario disponer de un lenguaje de un sistema canónico, e incluir traductores de lenguaje para traducir sub consultas de lenguaje canónico al lenguaje de cada servidor. 2.8.1- Características de los sistemas de gestión de bases de datos El tipo de heterogeneidad presente en los SBDF puede provenir de varias fuentes • Diferencias de modelos de datos; la base de datos de una organización provienen de una variedad de modelos de datos incluyendo los llamados modelos legados (red y jerárquicos). El modelo de datos relacional, el 34 modelo de datos de objetos e incluso ficheros. Las capacidades de moderado de los modelos varían. Por tanto, es desafiante tratar con ellos uniformemente a través de un único tema global o procesarlo en un único lenguaje. Incluso si dos bases de datos son ambas del entorno de SGBDR, la misma información podrá representarse como un nombre de atributo, como un nombre de relación, o como un valor, en dicha base de datos diferente. Esto requiere un mecanismo de procesamiento de consultas inteligentes que pueda relacionar información basada en metadatos • Diferencia de restricciones. Las facilidades para especificar e implementar restricciones varían de un sistema a otro. Existen características comparables que deben reconciliarse en la construcción de un esquema global, por ejemplo, las relaciones de los modelos ER se representan como restricciones de integridad referencial, en el modelo relacional. En este modelo se deben utilizar disparadores para implementar ciertas restricciones. El esquema global debe enfrentarse también a posibles conflictos entre restricciones. • Diferencias en lenguaje de consulta. Incluso en el mismo modelo de datos, los lenguajes y sus versiones varían. por ejemplo, SQL tiene muchas versiones como sql-89, sql-92, etc. Y cada sistema tiene su propio conjunto de tipos de datos y operadores de comparación, características de manipulación y cadena de caracteres, etc. Heterogeneidad semántica La heterogeneidad semántica se da cuando hay diferencias en el significado, interpretación y el uso propuesto de los mismos datos y de datos relacionados. La heterogeneidad semántica entre los sistemas de bases de datos (SGBD) de componentes crea el obstáculo más grande en el diseño de esquemas globales de bases de datos heterogenias. La autonomía de diseño de los SBD de componentes se refiere a su libertad de elegir los siguientes parámetros de diseño que afectan a la eventual complejidad de los SBDF. 35 • El universo de discursos desde que se representa los datos; por ejemplo dos bases de datos de cuentas de clientes de la federación podrían ser estados unidos y Japón y podrían tener diferentes conjuntos de atributos acerca de las cuentas de clientes requeridas para las practicas de contabilidad. También podría presentar un problema las fluctuaciones de las divisas. Por tanto las relaciones de estas dos bases de datos que tiene nombres idénticos, clientes o cuenta podrían tener alguna información común y alguna información totalmente distinta. • Representación y nombre: la representación y nombres de elementos de datos y la estructura de los modelos de datos podría ser pre especificada para cada base de datos local. • Entretenimiento significado, e interpretación subjetiva de los datos: estos supone la principal contribución a la heterogeneidad semántica. • Restricciones de política y transacción: estas tratan del criterio de seriedad compensación de transacciones y otras políticas de transacciones. • Derivación de resúmenes: la agregación, resumen y otras características de procesamientos de datos y operaciones soportadas por el sistema. La autonomía de comunicación de un SGBD componente se refiere a su habilidad para decidir si comunicarse con otros SBD componentes. La autonomía de ejecución se refiere a la habilidad de un SBD de componentes para ejecutar operaciones locales, sin interferencia de operaciones externas de otros SBD componentes y su habilidad para decidir el orden en que se ejecutaran. La autonomía de asociación de un SBD componente implica que tiene la habilidad de decidir si compartir su funcionalidad (operaciones que soporta) y recursos (datos que gestiona) con otros SBD componentes y como. El mayor desafío en el diseño de SBDF es permitir a los SBD componentes inter operar proporcionarles los tipos de autonomía antes descritos 2.9- Procesamiento de consultas de bases de datos distribuidas 36 Costos de transferencia de datos en el procesamiento de consultas distribuidas En un sistema distribuido existen varios factores adicionales que complican aun más el procesamiento de consultas. El primeo es el costo de transferir datos por la red. Estos datos incluyen los ficheros intermedios que se transfieren a otros sitios para continuar su procesamiento, así mismo los ficheros de resultado final que puede que deban transferirse al sitio donde se necesita el resultado de la consulta. Aunque es posible que estos costos no sean demasiado altos si los sitios están conectados por medio de una red de área local de alto rendimiento, adquieren una importancia considerable en otros tipos de redes. Por ello, los algoritmos que optimización de consultas de los SGBDD consideran el objetivo de reducir la cantidad de transferencia de datos como criterio de optimización al elegir una estrategia de ejecución de una consulta distribuida Procesamiento de consultas distribuidas por semirreunion El procesamiento de consultas distribuidas mediante la operación de semirreunion se basa en la idea de reducir el número de tuplas de una relación antes de transferirla a otro sitio. Intuitivamente la idea es enviar la columna de reunión de una relación R al sitio donde se encuentre la otra relación S; esta columna se reúne entonces con S. después de esto los atributos de reunión, junto con los atributos requeridos en el resultado, se extraen por proyección de R en una dirección, y un subconjunto de S que no contenga tuplas o atributos que no intervengan en el resultado se transfiere en la otra dirección. Si solo una pequeña fracción de las tuplas S participa en la reunión, esto puede ser una solución bastante eficiente para minimizar las tuplas de S participa en la reunión, esto puede ser una solución bastante eficiente para minimizar la transferencia de datos Descomposición de actualizaciones y de consultas En un SGBD sin trasparencia de distribución, el usuario expresa su consulta directamente en términos de fragmentación específicos. 37 Un SGBDD que ofrezca transparencia de distribución, de fragmentación y de replicación completa permitirá al usuario especificar una consulta o solución de actualización. En el caso de las actualizaciones, el SGBDD se encarga de mantener la consistencia entre los elementos replicados usando alguno de los algoritmos de control de concurrencia distribuida. En el caso de las consultas, un modulo de descomposición de consultas deberá dividir o descomponer una consulta en sub consultas que se puedan ejecutar en los sitios individuales. Además, deberá generarse una estrategia pata combinar los resultados de las sub consultas y formar el resultado de la consulta. Siempre que el SGBDD determine que un elemento al que se hace referencia en la consulta esta replicado, deberá escoger o materializar una réplica especifica durante la ejecución de dicha consulta El SGBDD consulta la información de fragmentación, replicación y distribución almacenada en su catálogo. En la fragmentación vertical, la lista de atributos de cada fragmento se guarda en el catalogo. En la fragmentación horizontal, se guarda una condición, a veces llamada de guarda, para cada fragmento, esta es básicamente una condición de selección que especifica que tuplas están en el fragmento. Esta es básicamente una condición de selección que especifica que tuplas están en el fragmento; se le llama guarda porque solo las tuplas que satisfacen esta condición pueden estar almacenadas en el fragmento. En el caso de fragmentos mixtos, tanto la lista de atributos como la condición de guarda se mantienen en el catalogo. 2.10- Control de concurrencia y recuperación en Bases de datos distribuidas El control de concurrencia y la recuperación en un entorno de SGBDD distribuido, surge numeroso problemas que no se encuentran en los entornos de SGBD centralizados. Como: 38 • Manejar múltiples copias de los elemento de datos: el método de control de concurrencia tiene la obligación de mantener la consistencia entre estas copias. El método de recuperación debe cuidar que una copia sea consistente con todas las demás si el sitio en el que la copia estaba almacenada falla y se recupera posteriormente. • Fallo de sitio individual él: SGBDD distribuido debe continuar operando con sus sitios activos, si es posible, cuando fallen uno o más sitios individuales, cuando un sitio se recupere su base de datos local se deberá poner al día con los demás sitios antes de que se incorpore al sistema. • Fallo en enlaces de comunicación: el sistema debe ser capaz de manejar el fallo de uno o más de los enlaces de comunicación que conectan los sitios. Un caso extremo de este problema es que puede haber partición de la red. Esto divide los sitios en dos o más particiones, dentro de las cuales los sitios pueden comunicarse entre sí pero no con sitios de otras particiones • Configuración distribuida: puede haber problemas para confirmar una transacción que está teniendo acceso a la base de datos almacenadas en múltiples sitios si algunos de estos fallan durante el proceso de configuración. A menudo se utiliza el protocolo de confirmación en dos fases • Bloqueo mortal distribuido: puede ocurrir un bloqueo mortal entre varios sitios, lo que hace necesario extender las técnicas de manejo de bloqueos mortales Las técnicas de control de concurrencia y de recuperación distribuida deben resolver estos y otros problemas. Control de concurrencia distribuido basado en una copia distinguida Consiste en designar una copia determinada de cada elemento de datos como copia distinguida. Los bloqueos para este elemento de datos se asocian a la copia distinguida, y todas las solicitudes de bloqueo y desbloqueo se envían al sitio que contiene esa copia. 39 La técnica de sitios primario, todas las copias distinguidas se guardan en el mismo sitio. Una modificación de este bloqueo es el sitio primario con sitio de respaldo. Otro enfoque es el método de copia primaria, en el que las copias distinguidas de los diversos elementos de datos se pueden almacenar en diferentes sitios. Un sitio que incluye una copia distinguida de un elemento de datos actual básicamente como sitio coordinador para el control de concurrencia de ese elemento. Técnica de sitio primario: en este método se designa un solo sitio primario como sitio coordinador pata todos los elementos de la base de datos. Por tanto, todos los bloqueos se mantienen en ese sitio, y todas las solicitudes de bloqueo y desbloqueo se envían a este sitio. Así pues, este método es una extensión del enfoque centralizado. Por ejemplo, si todas las transacciones siguen el protocolo de bloqueos en dos fases, la seriabilidad está garantizada. La ventaja de este enfoque es que es una simple extensión del enfoque centralizado y por tanto no es demasiado complejo. Sin embargo, posee ciertas desventajas inherentes. Una de ellas es que todas las solicitudes de bloqueo se envían a un mismo sitio, con lo que posiblemente se sobrecargue ese sitio y se origine un cuello de botella del sistema. La segunda desventaja es que un fallo del sitio primario paraliza el sistema, ya que toda la información de bloqueo se mantiene en dicho sitio. Esto puede limitar la fiabilidad y la disponibilidad del sistema Sitio primario con sitio respaldo Este enfoque busca la segunda desventaja del método anterior designado un segundo sitio como sitio de respaldo. Toda la información de bloqueo se mantiene tanto en el sitio primario como en el de respaldo. En caso de fallar el sitio primario, el de respaldo puede asumir las funciones de sitio primario, y se puede escoger un nuevo sitio de respaldo. Esta simplificada el proceso de recuperarse de un fallo del sitio primario, ya que el sitio de respaldo asume sus funciones y el procesamiento puede reanudarse una vez que se elija el nuevo sitio de respaldo y la información de estado de los bloqueos se copie en el . sin embrago, el proceso de adquisición de bloqueos se hace más lento , porque todas las solicitudes de bloqueos y la concesión de los mismos se deben guardar tanto en el sitio primario como en el de 40 respaldo antes de enviar una respuesta la transacción solicitante. El problema de que los sitios primarios y de respaldo se sobrecarguen con solicitudes y hagan más lento el sistema no se alivia en absoluto Técnica de copia primaria: Este método intenta la carga de la coordinación de los bloqueos entre varios sitios manteniendo las copias distribuidas de diferentes elementos de datos almacenadas en diferentes sitios. El fallo de un sitio afecta las transacciones que están teniendo acceso a bloqueos sobre elementos cuyas copias primarias residan en ese sitio, pero las demás transacciones no resultan afectadas. Este método también puede usar sitios de respaldo para elevar la fiabilidad y la disponibilidad Elección de un nuevo sitio coordinador en caso de fallo Siempre que un sitio coordinador falle en cualquiera de las técnicas, los sitio que siguen activos deberán elegir un nuevo coordinador. En el caso del enfoque de sitio primario sin sitio de respaldo, será preciso abortar y reiniciar todas las transacciones en ejecución, y el proceso recuperación será bastante tedioso . Parte de dicho proceso implica elegir un nuevo sitio primario y crear un proceso gestor de bloqueos y un registro de toda la información de bloqueos en ese sitio. En los métodos que usan sitios se respaldo, el procesamiento de transacciones se suspende mientras el sitio de respaldo se desina como nuevo sitio primario, se escoge un nuevo sitio de respaldo y se envía a él copias de roda la información de bloqueo del nuevo sitio primario. Si el sitio de respaldo X está a punto de convertirse en el nuevo sitio primario, x puede escoger el nuevo sitio de respaldo entre los sitios del sistema. Sin embrago si no hay sitios de respaldo, o si están caídos tanto el sitio primario como el de respaldo, se puede seguir un proceso denominado elección para escoger el nuevo sitio coordinador. En este proceso, cualquier sitio Y que intente comunicarse 41 repetidamente con el sitio coordinador y fracase puede suponer que el coordinador esta caído e iniciar el proceso de elección enviando un mensaje a toso los sitios activos en el cual proponga que Y se concierta en el nuevo coordinador. Tan pronto como Y reciba una mayoría de voto, puede declararse que es el nuevo coordinador 2.11- Recuperación distribuida El proceso de recuperación en las bases datos distribuidas, es bastante complicado. Aquí daremos solo una idea de algunos de sus aspectos. En ciertos casos incluso es bastante difícil determinar si un sito esta caído intercambiar un gran número de mensajes con otros sitios. Por ejemplo si un sitios a envía un mensaje al sitio b y espera una respuesta el b pero no la recibe. Hay varias explicaciones posibles 1.- El mensaje no llego a b debido a un fallo en la comunicación 2.- El sitio b esta caído y no puede responder 3.- El sitio b esta activo y envió una respuesta, pero esta no llego Es difícil determinar que sucedió realmente. Otro problema con la recuperación distribuida es la configuración distribuida, cuando una transacción está actualizando datos en varios sitios, no puede conformarse hasta asegurarse de que el efecto de la transacción no puede perderse en ningún sitio. Esto significa que cada sitio debe haber guardado primero permanentemente los efectos locales de la transacción en el diario local es el disco del sitio. A menudo se usa el protocolo de confirmación de dos fases 2.12- Arquitectura cliente-servidor y relación con bases de datos distribuidas. Según C, Date. (2010),SGBDD a escala completa no han sido desarrollados para soportar todos los tipos de funcionalidades que hemos explicado. En cambio las 42 aplicaciones de bases de datos distribuidas se desarrollan en el contexto de la arquitectura cliente- servidor Aun no se ha establecido como dividir la funcionalidad del SGBD entre el cliente y el servidor. Se han propuestos diferentes enfoques. Una posibilidad es incluir la funcionalidad de un SGBD centralizado en nivel del servidor. Varios productos del SGBD relacionadas han tomado este enfoque , en el que se proporciona a los clientes un servidor SQL. Entonces cada cliente debe formular las consultas SQL apropiadas y proporcionar una interfaz del usuario y funciones de interfaz del lenguaje de programación. Mientras SQL están relacionado, algunos servidores SQL, posiblemente proporcionados por diferentes vendedores, pueden aceptar instrucciones SQL. El cliente suele también referirse al diccionario de datos que incluye información de la distribución de los datos entre varios servidores SQL, así como módulos para descomponer una consulta global en varias consultas locales que pueden ejecutarse en varios sitios. La interacción n entre el cliente y el servidor durante el procesamiento de una consulta SQL, podría proceder de la siguiente manera. 1.- El cliente analiza una consulta de usuario y la descompone en varias consultas de sitios independientes. Cada consulta de sitios se envía al correspondiente sitio servidor 2.- Cada servidor procesa la consulta local y envía la relación resultante al sitio cliente 3.- El sitio cliente combina los resultados de las sub consultas para producir el resultado de la consulta original realizada En este enfoque el servidor SQL también se denomina servidor de transacciones (o procesador de base de datos o maquina del sistema subyacente), mientras que el cliente se denomina procesador de aplicaciones ( o maquina del aparte visible al usurario). La interacción entre el cliente y el servidor puede especificarla el usuario en el nivel cliente o mediante un modulo especializado del SGBD que es parte del paquete SGBD. Por ejemplo el usuario debería saber los datos que están 43 almacenados en cada servidor dividir manuela mente una petición de consulta en sub consultas del sitio, y remitir las sub cuentas individuales a los diferentes sitos, las tablas resultantes la debe combinar explícitamente las consultas del usuario en el nivel del cliente. La alternativa es hacer que el modulo cliente se encargue de estas acciones automáticamente. En un SGBDD típico, es usual dividir los módulos software en tres niveles 1.- El software del servidor es el responsable de la gestión de los datos locales en el sitio, al igual que el software del SGBD centralizado 2.- El software del cliente es el responsable de la mayoría de las funciones de distribución, accede a la información a la distribución de los datos que están en el catalogo del SGBDD y procesa todas la peticiones que requieren acceso a más de un sitio. También maneja las interfaces del usuario 3.- El software de comunicaciones (alguna veces conjunto con un sistema operativo distribuido) proporciona las primitivas de comunicación que utiliza el cliente para transmitir instrucciones y datos entre los sitos necesario. Esta no es una parte estrictamente del SGBDD, pero proporciona servicios y primitivas de comunicación esenciales El cliente es el responsable de generar un plan de ejecución distribuida para una transacción o consulta que indique varios sitos (multisitio) y de supervisar la ejecución distribuida enviando instrucciones a los servidores. Estas instrucciones incluyen las consultas locales y transacciones que se van a ejecutar, así como la instrucciones para transmitir datos a otros cliente so servidores. Por tanto el software cliente deberá incluirse en algunos sitios donde se introduzcan las consultas multicitios. Otra función controlada por el cliente (o coordinador) es la de asegurar la consistencia de replicación de copias de elementos de datos, empleando técnicas de control de concurrencia distribuida o global. El cliente debe también asegurar la atomicidad de transacciones globales realizando una recuperación global cuando fallen ciertos sitos analizamos la recuperación distribuida y el control de concurrencia. Una posible función del cliente es 44 esconder los detalles de la distribución de datos del usuario; es decir permite al usuario escribir transacciones y consulta globales como si la base de datos fuese centralizada sin tener que especificar los sitios donde se realicen los datos referenciados en la consulta o transacción. A esta propiedad es le denomina transparencia de distribución algunos SGBDD no proporcionan transparencia de distribución y requiere que el usuario este atento a los detalles de la distribución de datos. En este capítulo se menciono en qué consiste una base de datos distribuidas las múltiples funciones y ventajas que esta representa y es fundamental que se entienda que son las bases de datos distribuidas para entender en qué consiste la fragmentación de una base de datos distribuida. 45 Capitulo 3: Replicación y Fragmentación de los datos en una Base de Datos Distribuida. 46 La administración de bases de datos distribuidas en redes de computadoras con cientos de usuarios conectados concurrentemente, es un problema actual en muchas empresas que compiten en los mercados mundiales. Debido al alto grado de conectividad que provee Internet a las empresas, el problema del diseño de la distribución de las bases de datos ha recuperado su vigencia. Este problema consiste en tratar de determinar la mejor forma de dividir las relaciones de la base de datos en fragmentos en los diversos sitios de la red. Silberschatz, Abraham. (2006) maneja tres enfoques de almacenamiento de esta relación de la base de datos distribuida. • Replica: el sistema conserva replicas (copias) idénticas de la relación y guarda cada réplica en un sitio diferente. La alternativa a la réplica es solo almacenar una copia de la relación r • Fragmentación: el sistema divide la relación en varios fragmento y guarda el fragmento en un sitio diferente. • Replica y fragmentación: la relación se divide en varios fragmentos. El sistema conserva varias replicas de cada fragmento. • 3.1- Replicación Según Coronel, Carlos. (2004), la replicación de datos se refiere al almacenamiento de copias en sitios múltiples servidores por una red de computadoras. Pueden guardarse copias de fragmentos en vario sitios para satisfacer requerimientos de información específicos. Como la existencia de copias de fragmentos puede mejorar la disponibilidad de los datos y el tiempo de respuesta, estas copias reducen los costos de comunicación y de consulta totales. 47 La base de datos A esta dividida en dos fragmentos: A1 y A2. Dentro de una base de datos distribuida replicada, es posible el escenario ilustrado en la figura 3. 1se guarda en los sitios S1 y S2, mientras que el A2 se guarda en los sitios S2 y S3. Figura 3.1 Replicación de Datos Los datos replicados se someten a la regla de consistencia mutua. La regla de consistencia mutua requiere que todas las copias de fragmentos de datos sean idénticas. Por consiguiente, para mantener la consistencia de los datos entre replicas, el DDBMS debe garantizar que se realice una actualización de la base de datos en todos los sitios donde existen replicas. Aunque la replicación tiene algunos beneficios, también exige más complejidad de procesamiento del DDBMS, porque cada copia de datos debe ser mantenida por el sistema. Para ilustrar la complejidad impuesta a un DDBMS, los procesos que el DDBMS debe realizar para utilizar la base de datos: • Si la bese de datos está fragmentada, el DDBMS debe decidir que copia acezar • Una operación Read (lectura) selecciona la copia más cercana para satisfacer la transacción, una operación write (escritura) requiere que todas las copias se seleccionen y actualicen para satisfacer la regla de consistencia muta 48 • El procesador de transacciones envía una solicitud de datos a cada procesador de datos para su ejecución • El procesador de datos recibe y ejecuta cada solicitud y envía los datos de vuelta al procesador de transacciones • El procesador de transacciones arma las respuestas del procesador de datos El problema se complica más cuando se consideran factores adicionales tales como la topografía de la red y procesamiento de comunicación. Como regla general se debe considerar que la replicación de fragmentos es de utilidad cuando el número de consultas de solo lectura es (mucho) mayor que el número de consultas para actualizaciones. 3.1.1- Tipos de replicación De acuerdo con Silberschatz, Abraham. (2006), existen tres escenarios de replicación: una base de datos puede ser totalmente replicada, parcialmente replicada o no replicada. • Una base de datos totalmente replicada guarda varias copias de cada fragmento de la base de datos en varios sitios. En este caso, los fragmentos de la base de datos están replicados. Una base de datos totalmente replicada puede no ser práctica debido la cantidad de carga impuesta al sistema y puede reducir drásticamente la rapidez de las operaciones de actualización, pues una solo actualización lógica se deberá ejecutar con todas y cada una de las copias de la base de datos a manera de mantener la consistencia. • Una base de datos parcialmente replicada guarda múltiples copias de algunos fragmentos de la base de datos en múltiples sitios. La mayoría de los DDBMS son capaces de manejar bien la base de datos parcialmente replicada • Una base de datos no replicada guarda cada fragmento de base de datos en un solo sitio. Por consiguiente, no existe fragmentación de base de datos duplicados. En este caso todos los fragmentos deben ser disjunta, con 49 excepción de la repetición de claves primarias entre los fragmentos verticales (o mixtos). Esto se denomina también reparto no redundante Procesamiento de Consultas Manejo de Directorios Control de Concurrencia Confiabilidad Realidad Replicación Completa Fácil Replicación Parcial Moderado No replicada Fácil o no existente Moderado Moderado Moderado Difícil Fácil Muy alto Aplicación posible Alto Realista Bajo Aplicación posible Lento Tabla 3.1. Comparación de las estrategias de replicación de fragmentos. 3.1.2- Factores para la replicación Según Coronel, Carlos. (2004), Varios factores influyen en la decisión de utilizar replicación de datos: • Tamaño de la base de datos • Frecuencia de uso • Costo—desempeño, software, indirectos y de administración—asociados con la sincronización de las transacciones y sus componentes contra los beneficios de tolerancia a las fallas asociados con los datos replicados Cuando la frecuencia de uso de los datos remotamente localizados es elevada y la base de datos es grande, la replicación de los datos, reduce el costo de las solicitudes de datos. La información sobre la replicación de los datos se guarda en el catalogo de datos distribuidos (DDC), cuyo contenido es utilizado por el 50 procesador de transacciones para decidir que copia de fragmento de base de datos acezar. La replicación de datos permite recuperar los datos perdidos. Replica de datos si la relación r se replica se guarda una copia de dicha relación en dos o más sitos, en el caso más extremo se tiene una réplica completa en la que se guarda una copia en cada sitio del sistema. 3.1.3- Ventajas y Desventajas de la replicación Continuando con Silberschatz, Abraham. (2006), quien considera que existen varias ventajas y desventajas de la réplica: • Disponibilidad. Si algunos de los sitos que contiene la relación falla la relación puede hallarse en otro sitio distinto por tanto, el sistema puede seguir procesando las consultas que incluyan a r pese al fallo del sitio. • Paralelismo incrementado. En caso en que la mayoría de los acceso de la relación r solo resulten en la lectura de la relación, varios sitios pueden procesar en paralelo las lecturas que impliquen la r cuantas más replicas r haya mayor será las disponibilidad de que los datos necesarios se hallan en el sitio en que se ejecuta la transacción pro tanto la réplica de los datos minimiza el movimiento de los datos entre los sitios • Sobre carga incrementado durante la actualización. El sistema debe asegurar que todas las replicas de la relación r sean consistentes en caso contrario pueden producirse cómputos erróneos, por eso siempre que se actualiza r ahí que propagara la actualización a todos los sitios que contiene replicas. El resultado de una sobre carga incrementada. Por ejemplo, en un sistema bancario en donde se replica en varios sitios la información e las cuentas es necesario asegurarse de que el saldo de cada cuenta concuerde en todos los sitios. En general, la réplica mejora el rendimiento de las operación leer y aumenta la disponibilidad de los datos para que las transacciones solo de lectura. No obstante la transacciones de actualización suponen una mayor 51 sobrecarga. El control de las actualizaciones de actualización realizadas por varias transacciones en los datos replicados resulta más complicado que en los sistemas centralizados. Se puede simplificar la gestión de las replicas de la relación r escogiendo un de ellas como copia principal de r, por ejemplo en un sistema bancario las cuentas pueden asociarse con el sitio en que se abrieron. de manera parecida, en un sistema de reserva de billetes de avión los vuelos pueden asociarse con el sitio en que se origina el vuelo. • Coste del desarrollo de software: es más difícil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor. • Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados. La decisión del tipo de replica es muy importante ya que proporciona ventajas y desventajas como se muestra en la figura 3.2 que compara una base da datos unificada y una base de datos distribuida. Figura 3.2 Ventajas y desventajas de las formas de replicación 52 3.2- Fragmentación de los datos. Continuando con Silberschatz, Abraham. (2002), Si la relación r se fragmenta, se divide en varios fragmentos r1, r2,… rn. Estos fragmentos contienen suficiente información como para permitir la reconstrucción de la relación original r ahí dos esquemas diferentes de fragmentación de las relaciones, fragmentación horizontal y fragmentación vertical. 3.2.1 Requerimientos de información Con el fin de realizar una fragmentación adecuada es necesario proporcionar información que ayude a realizarla. Esta información normalmente debe ser proporcionada por el usuario y tiene que ver con cuatro tipos: • Información sobre el significado de los datos • Información sobre las aplicaciones que los usan • Información acerca de la red de comunicaciones • Información acerca de los sistemas de cómputo 3.2.2- Fragmentación horizontal. La fragmentación horizontal divide la relación asignando cada tuplas de r en uno más fragmentos. La fragmentación vertical divide la relación descomponiendo el esquema R de la relación r. En la fragmentación horizontal de la relación r se divide en varios subconjuntos r1, r2…rn .cada tupla de relación r debe pertenecer como mínimo a uno de los fragmentos de modo que se pueda reconstruir la relación original, si fuera necesario. 53 A modo de ejemplo, la cuenta puede dividirse en varios fragmentos cada uno puede dividirse en varios fragmentos, cada uno de los cuales consiste en tuplas de cuentas que pertenecen a una sucursal concreta. La fragmentación horizontal suele utilizarse para conservar las tuplas de los sitios en que más se utilizan para minimizar las transferencias de datos. En general, los fragmentos horizontales pueden definirse como una selección de la relación global r. es decir se utiliza un predicado Pi para construir fragmentos ri. Una manera de asegurar que la relación r puede reconstruirse es incluir los atributos de la llave principal de R en cada uno de los fragmentos Ri . de manera más general se puede utilizar cualquier súper clave. Suele resultar conveniente añadir un atributo especial denominado id- tupla al esquema R. el valor id- tupla de una tupla es un valor único que distingue cada tupla de todas las demás tuplas. Atributo id. Tupla por tanto, sirve como calve candidata para el esquema aumentado y se le incluye en cada uno de los fragmentos ri. La dirección física o lógica de la tupla puede utilizarse con id-tupla dado que cada tupla tiene una dirección única. Ejemplo: Supongamos que la gerencia corporativa de la XYZ Company requiere información sobre sus clientes en los tres estados, pero las ubicaciones de la compañía en cada estado ( TN, FL, GA) solamente requieren datos con respecto a clientes locales. Con base en esos requerimientos, se decide distribuir los datos por estado . por consiguiente, se definen los fragmentos horizontales de acurdo con la estructura mostrada en la tabla 3.1…. Tabla 3.2 Fragmentación Vertical de la Tabla Clientes 54 Cada fragmento horizontal puede tener un numero diferente de filas pero casa uno de ellos debe, tener los atributos. Los fragmentos resultantes producen las tres tablas ilustradas Tabla 3.3 Fragmentación de la tabla en tres lugares 3.2.3- Fragmentación vertical Continuando con Silberschatz, Abraham. (2002), La fragmentación vertical considérese una base de datos universitaria con una relación info-empleado que almacena, para cada empleado, id-empleado, nombre, puesto y salió. Por motivos de preservación de la intimidad puede que esta relación se fragmente en una relación empleado-info privada que contenga id-empleado y salario, y en otra relación empleado-info- publica que contenga los atributos id-empleado, nombre y puesto. Puede que las dos relaciona se almacenen en sitios diferentes nuevamente por motivos de seguridad. Se puede aplicar a los dos tipos de fragmentación a una solo esquema; por ejemplo, los objetos obtenidos de la fragmentación horizontal, pueden dividirse nueva mente de maneja vertical, los fragmentos también pueden replicarse en general los fragmentos pueden replicarse, la réplica de los fragmentos pueden fragmentarse y más. Ejemplo: 55 Puede dividirse la relación Cliente, en fragmentos verticales compuestos de un conjunto de atributos. Por ejemplo suponga que la compañía está dividida en dos departamentos, en el de servicio y el de colecciones. Cada departamento está ubicado en un estilo distinto, y cada uno tiene intereses solamente en unos cuentos de los atributos de la tabla Cliente. En este caso, los fragmentos se dividen como se demuestra en la tabla. Tabla 3.4 Fragmentación Vertical de la tabla Clientes Cada fragmento vertical debe tener el mismo número de filas pero la inclusión de los diferentes tributos depende de la columna clave. Los resultados de la fragmentación vertical se muestran en la figura. Observe que el atributo clave (CUS_NUM) es común a ambos fragmentos CUS_V1 y CUS_V2. 56 Figura 3.3 Fragmentación Vertical del contenido de la tabla 3.2.4 Fragmentación mixta Podemos relacionar los dos tipos de fragmentación para tener una fragmentación mixta Esquemas de fragmentación: de una base de datos es una definición de un conjunto de fragmentos que incluye todos los atributos y tuplas de la base de datos y satisface la condición de que la base de datos completa se puede reconstruir a partir de los fragmentos mediante alguna secuencia de operación de UNION EXTERNA (reunión externa) y UNION. En ocasiones también es útil pero no necesario que todos los fragmentos sean disjuntos, excepto la repetición de las claves primarias de los fragmentos verticales(o mixtos) en este último caso toda la replicación y distribución de los fragmentos se especifica claramente en una etapa siguiente, aparte de la fragmentación. Esquema de asignación: describe la asignación de los fragmentos entre los sitios del SBDD; por tanto, es una correspondencia, que especifica el sitio o sitios donde se almacena cada fragmento. Si un fragmento se almacena en más de una sitio se dice que esta replicado. Ejemplos La estructura de la XYYZ Company requiere que los datos Cliente se fragmenten horizontalmente para acomodar las diferentes ubicaciones de la compañía dentro de las ubicaciones, los datos deben ser fragmentados verticalmente para acomodar los diferentes departamentos (Servicio y colección). En suma, la tabla Cliente Requiere una fragmentación mixta. La fragmentación Mixta requiere un procedimiento de los pasos. 1.- Se introduce la fragmentación horizontal por cada sitio, con base de la ubicación dentro de un estado (CUS_STATE). La fragmentación horizontal 57 produce los subconjuntos de tuplas Cliente (fragmentos Horizontales) localizados en cada sitio, como los departamentos están localizados en edificios diferentes se utiliza una fragmentación vertical dentro de cada fragmento horizontal para dividir los atributos con los cual se satisfacen las necesidades de información de cada departamento en cada sub sitio. La fragmentación mixta con los resultado se ven ilustrados en la tabla 3.5 Tabla 3.5 Fragmentación Mixta de la tabla clientes Cada fragmento mostrado en la tabla 3.5 Contienen datos de los clientes por estado y dentro de cada estado por ubicación de departamento, para adaptarse a los requerimientos de datos de cada departamento. Las tablas que corresponden a los fragmentos listados en la tabla 3.5 Se muestran en la figura 3.4 58 Figura 3.4 Contenido de una tabla después del proceso de fragmentación mezclada 59 3.4- Colocación de los datos La colocación de los datos describe el proceso de decidir donde localizarlos. Las estrategias de colocación de los datos son las siguientes: • Con la colocación centralizada de los datos: toda la base de datos se guarda en un sitio • Con la colocación particionada de los datos, la base de datos se divide en varias partes desarticuladas(fragmentos) y se guarda en varios sitios • En la colocación replicada de los datos: se guardan copias de uno o más fragmentos de la base de datos en varios sitios Según Coronel, Carlos. (2004), La distribución de los datos a través de una red de computadora, se logra mediante la partición de los datos, replicación de los datos o mediante una combinación de ambas. La colocación de los datos está estrechamente relacionada con la manera en que una base de datos se divide o fragmenta. La mayoría de los estudios de colocación de los datos se enfocan en un tema: que datos localizar y en donde los algoritmos de colocación de los datos consideran varios factores, incluidos: • Objetivos de desempeño y disponibilidad de los datos • Tamaño, numero de filas y numero de relaciones que una entidad mantiene con otras entidades • Tipos de transacciones a ser aplicadas a la base de datos, los atributos acezados por cada una de las transacciones, etc. • Algunos algoritmos incluyen datos externos, tales como la topología de la red o la cantidad de datos procesados a través de la red. Aun no existen algoritmos óptimos o universalmente aceptados 60 3.4.1- Criterios para escoger la colocación Localidad de la data: la data debería ser colocada donde ésta se accede más seguido. El diseñador debe analizar las aplicaciones y determinar cómo colocar la data de tal forma que se optimicen los accesos a la data locales. Suponga que hay un conjunto de fragmentos F = { F1, F2, ..., Fn } y una red que consiste de los sitios S = { S1, S2, ..., Sm } en los cuales un conjunto de consultas Q = { q1, q2, ..., qq } se van a ejecutar. El problema de asignamiento determina la distribución "óptima" de F en S. El problema de asignamiento determina la distribución "óptima" de F en S. La optimisacion puede ser definida de acuerdo a las siguientes medidas: • Fiabilidad de la data: Almacenando varias copias de la data en lugares geográficamente apartados se logra maximizar la probabilidad de que la data va a ser recuperable en caso de que ocurra daño físico en cualquier sitio. • Disponibilidad de la data: como en la fiabilidad, almacenar varias copias asegura que los usuarios tengan a su disponibilidad los elementos de la data, aún si el nodo al que usualmente acceden no está disponible o falla. • Capacidades y costos de almacenamiento: a pesar de que los costos de almacenamiento no son tan grandes como los de transmisión, los nodos pueden tener diferentes capacidades de almacenamiento y procesamiento. Esto se debe analizar cuidadosamente para determinar dónde poner la data. El costo de almacenamiento se disminuye significativamente minimizando la cantidad de copias de la data. • Distribución de la carga de procesamiento: una de las razones por la cual se escoge un sistema de BDD es porque se desea poder distribuir la carga de procesamiento para hacer este más eficiente. • Costo de comunicación: el diseñador debe considerar también el costo de usar las comunicaciones de la red para obtener data. Los costos de 61 comunicación se minimizan cuando cada sitio tiene su propia copia de la data, por otro lado cuando la data es actualizada se debe actualizar en todos los nodos. • Uso del sistema: debe tomarse en consideración cual será el tipo principal de uso del sistema de BDD. Factores como la importancia en la disponibilidad de la data, la velocidad de escritura y la capacidad de recuperación de daños físicos deben tomarse en cuenta para escoger el esquema correcto • Costo mínimo: Consiste del costo de comunicación de datos, del costo de almacenamiento, y del costo procesamiento (lecturas y actualizaciones a cada fragmento). El problema de asigna miento, entonces, pretende encontrar un esquema de asigna miento que minimiza una función de costo combinada • Rendimiento La estrategia de asigna miento se diseña para mantener una métrica de rendimiento. Las dos métricas más utilizadas son el tiempo de respuesta y el "throughput" (número de trabajos procesados por unidad de tiempo). En cualquier problema de optimización existen restricciones que se deben satisfacer. El caso de distribución de fragmentos, las restricciones se establecen sobre las capacidades de almacenamiento y procesamiento de cada nodo en la red. 3.5- Transparencia No se debe exigir a los usuarios de los sistemas distribuidos de bases de datos que conozcan la ubicación física de los datos ni en el modo que se puede tener acceso a ellos en un sitio local concreto. Esta característica denominada transparencia de los datos, puede adoptar varias formas: 62 • Transparencia de la fragmentación. No se exige a los usuarios que conozcan el modo en que se ha fragmentado la relación. • Transparencia de la replica: los usuarios ven cada objeto de datos como lógicamente único. Puede que el sistema distribuido replique los objetos para incrementar el rendimiento del sistema o la disponibilidad de los datos. Los usuarios no deben preocuparse por los objetos que se hayan replicado ni por la ubicación de estas replicas. • Transparencia de la ubicación. No se le exige a los usuarios que conozcan la ubicación física de los datos. El sistema distribuido de bases de datos puede poder hallar los datos siempre que la transacción del usuario facilite que el identificador de los datos. Los elementos de datos (como de las relación, los fragmentos y las replicas) deben tener nombre únicos. Esta propiedad es decir de asegurar de una base de datos centralizada. En las bases de datos distribuidas hay que tener cuidado para asegurase de que dos sitios no utilicen el mismo nombre para elementos de datos diferentes. Una solución a este problema es exigir que todos los nombres se registren en un servidor de nombres central. El servidor de nombres ayuda a asegurar que le mismo nombre no se utilice para elementos de datos diferentes. También se puede utilizar el servidor de nombre para ubicar un elemento de dato, dado que el nombre del elemento. Este enfoque sin embrago presenta dos inconvenientes principales en primer lugar, puede que el servidor de nombres se transforme en un cuello de botella para el rendimiento cuando los elementos de datos, se ubican por sus nombre, lo que da lugar a un bajo rendimiento. En segundo lugar, si el servidor de nombres queda fuera de servicio puede que no sea posible que siga funcionando ningún otro sito del sistema distribuido. Un enfoque alternativo más utilizado, exige que cada sitio anteponga su propio identificador de sitio a cualquier nombre que generen. Este enfoque asegura que dos sitos no generan nunca el mismo nombre (dado que cada sitio tiene un identificar único) ademan 63 son se necesita ningún control centralizado. Esta solución, no obstante no logra conseguir la transparencia de la ubicación, dado que se adjunta a los nombres los identificadores de los tipos. Así, se puede hacer referencia la relación en lugar de meramente cuenta. Muchos sistemas de bases de datos utilizan la dirección de internet de los sitios para identificarlos. Para superar este sistema de base de datos puede crear un conjunto de nombres alternativos, o aleas para los elementos de datos. Los usuarios se pueden referir a los artículos mediante nombre sencillos que el sistema traduce en los nombres completos. La asignación de los nombres reales puede almacenarse en cada sito. Con los alias del usuario puede ignorar la ubicación física de los elementos de datos. Además el usuario no se verá afectado si el administrador de la base de datos decide trasladar un elemento de datos de un sitio a otro. Los usuarios no deben tener que hacer referencia a una réplica concreta de un elemento de datos en vez de eso, el sistema debe determinar las replicas a las que hay que hacer referencia en la solicitudes leer y actualizar todas las replicas de las solicitudes escribir., se puede asegura que lo hagan manteniendo una tabla de catalogo, que le sistema utiliza para determinar todas las replicas de elementos de datos. 64 CONCLUSION 65 El uso y la necesidad de contar con bases de datos va creciendo día con día, ya que en cualquier empresa necesita guardar información ya sea sobre sus ventas, compras, inventarios, clientes, empleados, información financiera, etc. Y al no contar con esta información será muy difícil llevar un buen funcionamiento de cualquier organización. Las bases de datos facilitan la búsqueda y el almacenamiento de toda la información, garantizando la fiabilidad de la información que esta contiene. Las bases de datos distribuidas tienen múltiples ventajas. En primer lugar los datos son localizados en lugar más cercano, por tanto, el acceso es más rápido, el procesamiento es rápido debido a que varios nodos intervienen en el procesamiento de una carga de trabajo, nuevos nodos se pueden agregar fácil y rápidamente. La comunicación entre nodos se mejora, los costos de operación se reducen, son amigables al usuario, la probabilidad de que una falla en un solo nodo afecte al sistema es baja y existe una autonomía e independencia entre los nodos. Los almacenamientos de datos son un elemento fundamental para las empresas por ello ha llamado la atención de estas ya que en la actualidad cualquier compañía por pequeña que sea tiene que manejar grandes cantidades de información, para poder tener control sobre todas las áreas de su empresa, es por ello que surge la necesidad de emplear bases de datos dentro de las organizaciones, no importando el giro de las empresas. Por lo cual, se le denomina “Base de Datos” a la colección de datos aparentes usados por el sistema de aplicaciones de una determinada empresa. La mayoría de las empresas necesitan contar con bases de datos ya que las bases de datos facilitan la realización de sus actividades, garantiza la seguridad, la confiabilidad de la información, consistencia de los datos, mejora en la disponibilidad de información, guarda información sobres sus clientes, proveedores, información financiera, inventarios, compras, ventas etc. Si 66 contamos con un buen control de la información se podrá llevar una empresa de mejor manejar y mas organizadamente La gran cantidad de información que producen grandes empresas geográficamente distribuidas, ha generado una gran dispersión de los datos asociados a sus sistemas de información. Para compartir dichos datos se requiere de tecnología capaz de integrarlos para permitir el acceso concurrente de múltiples usuarios. Una de las tecnologías que se propone alcanzar este tipo de objetivos son las bases de datos distribuidas Las bases de datos distribuidas mejoran la disponibilidad de los datos pues permite que el sistema pueda seguir operando y los usuarios desde cualquier sitio puedan acceder a la información, exactamente igual como si los datos estuvieran en el mismo sitio del usuario. Las bases de datos, hoy en día, ocupan un lugar determinante en cualquier área ya que se emplea en diversas empresas no importando el giro de esta, es por ello que deben de tener los conocimientos necesarios para poder utilizar las bases de datos. Las bases de datos distribuidas se conectan por medio de redes de computadoras, estas pueden tener cientos de usuarios conectados concurrentemente, por lo cual es un problema en muchas empresas que compiten en los mercados mundiales. Debido al alto grado de conectividad que provee Internet a las empresas, se debe tener un buen diseño de replicación y fragmentación. Este problema consiste en tratar de determinar la mejor forma de dividir relaciones de la base de datos en fragmentos. las La fragmentación mejora la disponibilidad de la información notablemente por que el sistema puede seguir operando mientras, por lo menos, uno de los sitios esta activo, con la replicación también se mejora el rendimiento de la recuperación en consultas globales, por 67 que el resultado de semejante consulta se puede obtener localmente en cualquier sitio, esto ayuda a contar con la información necesaria de una forma más fácil y rápida y hoy en día para las empresas contra con la información en un corto tiempo es un factor clave para la toma de decisiones oportunas. Para contar con una buena dase de datos distribuida esta debe de ser replicada y fragmentada. La replicación y fragmentación permite tener disponible la información, reduce costos, mejora el rendimiento de las operación leer, aumenta la flexibilidad, se obtiene la información de una manera más fácil y rápida teniendo un mejor procesamiento de las consultas. Mediante la replicación de información, las bases de datos distribuidas pueden presentar cierto grado de tolerancia a fallos haciendo que el funcionamiento del sistema no dependa de un solo lugar como en el caso de las bases de datos centralizadas. 68 FUENTES DE INFORMACION C, Date. (2010). Sistemas de Bases de Datos. Séptima edición. México: Pearson educación. Castaño, Miguel.(2001). Diseño de Bases de datos. Primera edición .México: Alfaomega. Coronel, Carlos. (2004). Sistemas de bases de datos. Quinta edición. México: Thompson Editores Coronel, Carlos. (2004). Sistemas de bases de datos. Quinta edición. México: Thompson Editores Gómez, Miguel. (2004). Bases de datos. Segunda edición. México: Alfaomega Joyanes, Luis. (1992).Diseño conceptual de bases de datos. Primera edición. E.U.A: Addison- Wesley / Diaz de Santos Korth, Henry.(2002). Fundamentos de Bases de Datos. Cuarta edición. Madrid: Mc Graw-Hill Navathe, Elmasri. Sistemas de bases de datos. Segunda Edicion. Estados Unidos :Addison- Wesley Iberoamericana RAMEZ, Elmasri. (2006). Fundamentos de sistemas de Bases de Datos. Tercera edición. Madrid: Pearson educación Silberschatz, Abraham. (2006). Fundamentos de Bases de Datos. Quinta edición. España: Mc Graw-Hill 69 Silberschatz, Abraham. (1998). Fundamentos de Bases de Datos. Tercera edición. España: Mc Graw-Hill Valduriez, Patrick. (1999). Distributed Database Systems. Segunda edición. E.U.A: Prentice Hall Wildom, Jennifer. (1999). Introducción a los sistemas de Bases de Datos. Primera edición. México: Prentice Hall Hispanoamericana 70 INDICE DE TABLAS Número de Página Tabla 3.1. Comparación de las estrategias de replicación de fragmentos….…51 Tabla 3.2 Fragmentación Vertical de la Tabla Clientes……………………………55 Tabla 3.3 Fragmentación de la tabla en tres lugares………………………………56 Tabla 3.4 Fragmentación Vertical de la tabla Clientes……………………………..57 Tabla 3.5 Fragmentación Mixta de la tabla clientes………………………………..59 71 INDICE DE FIGURAS Número de Página Figura 1.1 Comparación de una base de datos y un sistema archivos………….….7 Figura 1.2 Muestra un entorno de sistema de base de datos simplificado, que ilustra los conceptos y terminología de un Sistema de Base de datos…………..….9 Figura 2.1 Replicación y distribución de datos en bases de datos distribuidas…..30 Figura 2.2 Ejemplo de una Base de datos Distribuida…………………………….…33 Figura 3.1 Replicación de Datos…………………………………………………….…49 Figura 3.2 ventajas y desventajas de las formas de replicación……………...........53 Figura 3.3 Fragmentación Vertical del contenido de la tabla………………………57 Figura 3.4 Contenido de una tabla después del proceso de fragmentación mezclada……..…………………………………………………………………………...60 72 73