Bases de Datos Distribuidas Implementación Carlos A. Olarte ([email protected]) BDII Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Contenido 1 Conceptos Básicos 2 Sentencias locales y remotas 3 Sinónimos y Vistas 4 Replicación y Fragmentación Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Algunos Conceptos Net8: Protocolo de comunicación entre los clientes y las instancias o servidores Oracle Oracle Names: Servicio de directorio global de nombres Database Link: Definen un path unidireccional para comunicar dos instancias Oracle Nombre de los objetos: usr .obj@dblink Base de datos distribuida: Conjunto de bases de datos almacenadas en diferentes servidores Distribución de procesos: Cada nodo se encarga de tareas especı́ficas: DB, web server, facturación, etc. Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Continuación Pure Distributed Database: Los datos tienen una única copia y se utilizan transacciones globales Database Replication: Generar copias de los objetos en los diferentes nodos ganando concurrencia, disminución en el tráfico, tolerancia a fallos, etc Heterogeneous Service: Servicio para realizar conectividad entre servidores Oracle y otros SGBDs. Heterogeneous Service Agent: Agentes que realizan el puente entre Oracle y los otros SGBDs. Proveen transacciones distribuidas, transparencia, optimización global, et Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Transacciones Remótas y Globales Remote Statament select * from usr.table@db2; Distributed Statement Select * from table where x not in ( select x from y@db2); RPC(Remote Procedure Calls) Pck.func@db2(arg1); Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación continuación Two Phase Commit: Mecanismo para asegurar la atomicidad en las transacciones distribuidas Transparencia: Los usuarios no deben conocer la localización fı́sica de los objetos Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Database Links Públicos: Todos los esquemas pueden utilizarlo Privados: Solo quien crea el link tiene derecho a utilizarlo, ası́ como los procedimientos de su propio esquema Compartidos: Cuando un link es creado en modo share, todas las peticiones se encausan por un mismo canal de comunicación (Multi Threaded Mode) Ejemplos Create database link db2 connect to cc08001 identified by cc08001 using ’academico’; Create share public database link db1 connect to c10001 idenitified by c10001 using ’academico’; Select * from cat@db2; Drop database link db1; Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Sinónimos y Vistas Permiten solucionar el problema de la transparencia de red Create synonym tabla1 For tabla1@db1 Create view tabla2 as select codigo,nombre from tabla2@db2; Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Pasos para la Replicación 1 Diseñar el ambiente (Que tablas van a ser replicadas, sobre que usuarios, etc) 2 Creación de DBLinks 3 Creación de Snapshots logs1 (Master Site) 4 Creación de Snapshots 5 Creación de los Snapshots site refresh group 1 Materialized view log Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Ejemplo Oracle 8i Instanacia 1 Create table original (codigo number ....); Create snapshot log on original; Instanacia 2 Create database link academico .... ; Create snapshot replica refresh fast start with sysdate next sysdate +1 as select * from original@academico Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Ejemplo Oracle 9i Instanacia 1 Create table original (codigo number ....); Create materialized view log on tabla with primary key including new values; Instanacia 2 Create database link.... Create materialized view replica refresh fast start with sysdate next sysdate+1 with primary key as original@dblink; Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación Ejercicio Una tienda de video tiene 3 sucursales: Sur, Centro y Norte. Cada sucursal puede tener un número diferente de ejemplares de cada pelı́cula. Los usuarios del sistema se deben poder registrar en una sucursal determinada pero pueden rentar pelı́culas en cualquiera de las sucursales. Desde la oficina central se debe poder extraer la información de las pelı́culas rentadas de cada usuario. 1 Modelo E/R lógico global 2 modelo E/R por instancia (esquema de replicación) 3 Creación de tablas y logs de vistas materializadas 4 Creación de Data base links 5 Creación de réplicas 6 Revisar la actualización de las réplicas Carlos A. Olarte ([email protected]) BDII Bases de Datos Distribuidas Implementación