370 likes | 656 Views
Universidad Argentina J. F. Kennedy - Año 2008. Base de Datos Distribuidas. Bases de Datos II. Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Pssw => kennedy. Base de Datos Distribuida. Más de un DBMS En más de una máquina Distribuidos en más de un sistema operativo
E N D
Universidad Argentina J. F. Kennedy - Año 2008 Base de DatosDistribuidas Bases de Datos II Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Pssw => kennedy
Base de Datos Distribuida • Más de un DBMS • En más de una máquina • Distribuidos en más de un sistema operativo • En más de una red En vez de un DBMS en una única máquina, ahora podríamos tener:
Base de Datos Distribuida • Cada sitio (DBMS) es una base de datos completa. • Los DBMS acuerdan trabajar juntos • Cualquier usuario accede como si los datos estuvieran en su SITIO, MAQUINA y DBMS.
Base de Datos Distribuida Una DB distribuida es conceptualmente equivalente a una DB virtual cuyas partes están en varia bases de datos “REALES” distintas Para funcionar así se requiere de un componente de SOFT en el DBMS
Base de Datos Distribuida Cada DBMS tiene: • Sus almacenamientos • Sus usuarios • Su sistema de recuperación • Su bitácora o LOG • Su componente de comunicación • Sus componentes de funcionalidad de sociedad con otros DBMS
Base de Datos Distribuida Los componentes Distribuido contemplan: • Misma máquina • Distinta maquina (LAN / WAN) • Distintas tipologías de red • Distintos sistemas operativos
Base de Datos Distribuida Ventajas: • Los datos LOCALES se almacenan localmente pudiendo atender peticiones locales aun cuando el resto de los DBMS no funcionen • Permite el acceso a datos REMOTOS almacenados en otros DBMS • La estructura de la base de datos distribuida refleja la estructura de la empresa.
Base de Datos Distribuida Desventajas: • Los sistemas distribuidos son más complejos. • Ante el usuario (analista) el sistema distribuido luce (o debería lucir) igual a uno que no es distribuido. • Todos los problemas deberían ser a nivel de implementación (DBA).
Base de Datos Distribuida ¿Qué requisitos debe cumplir una BD Dist: Regla Cero: Recordemos que desde el punto de vista del usuario un sistema distribuido debería ser idéntico a un sistema no distribuido.
Base de Datos Distribuida Se definieron las siguientes Reglas:
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS Todas las operaciones locales se deben resolver localmente
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS Es como una consecuencia del anterior. Si hubiera un sitio central del que dependieran el resto de los sitios, en caso de que el CENTRAL no funcionara quedarían los sitios LOCALES sin atender, ni siquiera las consultas locales.
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS Se espera que mejore la Operación Continua ya que da mejor: • CONFIABILIDAD por que no se rompen todos los componentes juntos. • DISPONIBILIDAD por que si se trabaja con replica de datos, si un DBMS no responde, puede hacerlo otro y cuenta con los datos para ello.
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS El usuario no necesita saber donde están fisicamente los datos
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS El usuario no necesita saber como están fragmentados los datos
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS El usuario no necesita saber cuales datos replicados y cuales no
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS Procesar 2 SQL implica que se deben enviar y recibir 2 msg a 2 DBMS. Fundamental para resolver estos casos el papel que cumple el OPTIMIZADOR
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS Debe manejar la concurrencia (bloqueo) y la confirmación en 2 fases.
Base de Datos Distribuida • AUTONOMIA LOCAL • Ninguna DEPENDENCIA de un SITIO CENTRAL • OPERACIÓN CONTINUA • INDEPENDENCIA de UBICACIÓN • INDEPENDENCIA de FRAGMENTACION • INDEPENDENCIA de REPLICACION • PROCESAMIENTO de CONSULTAS DISTRIBUIDAS • ADMINISTRACION de Transacciones DISTRIBUIDAS • INDEPENDENCIA HARWARD • INDEPENDENCIA SISTEMA OPERATIVO • INDEPENDENCIA RED • INDEPENDENCIA DBMS
Base de Datos Distribuida Algunos Problemas: • El Procesamiento de consulta • La Administración de catálogo • La Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia
Base de Datos Distribuida Algunos Problemas: • El procesamiento de consulta • La Administración de catálogo • La Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia • PASO 1: Optimizar consulta GLOBAL. Hay que definir una estrategia para determinar en donde ejecutar la consulta, como distribuira joins, etc • PASO 2: Optimización LOCAL
Base de Datos Distribuida Algunos Problemas: • El Procesamiento de consulta • La Administración de catálogo • La Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia • CENTRALIZADO (en un solo DBMS) • REPLICADO. En todos los DBMS • DIVIDIDO: cada DBMS tiene el suyo. Por lo tanto Catalogo total = UNION de los catálogos.
Base de Datos Distribuida Algunos Problemas: • El Procesamiento de consulta • La Administración de catálogo • El Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia Una forma es: Existe una copia primaria en cualquier DBMS y toda actualización se hace en la copia primaria y se replica luego al resto.
Base de Datos Distribuida Algunos Problemas: • El Procesamiento de consulta • La Administración de catálogo • La Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia Complica la lógica haciendo uso del COMMIT en 2 fases.
Base de Datos Distribuida Algunos Problemas: • El Procesamiento de consulta • La Administración de catálogo • El Propagación de las actualizaciones o Replicas • El Control de Recuperabilidad • El Control de concurrencia • El bloqueo, desbloqueo, liberar tuplas pasan a ser mensajes lo que implica una sobre carga. • En el caso de replica, la copia primaria podría administrar el bloqueo total del objeto
Base de Datos Distribuida BD Distribuidas vs Cliente Servidor: • Una estructura cliente servidor esta compuesta de muchos clientes (aplicativos) que no tienen datos y que van contra una o más DB. • La diferencia con una DB distribuida es que en una estructura cliente servidor las bases pueden o no estar distribuidas.
Base de Datos Distribuida Store Procedure: • Los Programas se almacenan en el Server • Se llaman desde el cliente vía RPC • Mejora el rendimiento al no trabajar registro x registro • Oculta datos al usuario • Un STORE PROC puede ser compartido por varios clientes
Base de Datos Distribuida Store Procedure: • El PLAN de acceso puede en muchos casos no ser dinámico • Puede proporcionar más seguridad • Permite ejecutar sin acceso directo a los datos. Funciona como una subroutina sin necesidad de que el usuario arme el acceso a la DB
Base de Datos Distribuida Gate Way: • Ajusta formatos de mensajes • Ejecutar cualquier SQL enviado • Transformación de datos (fecha, hs. reales, etc) • Adapa SQLs entre distintos DBMS • Transformar catálogo • Administrar Two Phase Commit • Administrar bloqueos