Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. UNIDAD V BASES DE DATOS DISTRIBUIDAS Base de Datos Distribuida en Red Varias computadoras Sistema Multiprocesadores Una sola computadora con 3 discos La información debe estar lo mas cerca posible de su usuario principal 34 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Mejora las comunicaciones y el rendimiento. La información se encuentra en segmentos en distintos servidores. Segmentos de la base de datos en diferentes medios de almacenamiento. Principales Características de una Base de Datos Distribuida 1) Administrador global : Aun y cuando se tengan fragmentos de la base de datos en diferentes sitios o localidades debe de conservarse el concepto integral de una base de datos, teniendo para esto un responsable o administrador global. 2) Administrador local : Es el responsable de mantener la integridad de la base de datos en lo que a su sitio corresponde. 3) Autonomía del sitio : Se refiere a la libertad con que opere cada administración local (facultades que pueda tener). 4) Distribución transparente : Cuando se realiza la distribución se debe de vigilar 2 niveles de transparencia ; el primero es el del usuario. En donde dicho usuario debe de observar el sistema como una base de datos centralizada. El segundo nivel se refiere a los programadores, idealmente debería implicar la misma dificultad desarrollar una aplicación en un sistema centralizado y en un sistema distribuido. El nivel de usuario se cumple totalmente. 5) Redundancia : A diferencia de los sistemas centralizados en donde no es conveniente que haya redundancia en la información, en los sistemas distribuidos puede resultar conveniente en muchos casos duplicar la información en los diferentes servidores, con el fin de mejorar el rendimiento. Se acepta cierto grado de redundancia en un catalogo de clientes completo (varias sucursales) en diferentes ciudades, pero tener cuidado al dar de alta un cliente (o de baja) en alguna ciudad en especifico y hacerlo para todas las copias espejo de las demás ciudades. 6) Estructura física compleja y acceso eficiente : Dado que los datos pueden estar fragmentados se torna mas complejo llevar el control de dichas 35 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. distribuciones, así como de los procesos de actualización. El beneficio de lo anterior consiste en que se mejora notablemente el acceso de la información. ¿Por qué base de datos distribuida ? 1) Razones organizacionales y/o económicas. En algunos casos las necesidades de las empresas son las que determinan si una base de datos debe permanecer centralizada o es conveniente distribuirla. Un caso típico es el caso de empresas en crecimiento que deciden abrir nuevos almacenes o sucursales. Parte del inventario principal pasa a la(s) sucursal(es). Antes de que evolucionara la tecnología de las redes la única opción que tenían las empresas era desarrollar sus aplicaciones bajo esquemas de grandes y costosos mainframes, que por su naturaleza no consideraban la opción de distribuir la base de datos. Fue mas fácil para las empresas crecer gradualmente lo que fue provocando que las base de datos se fueran distribuyendo. 2) Optimización de las comunicaciones 36 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Independientemente del tipo de instalación o cableado de que se trate (par trenzado o coaxial), así como de la topología empleada (bus, anillo, estrella) el rendimiento de las comunicaciones depende fundamentalmente de la capacidad de las tarjetas de red (10 MBits/seg o 100 MBits/seg). Considerando lo anterior es indiscutible que el rendimiento de las comunicaciones será inversamente proporcional al número de usuarios que atienda un mismo servidor, y entonces para los casos de grandes instalaciones (muchos usuarios) nos veremos obligados a construir segmentos de red interconectados entre si, conformados obviamente por mas de un servidor lo cual necesariamente conduce a un sistema de base de datos distribuida. 3) Bases de Datos Existentes. Debido a un crecimiento descontrolado, ó a una planeación deficiente, ó a situaciones de confidencialidad etc. , pueden llegar a existir en la misma empresa bases de datos independientes. De acuerdo a los principios de una base de datos, la información de la empresa debe estar en un entorno integrado, debiendo interconectarlas para cumplir éste punto, lo que consecuentemente producirá una BDD. Servicios Soportados por un sistema típico Los servicios soportados por un sistema típicos son : 1) Acceso remoto 2) Algún grado de transparencia en la distribución 3) Administración y control 3.1) Herramientas de monitoreo de la base de datos global 3.2) Información de los enlaces 3.3) Utilización de las base de datos 3.4) Información global de los datos existentes en los diferentes sitios 4) Recuperación y concurrencia : deben soportar control de concurrencia y recuperación de transacciones distribuidas. 37 Instituto Tecnológico de la Laguna Base de Datos II Niveles de Transparencia en la distribución. Arquitectura de referencia 38 Academia de Sistemas y Computación. Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Diagrama de Fragmentación Convenciones 1) Ri indica el i-esimo fragmento de la relación global R. 2) Para distinguir los fragmentos de cada sitio utilizamos superíndices. Rij representa el i-esimo fragmento de la relación global R en el sitio j. La fragmentación se realiza en forma o manera lógica, no se hace en base a cada sitio, para permitirnos integrar los fragmentos fácilmente. 39 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Fragmentación Horizontal Como ejemplo a considerar, un catalogo de proveedores de algunas ciudades. Considerar la siguiente estructura y las características de proveedor y almacén : CATALOGO[NumParte, Descripción, Existencia, Costo, Proveedor] Proveedores : Guadalajara y Monterrey Almacenes : Monterrey y Torreón CAT1 = SLproveedor = Guad Catalogo CAT2 = SLproveedor = Mty Catalogo CATALOGO A B R S Pieza A Pieza B . . . Pieza R Pieza S . . . 100 75 20 40 Defragmentar : CATALOGO = CAT1 un CAT2 40 $ $ $ $ 50.00 Guadalajara 100.00 Guadalajara . . . 500.00 Monterrey 80.00 Monterrey . . . CAT1 CAT2 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Fragmentación Vertical. EMPLEADO [NumEmp, Nombre, RFC, Salario, Impuesto] EMP1 = PJ NumEmp, EMP2 = PJ NumEmp, Nombre, RFC, EMPLEADO Nombre, Salario, Impuesto EMPLEADO EMPLEADO 1 David Román ROD999999 2 Dafne Castro CAD000000 3 Hilda Garza GAH000000 $ 5,000.00 $ 6,000.00 $ 6,000.00 $ $ $ 450.00 700.00 700.00 EMP1 1 David Román 2 Dafne Castro 3 Hilda Garza ROD999999 CAD000000 GAH000000 1 David Román 2 Dafne Castro 3 Hilda Garza $ 5,000.00 $ 6,000.00 $ 6,000.00 EMP2 $ $ $ 450.00 700.00 700.00 Defragmentar : EMPLEADO = EMP1 JN EMP2 A) Realizar el producto cartesiano de las tablas involucradas, lo cual consiste en concatenar a cada ocurrencia de A cada ocurrencia de B. B) Seleccionar en la tabla resultante aquellos registros u ocurrencias que contengan la misma información en los atributos comunes, y el resto lo eliminamos. C) Eliminar las columnas duplicadas. 41 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Transparencia de la fragmentación (Nivel del Programador) (NIVEL 1) READ (Terminal, $SNUM) ; SELECT NAME into $NAME FROM SUPPLIER WHERE SNUM = $SNUM WRITE (Terminal, $NAME) (NIVEL 2) READ (Terminal, $SNUM) ; SELECT NAME into $NAME FROM SUPPLIER1 WHERE SNUM = $SNUM IF NOT # FOUND THEN SELECT NAME INTO $NAME FROM SUPPLIER2 WHERE SNUM = $SNUM WRITE (Terminal, $NAME) 42 Instituto Tecnológico de la Laguna Base de Datos II (NIVEL 3) READ (Terminal, $SNUM) ; SELECT NAME into $NAME FROM SUPPLIER1, AT SITE1 WHERE SNUM = $SNUM IF NOT # FOUND THEN SELECT NAME INTO $NAME FROM SUPPLIER2, AT SITE2 WHERE SNUM = $SNUM WRITE (Terminal, $NAME) Acceso remoto vía acceso primario 43 Academia de Sistemas y Computación. Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Acceso remoto vía un programa auxiliar Recuperación de un Sistema Distribuido Una transacción debe ejecutarse en forma atómica, es decir o se ejecutan todas las instrucciones de la transacción o no se ejecuta ninguna. En el caso de ejecución concurrente el efecto de ejecutar una transacción debe de ser el mismo que si se ejecutara sola en el sistema. 44 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Estructura del Sistema Cada localidad del sistema contiene 2 subsistemas : A)Manejador de transacciones. Este se encarga de : 1. Mantener una bitácora para la recuperación 2. Participar en un esquema de control de concurrencia apropiado para coordinar la ejecución en paralelo de las transacciones que se ejecuten en esa localidad. B)Coordinador de transacción. Para cada una de estas transacciones el coordinador debe : 1. Iniciar la ejecución de la transacción 2. Distribuir la transacción en las localidades adecuadas 3. Asegurar la terminación de la transacción. Vigor del Sistema En forma adicional en una configuración distribuida es necesario prever otros tipos de fallas como puede ser : 1. La falla total de una localidad 2. La interrupción de una línea de comunicación 3. Perdida de mensajes. 45 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Protocolo de Comisión de Transacciones (2 fases) Fase 1 : Iniciar la transacción El coordinador envía un mensaje de preparación a cada una de las localidades involucradas. Recibe una respuesta de cada una de las localidades involucradas Si todas las localidades contestan Li < T Lista >. Quiere decir que se puede ejecutar dicha transacción, procediendo entonces el coordinador a enviar el siguiente mensaje < Cometer T >. Con solo una de las localidades involucradas que conteste que no está lista ( Li < no T > ), el coordinador enviará el siguiente mensaje a todas las localidades < Abortar T >. Fase 2 : Cuando todas las localidades hayan respondido < T cometida > o < T abortada > termina la función del coordinador. En el caso de una falla si la recuperación es inmediata la localidad en cuestión debe de leer su bitácora buscando una instrucción cometer, abortar o realizar las siguientes acciones : A)Encontró un registro < Cometer T >, entonces determina realizar un rehacer ( REDO (T)), y al terminar contesta <T Cometida>. B)Encuentra un registro < Abortar T >, entonces realiza un deshacer (undo (T)), cuando termina contesta < T Abortada >. C)Encuentra un registro < T lista >, consulta al coordinador el cual le indicara que opción hacer. 46 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Falla del Coordinador 1. Con al menos una localidad que contenga el registro < no T > o <abortar T>,realizará un deshacer la transacción. 2. Si al menos alguna de las localidades contiene el registro < cometer T > entonces realiza un rehacer, se revisan entre las mismas localidades. Falla de una Línea de Comunicación. En este caso la localidad queda fuera, el coordinador observará a la localidad que perdió la comunicación simplemente como un servidor que falló y todos los procedimientos descritos se aplican. Control de Concurrencia A)Enfoque de coordinador único En este enfoque se prohibe que cualquier localidad solicite bloqueo de registros o ella misma los haga sin avisar al coordinador. Ventajas 1. Sencillo de implementar. 2. Fácil manejo de paralizaciones (bloqueos muertos). 47 Instituto Tecnológico de la Laguna Base de Datos II Academia de Sistemas y Computación. Desventajas. 1. Vulnerabilidad 2. Cuellos de botella B) Enfoque de mayoría Bajo este esquema cada localidad aplica los candados que necesita para sus actualizaciones. Debido a lo anterior si se puede tener bloqueos circulares y consecuentemente no será sencillo controlar las paralizaciones. Cuando hay poca redundancia de información se puede pensar en este esquema. C) Copia primaria Existen copias o respaldos en todas las localidades (alta redundancia) ; de todas las copias se debe definir una copia primaria, y cuando alguien requiera un candado de registro deberá hacerlo sobre la mencionada copia primaria. Administración de una Base de Datos Distribuida. Actividades típicas : desarrollo, mantenimiento y control. Actividades especificas : A) Políticas de acceso a la base de datos. B) Grado de autonomía de los sitios Catálogos para administrar una base de datos 1. Descripción del esquema global. 2. Descripción de la fragmentación. 3. Descripción de localizaciones. 4. Mapeo a nombres locales. 5. Métodos de acceso. 6. Estadísticas sobre la base de datos. 7. Protección y seguridad. 48