Bases de Datos Distribuidas – Unidad 1 Curso: Base de Datos Distribuidas Unidad 1: Fundamentos de Sistemas de Base de Datos Distribuidas M. en C. José Mario Martínez Castro Chilpancingo, Gro., Febrero del 2007 -1- Bases de Datos Distribuidas – Unidad 1 CONTENIDO 1. Fundamentos de bases de datos distribuidas . Ventajas de las bases de datos distribuidas . Los doce objetivos de una base de datos distribuidas . Sistema cliente /servidor . Problemas de los sistemas distribuidos . Soporte del SQL -2- Bases de Datos Distribuidas – Unidad 1 FUNDAMENTOS DE SISTEMAS DE BASES DE DATOS DISTRIBUIDAS MOTIVACIONES Tecnología de base de datos Redes de computadoras Distribución Integración Sistemas de bases de datos distribuidas Integración Integración ≠ Centralización COMPUTACION DISTRIBUIDA Un concepto en busca de un nombre y una definición. Un conjunto de elementos de procesamiento autónomos (no necesariamente homogéneos) que se encuentran interconectados mediante una red de comunicaciones y que cooperan en la ejecución de sus tareas asignadas. Términos sinónimos: ¾ ¾ ¾ ¾ ¾ ¾ ¾ Función distribuida. Procesamiento distribuido de datos. Procesamiento satelital. Procesamiento dorsal. Computadoras de propósito especial/dedicado. Sistemas de tiempo compartido. Sistema modular funcional. -3- Bases de Datos Distribuidas – Unidad 1 ¿QUE ESTA DISTRIBUIDO? 9 9 9 9 Lógica de procesamiento. Funciones. Datos. Control. ¿QUE ES UN SISTEMA DE BASE DE DATOS DISTRIBUIDA? Una Base de Datos Distribuida (BDD) es aquella en la que sus datos se encuentran repartidos en varias computadoras que están interconectadas por una red de comunicaciones. Un Sistema Administrador de Bases de Datos Distribuidas (SABDD) es el software que administra la BDD y proporciona un mecanismo de acceso que hace transparente esta distribución a los usuarios. Sistema de Base de Datos Distribuida (SBDD) = BDD + SABDD ¿QUE NO ES UN SBDD? 9 Un sistema de cómputo de tiempo compartido. 9 Un sistema multiprocesador fuertemente o débilmente acoplado. 9 Un sistema de base de datos, el cual reside en un solo nodo de la red (esto es una base de datos centralizada). SMBD CENTRALIZADAS S MBD DISTRIBUIDAS -4- Bases de Datos Distribuidas – Unidad 1 IMPLICITAMENTE SE SUPONE QUE ¾ Los datos están almacenados en diferentes sitios (cada uno de los sitios lógicamente consiste de un procesador). ¾ Los procesadores en diferentes sitios se encuentran interconectados vía una red de comunicaciones (no multiprocesadores). Sistemas de bases de datos en paralelo. ¾ La base de datos distribuida es una base de datos, no una colección de archivos (datos lógicamente relacionados que son presentados al usuario con un patrón de acceso). Modelo de datos relacional. ¾ Un SABDD es un SABD completo. No es un sistema de archivos distribuidos, ni un sistema TP. ARQUITECTURA DE MEMORIA COMPARTIDA Ejemplos: Multiprocesadores simétricos “mainframes” (IBM 3090, DPS8 de Bull). -5- (Sequent, Encore) y algunos Bases de Datos Distribuidas – Unidad 1 ARQUITECTURA DE DISCO COMPARTIDO Ejemplo: V AXcluster de DEC, IMS/VS de IBM y Data Sharing. ARQUITECTURA CON NADA COMPARTIDO Ejem plos: DBC de Teradata, Tandem, Paragon de Intel, 3600 y 3700 de NCR. APLICACIONES Manufactura (especialmente en manufactura multiplanta). Comando y control militar. SIGs corporativos. Aerolíneas. Cadenas hoteleras. Cualquier organización que tenga una estructura organizacional descentra-lizada. VENTAJAS DE LOS SBDDs. 9 9 9 9 9 9 9 Razones económicas y organizacionales. Fiabilidad y disponibilidad. Distribución del control y utilización compartida de datos. Reducción de tráfico en la comunicación de datos. Agilización del procesamiento de consultas. Interconexión de bases de datos existentes. Crecimiento incremental. -6- Bases de Datos Distribuidas – Unidad 1 OBJETIVOS DE LAS BDDs. Autonomía local. Independencia de un sitio central. Operación continua. Transparencia de lozaclización. Transparencia de fragmentación. Transparencia de repetición. Procesamiento distribuido de consultas. Procesamiento de transacciones distribuidas. Transparencia de “hardware”. Transparencia de sistema operativo. Transparencia de red. Transparencia de SMBD. DESVENTAJAS DE LOS SBDD ¾ ¾ ¾ ¾ ¾ Falta de experiencia. Complejidad. Costo. Distribución del control. Dificultad de cambio. PROBLEMATICAS EN LOS SABDDs Diseño de bases de datos distribuidas. • ¿Cómo distribuir la base de datos? • Distribución de la base de datos replicada y no-replicada. • Problema relacionado con la administración del diccionario. Procesamiento de consultas. • Problema de optimización. • Min {costo = transmisión de datos + procesamiento local}. • La formulación general es un problema NP completo. • Conversión de transacciones de usuario de instrucciones de manipulación de datos. PROBLEMÁTICA EN EL PROCESAMIENTO DE CONSULTAS El proceso de optimización de consultas necesita ser distribuido; consta de dos fases: Optimización Global: o Medios de transmisión. o Distribución de subconsultas. -7- Bases de Datos Distribuidas – Unidad 1 Optimización local: o Acceso a disco. o Manipulación de memoria. o Uso de índices. OPCIONES PARA ALMACENAR EL DICCIONARIO PROBLEMATICAS EN LOS SABDDs Control de concurrencia. • Sincronización de accesos concurrentes. • Mantenimiento de congruencia y aislamiento de los efectos de las transacciones. • Manejo de interbloqueo. Fiabilidad. • • ¿Cómo hacer el sistema resistente a fallas? Atomicidad y durabilidad. -8- Bases de Datos Distribuidas – Unidad 1 RELACION ENTRE PROBLEMAS Administración de directorio Procesamiento de consultas Diseño de distribución Fiabilidad Control de concurrencia Administración de interbloqueo PROBLEMATICAS RELACIONADAS Soporte de sistema operativo. ¾ Sistema operativo con soporte adecuado para operar bases de datos. ¾ Dicotomía entre requerimientos de procesamiento de propósito general y requerimientos de procesamiento de bases de datos. Sistemas abiertos e interoperabilidad. ¾ Sistemas multibases se datos. ¾ Escenarios con mayor probabilidad. ¾ Problemáticas de paralelismo. PROMESAS DE LOS SABDDs 9 9 9 9 Manipulación transparente de datos distribuidos, repetidos y fragmentados. Mejora en confiabilidad y disponibilidad por medio de transacciones distribuidas. Mejora en la eficiencia. Expansión de sistemas fácil y económica. -9- Bases de Datos Distribuidas – Unidad 1 SOPORTE DE TRANSPARENCIA Aún no hay de repetición. Tampoco hay de fragmentación. o Pudiera venir la fragmentación horizontal. Transparencia de distribución aún limitada. o Especificar camino. o Manejo de alias. o Login remoto a un SMBD. La mayoría son múltiples clientes con un solo servidor. ARQUITECTURA CLIENTE/SERVIDOR Una arquitectura es un conjunto de definiciones, reglas y términos que se emplean para construir un producto. La arquitectura Cliente/Servidor es un tipo de cómputo distribuido y cómputo cooperativo. Las partes que intervienen en esta arquitectura son el cliente (generador de peticiones), el Servidor (ofrece el servicio) y el elemento que enlaza es la red de cómputo. Los actores establecen una comunicación entre pares, o sea de igual a igual, dado que los clientes de una aplicación pueden actuar como servidores de otra. MODELO CLIENTE/SERVIDOR El usuario interactúa con un cliente. • Uso de GUI. 3 capas básicas: • Aplicaciones • Servicios del sistema. • Hardware. Puede presentarse a nivel servicios del sistema. - 10 - Bases de Datos Distribuidas – Unidad 1 Petición PROCESO CLIENTE Usuario PROCESO SERVIDOR Respuesta SERVICIOS DEL SITEMA SERVICIOS DEL SITEMA HARDWARE HARDWARE Cliente Servidor VENTAJAS DE LA ARQUITECTURA CLIENTE/SERVIDOR 9 9 9 9 Permite mejor aprovechamiento de capacidad de cómputo (reparte el trabajo). Reduce el tráfico en la red (viajan solicitudes). Opera bajo sistemas abiertos. Permite el uso de interfaces gráficas versátiles. DEFINIENDO LOS COMPONENTES Servidor. Conjunto de software y hardware que responde a los requerimientos de un cliente. Tipos de Servidores: ¾ ¾ ¾ ¾ ¾ ¾ Servidor de archivos Servidor de bases de datos. Servidor de comunicaciones. Servidor de impresión. Servidor de Terminal. Servidor de aplicaciones, imágenes, etc. ACTIVIDADES COMUNES DEL SERVIDOR Acceso, almacenamiento y organización de datos. Actualización de datos almacenados. Administración de recursos compartidos. Ejecuta toda loa lógica para procesar una transacción. Datos, poder de CPU, almacenamiento en disco, capacidad de impresión, manejo de memoria, comunicaron, etc. DEFINIENDO LOS COMPONENTES - 11 - Bases de Datos Distribuidas – Unidad 1 Cliente. Conjunto de software y hardware que involucra los servicios de uno o varios servidores. El cliente oculta al servidor y la red. Detecta e interpreta peticiones de la aplicación y puede redireccionarla. Dedicado a la sesión del usuario (inicia … termina). El método más común por el cual solicita los servicios a un servidor es por medio de RPCs. ACTIVIDADES COMUNES DEL CLIENTE A NIVEL APLICACIÓN Mantener y procesar todo el dialogo con el usuario. Manejo de pantallas. Menús e interpretaciones de comandos. Introducción de datos y validación. Procesamiento de ayudas. Recuperación de errores. DEFINIENDO LOS COMPONENTES Red de Cómputo. Conjunto de software y hardware que enlaza a los clientes con los servidores. Se clasifican en los siguientes tipos: ¾ Redes de área local (LAN). ¾ Redes de área metropolitana (MAN). ¾ Redes de área amplia (WAN). Tecnologías que se pueden aplicar: ¾ ¾ ¾ ¾ ¾ ¾ Ethernet (10 Mbps). Token Ring (4 o 16 Mbps). FDDI (100 Mbps). CDDI (100 Mbps). ATM (44.736 Mbps). Frame Relay (2.048 Mbps). ATRIBUTOS DE LA COMUNICACION El cliente debe localizar e iniciar la comunicación con el servidor (o servidores). No usa la tecnología de compartir archivos. El modelo ejecuta el programa en el servidor y sólo se mandan los resultados de I/O (tráfico = datos leídos o escritos). Estilo transaccional y cooperativo. - 12 - Bases de Datos Distribuidas – Unidad 1 Estilo de base de datos con servidor de archivos compartidos. Estilo de base de datos con arquitectura cliente/servidor. TÉCNICAS DE PROCESAMIENTO Y PROTOCOLOS ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ Llamados a procedimientos remotos (RPC’s). Interacciones SQL cliente/servidor. Memoria compartida. Paso de mensajes (con conexión o sin ella). SPX/IPX. NETBEUI. TCP/IP. Names Pipes. UDP. Sockets. - 13 - Bases de Datos Distribuidas – Unidad 1 Llamadas a Procedimientos Remotos (RPC). Proceso Cliente Proceso Servidor Main(){ some code; … call rpc(a,b,c,); … más código; } receive(x,y,invocador) Procedure rpc(x,y,z){ código que usa x,y; … return(z=result); } send((x=a, y=b), rpc) receive(c=z, rpc) send(z,invocador) Interacción SQL y ODBC DISTRIBUCION ENTRE CLIENTE Y SERVIDOR Generalmente tres son los elementos a distribuir entre cliente y servidor: 9 El manejo de datos. 9 La aplicación. 9 La presentación. En los extremos se encuentran los casos más frecuentes: - 14 - Bases de Datos Distribuidas – Unidad 1 9 Presentación en el cliente, aplicación y manejo de datos en el servidor. 9 Presentación y aplicación en el cliente, manejo de datos en el servidor. DESARROLLO DE APLICACIONES CLIENTE/SERVIDOR Lenguajes de tercera generación (C, COBOL, etc., con las bibliotecas de APIs adecuadas). Lenguajes de cuarta generación (Progress, Oracle, Informix, Sybase, pueden operar con una variedad de BDs con sus controladores correspondientes). Ambientes de desarrollo (incluye repositorio de procedimientos, mensajes de error, mensaje de ayuda, etc., así como herramientas de control de versiones, diseño, desarrollo de prototipos, usuario final, etc.). Líderes en ambientes Windows: Power Builder de PowerSoft y SQL Windows de Centura Software. - 15 -