1
Bases de Datos Distribuidas
Tema VI
2
BD local
Introducción
BDDSistema de sitios
DB por sí misma
Convienen en trabajar juntos
Usuarios locales
SGBD local
Programascontrol
transacciones
Administr.Comunicac.Sitio
BDD
3
Introducción (II)
= Todos ejecutan una copia del mismo SGBD
SGBDD (DDBMS) = SGBD (DBMS) + componente social
Sistema HOMOGÉNEOHOMOGÉNEO
GATEWAYGATEWAY
relajación
4
Características de las BDD
Ventajas BDD
Eficacia
Accesibilidad
Próximo a la estructura de empresa
Desventajas BDD
Sistema
Usuarioscomplejidad
5
Productos desarrollados• Prototipos:
– SDD-1 de Computer Corporation of America (finales ‘70s).
– R*, versión distribuida de System R de IBM (ppio ‘80s).
– INGRES distribuido, versión distribuida del prototipo desarrollado por la Universidad de Berkeley, California (ppio 80’s).
• Productos comerciales:– INGRES/STAR de The ASK GROUP INC’S INGRES DIVISION.
– ORACLE 7: de Oracle.
– DB2 de IBM.
– INFORMIX, SQL SERVER, ...
6
• La tecnología relacional es un requisito para la tecnología distribuida:– Relacional = Tablas = Estr. Simple.– Red, – Jerárquicos – Listas invertidas– Etc ...
Sistema relacional
Estr. Complejas
7
Las Doce Reglas (I):
Las Doce Reglas definen una serie de condiciones que debe cumplir todo Sistema de Bases de Datos Distribuido:
Regla 0: Principio fundamental.
Desde el punto de vista del usuario, un sistema distribuido debe ser idéntico a un sistema no distribuido.
8
Las Doce Reglas (II):
Regla 1: Autonomía local.
Cada lugar debe contener:– Propietario local.– Administración local.– Responsabilidad local.– Integración local.– Representación local.
(Hasta donde sea posible llevarlo a cabo).
9
Las Doce Reglas (III):
Regla 2: No dependencia de un sitio central.
No debe existir un único sitio, ya que implicaría:– Cuello de botella.– Vulnerabilidad.
Regla 3: Operación continua.– Adición de elementos.– Actualización de versiones. NO APAGAR
10
Las Doce Reglas (IV):
Regla 4: Transparencia de localización.
El usuario desconoce dónde están físicamente los datos.
Regla 5: Transparencia de fragmentación.– División de una relación en partes para su
almacenamiento.
– Funcionalidad: cada lugar tiene los datos que usa con mayor frecuencia.
– Ejemplo:
11
Las Doce Reglas (V):Percepción del usuario:
ALUMNO CARRERA NOTAS21.466.552 I.T. Informática x x x x x x21.467.539 I.T. Obras Públicas x x x x x x21.467.640 L. Derecho x x x x x x21.468.201 L. Filología Inglesa x x x x x x********* ******************* * * * * * ********** ******************* * * * * * *
Fragmento Escuela Politécnica:
ALUMNO CARRERA NOTAS21.466.552 I.T. Informática x x x x x x21.467.539 I.T. Obras Públicas x x x x x x
Fragmento Facultad de Derecho:
ALUMNO CARRERA NOTAS21.467.640 L. Derecho x x x x x x
Fragmento Facultad de Filosofía y Letras
ALUMNO CARRERA NOTAS21.468.201 L. Filología Inglesa x x x x x x
12
Las Doce Reglas (VI):
Sitio A
Sitio B
Sitio C
Sitio A
Sitio B
Sitio C
Fragmentación Horizontal:Oper. Relac. de RESTRICCIÓN
Fragmentación Vertical:Oper. Relac. de PROYECCIÓN
Extracción de tuplas que cumplen condición
Extracción de atributos de una relación (conservando su clave primaria)
13
Las Doce Reglas (VII):La recomposición se hace con operaciones relacionales:
– Reunión: Vertical.
– Unión: Horizontal.
• Las operaciones relacionales apoyan la fragmentación (y como consecuencia la distribución).
• El usuario no debe notar la fragmentación.
14
Las Doce reglas (VIII):
Regla 6: Transparencia de réplica.
• La réplica proporciona:
– VENTAJAS: • Mayor Prestación: los datos son locales.
• Mayor disponibilidad: los datos son accesibles siempre.
– DESVENTAJAS• Hay que propagar las actualizaciones.
• La creación y destrucción de réplicas debe hacerse transparente al usuario.
15
Las Doce reglas (IX):
Regla 7: Proceso Distribuido de Consultas.
• Sistema relacional Herramientas de consulta OK
• Ejemplo: “Obtener los alumnos matriculados en derecho”• Consulta desde la EPSA.
• Datos en derecho.
• N filas cumplen
RELACIONAL 2 mensajes = 1 petición + 1 resultado
NO RELACIONAL
2*N mensajes = N peticiones + N resultados
16
Las Doce reglas (X):
Proceso de optimización:
Rx Ry
Rx U Ry <decisión>
Lugar X Lugar Y
Rx viaja a Y
Ry viaja a X
Rx, Ry viajan a Z
17
Las Doce reglas (XI):Regla 8: Manejo distribuido de transacciones.
• Transacción distribuida: varios agentes de la transacción en varios lugares.
• Control de recuperación: 1 transacción atómica. Todos los agentes avanzan o retroceden juntos.
• Control de concurrencia: Bloqueos mediante paso de mensajes.
Regla 9: Transparencia de equipo.
• El DBMS se ejecutará igual sea cual sea el equipo.
18
Las Doce reglas (XII):Regla 10: Transparencia del s.o.
• El DBMS debe ser multioperativo sin afectar al usuario.
Regla 11: Transparencia de red.
• El DBMS debe soportar múltiples redes sin afectar al usuario.
Regla 12: Transparencia de DBMS.
• Se pueden manejar distintas copias de DBMS si manejan la misma norma estándar de SQL: Oracle, Informix, Multibase, etc.
19
Problemas de las BDD• Lentitud de las WAN respecto a un disco local.
• Formas de solucionarlo:
– Minimizar el uso de la red:• Número de mensajes.
• Volumen de mensajes.
– Optimizar:• Proceso de consultas.
• Administración del catálogo.
• Propagación de actualizaciones.
• Control de recuperación.
• Control de concurrencia.
20
Optimización consultas• Fase 1 - Optimización global:
Toma de decisiones de desplazamiento de tablas por consultas previas.
– Ejemplo: Un sitio X hace la consulta Q = Ry U Rz.
Paso1: Por consulta previa se sabe que:Ry = 100 tuplas en YRz = 100000 tuplas en Z
Paso 2: Toma de decisiones:mover Ry a Z 100 mensajes OKmover Rz a Y 1.000.000 mensajes NOKmover Ry-Rz a X 1.100.000 mensajes NOK
• Fase 2 - Optimización local: Se optimiza la operación de la unión tomando las relaciones más convenientes para minimizar su tiempo.
21
Optimización consultas (II)• Problema:
Proveedores(10.000)
Piezas(100.000)(10 rojas)
Suministros(1.000.000)
(100.000 por proveedores de Londres)
LUGAR A
LUGAR B
Datos conocidos:
1 tupla = 200 bits.
Vel. Transm. = 50000 bits/seg.
Tpo. Acceso = 0.1 seg.
Se pide: “Proveedores de Londres que suministran piezas rojas”
22
Optimización consultas (III)Estrategias:• 1º) Piezas A :
T(1) = 0’1+(100.000*200) / 50.000 = 400 s. = 6’67 minutos.
• 2º) Proveedores y suministros B : T(2) = (0'1+0'1) + ( (10.000+1.000.000)*200/50.000 = 4040 s. = 1'12 horas
• 3º) Consultar suministros de Londres en A y comprobar pieza en B: T(3) = 0'1 * ( 2 * 100.000 ) = 20.000 s. = 5'56 horas
• 4º) Consultar piezas rojas en B y comprobar suministros en A:T(4) = 0’1 * (2*10) = 2 s.
• 5º) Obtener suministros Londres en A B : T(5) = 0’1 + (100.000*200)/50.000 = 400 s. = 6’67 min.
• 6º) Obtener piezas rojas en B A :T(6) = 0’1 + (10*200) / 50.000 = 0’1 s.
23
Administración del catálogo• Información del catálogo:
– Información habitual:• Relaciones• Índices• Usuarios
– Información de control:• transparencia de localización• transparencia de fragmentación• transparencia de réplica
• Almacenamiento del catálogo:– Centralizado. Viola regla 2: “no dependencia de un sitio central”.
– Réplicas en cada lugar: Viola regla : “autonomía”.
– Catálogo dividido entre todos lugares: Ops. remotas costosas.
– Catálogo dividido y una copia global en un sitio: Viola 2.
• Conclusión: todos los métodos anteriores tienen problemas.
24
Administración del catálogo (II)• Ejemplo real: Nominación de objetos en R*:
– Nombre de impresión: Lo usan los usuarios.
– Nombre de sistema: Identificador único interno.• Id. del creador.
• Id. del sitio del creador.
• Nombre local del objeto.
• Id. del lugar de nacimiento.
[email protected]@ALICANTE
– Sinónimos:CREATE SYNONYM ALI-PIEZAS FOR;
[email protected]@ALICANTE
– Cada sitio mantiene:• Copia total de la tabla de sinónimos.
• Localización actual de un objeto nacido aquí.
• Relación de objetos actualmete aquí.
25
Administración del catálogo (III)
• Proceso de consultas en R*:– Consulta local del objeto en la tabla de sinónimos.
– Consulta remota a lugar nacimiento para conocer lugar actual del objeto.
– Consulta remota a lugar actual para obtener el objeto.
(TOTAL = 3 mensajes, 2 de ellos remotos)
• Proceso de migración en R*:– Borrar objeto del lugar de origen.
– Insertar objeto en lugar de destino.
– Actualizar en lugar de nacimiento.
26
Propagación de actualizaciones
• Método: Propagar toda actualización a todas las copias.
• Problema: Lugares inaccesibles fracaso
• Método de la “copia primaria”: – 1 copia primaria y n copias secundarias.
– Las copias primarias se reparten (no centralización).
– El proceso de actualización finaliza al actualizar la primaria.
– La copia primaria se encarga de actualizar las demás (cuando puede).
27
Control de recuperación• Protocolo de compromiso en dos fases: commit-rollback• Evitar medias operaciones: todo o nada.• El coordinador ordena:
– Fase 1:• Pedir OK o NOK a cada gestor local.• Cada gestor guarda una bitácora de las op’s efectuadas.
– Fase 2:• Si todos OK COMMIT.• Si algún NOK ROLLBACK.• El resultado se envía a cada gestor local para que confirmen o
deshagan.• Un fallo de interrupción se recupera de la bitácora.• Consideraciones:
– No dependencia de un sitio central (si varía el coordinador).– Comunicación coordinada participación costo extra.– Pérdida de autonomía local.
28
Control de concurrencia• Mediante bloqueos.
• Costo adicional: Una transacción sobre un objeto con N copias:– N solicitudes de bloqueo.
– N concesiones de bloqueo.
– N mensajes de actualización.
– N verificaciones.
– N solicitudes de liberación.
– TOTAL = 5*N mensajes.
• Estrategias anti-interbloqueos: – estados parciales - estados globales.
29
GATEWAYS (pasarelas)• Funciones:
– Realizar protocolos de intercambio de mensajes en cuanto a formato.
– Ejecución de llamadas remotas.
– Resolver problemas de tipos de datos.
– Compaginar SQLs.
– Compaginar información de retorno.
– Compaginar catálogos.
– Hacer participar a todos del protocolo de compromiso en 2 fases.
– Asegurar los interbloqueos.
• Problema: costoso y no 100% funcional.
30
Cliente/servidor en DB distribuidas
• Nuevos estándares para cliente/servidor.
• P.ej. SQL incorpora:– connect.
– disconnect.
• Otros estándares:– RDA (Remote Data Access) para SQL define formatos para paso
de mensajes en forma de requerimientos SQL, información y paso de resultados. Mismo SQL en cliente y servidor.
– DRDA (Distributed Relational Database Architecture) permite diversos dialectos de SQL en cliente y servidor.
31
Cliente/servidor en DB distribuidas(II)
• Procedimientos almacenados:
– Ventajas:• Reducen el número de mensajes.
• Mayor independencia.
• Comparte con varios clientes.
• Optimiza en tiempo de compilación.
• Mayor seguridad en el acceso a los datos.
– Desventajas:• Falta de estándares.