fundamentos de sistemas de bases de datos distribuidas

Anuncio
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 -
Descargar