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
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
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
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.
Niveles de Transparencia en la distribución. Arquitectura de referencia
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.
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 Pieza A 100 $ 50.00 Guadalajara B Pieza B 75 $ 100.00 Guadalajara . . CAT1 . . . . R Pieza R 20 $ 500.00 Monterrey S Pieza S 40 $ 80.00 Monterrey . . CAT2 . . . . Defragmentar :
CATALOGO = CAT1 un CAT2
Fragmentación Vertical.
EMPLEADO [NumEmp, Nombre, RFC, Salario, Impuesto] EMP1 = PJ NumEmp, Nombre, RFC, EMPLEADO
EMP2 = PJ NumEmp, Nombre, Salario, Impuesto EMPLEADO
EMPLEADO
1 David Román ROD999999 $ 5,000.00 $ 450.00 2 Dafne Castro CAD000000 $ 6,000.00 $ 700.00 3 Hilda Garza GAH000000 $ 6,000.00 $ 700.00
EMP1
1 David Román ROD999999
2 Dafne Castro CAD000000 3 Hilda Garza GAH000000
EMP2
1 David Román $ 5,000.00 $ 450.00 2 Dafne Castro $ 6,000.00 $ 700.00 3 Hilda Garza $ 6,000.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.
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)
(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 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.
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.
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.
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.
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.