ApuntesBDDsU1.pdf

15
Bases de Datos Distribuidas – Unidad 1 - 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

Transcript of ApuntesBDDsU1.pdf

Page 1: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 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

Page 2: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 2 -

C O N T E N I D O

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

Page 3: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 3 -

FUNDAMENTOS DE SISTEMAS DE BASES DE DATOS DISTRIBUIDAS

MOTIVACIONES

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.

Tecnología de base de datos

Redes de computadoras

Sistemas de bases de datos

distribuidas

Integración

Integración

Integración ≠ Centralización

Distribución

Page 4: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 4 -

¿QUE ESTA DISTRIBUIDO?

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?

Un sistema de cómputo de tiempo compartido. Un sistema multiprocesador fuertemente o débilmente acoplado. 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

SMBD DISTRIBUIDAS

Page 5: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 5 -

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 (Sequent, Encore) y algunos “mainframes” (IBM 3090, DPS8 de Bull).

Page 6: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 6 -

ARQUITECTURA DE DISCO COMPARTIDO

Ejemplo: V AXcluster de DEC, IMS/VS de IBM y Data Sharing. ARQUITECTURA CON NADA COMPARTIDO

Ejemplos: 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.

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.

Page 7: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 7 -

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.

Page 8: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 8 -

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.

Page 9: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 9 -

RELACION ENTRE PROBLEMAS

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

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.

Administración de directorio

Diseño de distribución

Control de concurrencia

Administración de interbloqueo

Procesamiento de consultas

Fiabilidad

Page 10: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 10 -

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.

Page 11: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 11 -

VENTAJAS DE LA ARQUITECTURA CLIENTE/SERVIDOR

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

PROCESO SERVIDOR

SERVICIOS

DEL SITEMA

HARDWARE

PROCESO CLIENTE

SERVICIOS

DEL SITEMA

HARDWARE

Cliente ServidorUsuario

Respuesta

Petición

Page 12: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 12 -

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.

Page 13: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 13 -

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.

Page 14: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 14 -

Llamadas a Procedimientos Remotos (RPC).

Interacción SQL y ODBC

DISTRIBUCION ENTRE CLIENTE Y SERVIDOR

Generalmente tres son los elementos a distribuir entre cliente y servidor:

El manejo de datos. La aplicación. La presentación.

En los extremos se encuentran los casos más frecuentes:

Proceso Cliente

send((x=a, y=b), rpc) receive(c=z, rpc)

Main(){ some code; … call rpc(a,b,c,); … más código; }

Proceso Servidor

receive(x,y,invocador) send(z,invocador)

Procedure rpc(x,y,z){ código que usa x,y; … return(z=result); }

Page 15: ApuntesBDDsU1.pdf

Bases de Datos Distribuidas – Unidad 1

- 15 -

Presentación en el cliente, aplicación y manejo de datos en el servidor.

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.