Bases de datos distribuidas y bases de datos cliente

9

Click here to load reader

Transcript of Bases de datos distribuidas y bases de datos cliente

Page 1: Bases de datos distribuidas y bases de datos cliente

Bases de datos

Distribuidas y bases

de datos Cliente-

ServidorConceptos básicos

Page 2: Bases de datos distribuidas y bases de datos cliente

1

Bases de Datos Distribuidas:

Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente

relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor

corriendo 2 máquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD

tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones

locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual

múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma

que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red

exactamente como si estos fueran accedidos de forma local.

Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales

factores que distinguen un SBDD de un sistema centralizado son los siguientes:

Hay múltiples computadores, llamados sitios o nodos.

Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para

transmitir datos y órdenes entre los sitios.

Aplicaciones de las bases de datos distribuidas:

Las Bases de Datos Distribuidas se utilizan cuando los datos se encuentran en diferentes máquinas,

generalmente situados en localizaciones geográficas diferentes (homogéneas o no).

Bases de datos Cliente-servidor:

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se

reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes,

llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta.

Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora,

aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de

computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores,

aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la

gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño

del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se

ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos

específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del

Page 3: Bases de datos distribuidas y bases de datos cliente

2

correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica

seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en

diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el

grado de distribución del sistema.

La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay

distribución, tanto a nivel físico como a nivel lógico.

La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están

conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se

cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto

significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él

se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que

son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que,

por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en

caso de que se esté utilizando en una red mixta.

Aplicaciones de bases de datos Cliente-servidor:

La mayoría de los servicios de Internet son tipo de cliente-servidor. La acción de visitar un sitio

web requiere una arquitectura cliente-servidor, ya que el servidor web sirve las páginas web al

navegador (al cliente). Por ejemplo al logueate con tu cuenta de Twitter, la computadora y el

navegador web del usuario serían considerados un cliente; y las computadoras, las bases de datos,

y los usos que componen Twitter serían considerados el servidor. Cuando el navegador web del

usuario solicita buscar la cuenta de otro usuario, el servidor de Twitter recopila toda la

información a mostrar en la base de datos de Twitter, la articula en una página web, y la envía de

nuevo al navegador web del cliente.

Otro ejemplo podría ser el funcionamiento de un juego online. Si existen dos servidores de juego,

cuando un usuario lo descarga y lo instala en su computadora pasa a ser un cliente. Si tres

personas juegan en un solo computador existirían dos servidores, un cliente y tres usuarios. Si

cada usuario instala el juego en su propio ordenador existirían dos servidores, tres clientes y tres

usuarios.

Page 4: Bases de datos distribuidas y bases de datos cliente

3

Tabla 1. Diferencias entre bases de datos Cliente-servidor y Distribuidas.

Enumeración de ventajas y desventajas.

Bases de datos

“Cliente/Servidor”:

Ventajas 1) Centralización del control: los accesos,

recursos y la integridad de los datos son

controlados por el servidor de forma que un

programa cliente defectuoso o no

autorizado no pueda dañar el sistema. Esta

centralización también facilita la tarea de

poner al día datos u otros recursos (mejor

que en las redes P2P)..

2) Escalabilidad: se puede aumentar la

capacidad de clientes y servidores por

separado. Cualquier elemento puede ser

aumentado (o mejorado) en cualquier

momento, o se pueden añadir nuevos nodos

a la red (clientes y/o servidores).

3) Fácil mantenimiento: al estar distribuidas las

funciones y responsabilidades entre varios

ordenadores independientes, es posible

reemplazar, reparar, actualizar, o incluso

trasladar un servidor, mientras que sus

clientes no se verán afectados por ese

cambio (o se afectarán mínimamente). Esta

independencia de los cambios también se

conoce como encapsulación.

4) Existen tecnologías, suficientemente

desarrolladas, diseñadas para el paradigma

de C/S que aseguran la seguridad en las

transacciones, la amigabilidad de la interfaz,

y la facilidad de empleo.

Desventajas 1) La congestión del tráfico ha sido siempre un

problema en el paradigma de C/S. Cuando

una gran cantidad de clientes envían

peticiones simultaneas al mismo servidor,

puede ser que cause muchos problemas

para éste (a mayor número de clientes, más

problemas para el servidor). Al contrario, en

las redes P2P como cada nodo en la red

hace también de servidor, cuantos más

nodos hay, mejor es el ancho de banda que

Page 5: Bases de datos distribuidas y bases de datos cliente

4

se tiene.

2) El paradigma de C/S clásico no tiene la

robustez de una red P2P. Cuando un servidor

está caído, las peticiones de los clientes no

pueden ser satisfechas. En la mayor parte de

redes P2P, los recursos están generalmente

distribuidos en varios nodos de la red.

Aunque algunos salgan o abandonen la

descarga; otros pueden todavía acabar de

descargar consiguiendo datos del resto de

los nodos en la red.

3) El software y el hardware de un servidor son

generalmente muy determinantes. Un

hardware regular de un ordenador personal

puede no poder servir a cierta cantidad de

clientes. Normalmente se necesita software y

hardware específico, sobre todo en el lado

del servidor, para satisfacer el trabajo. Por

supuesto, esto aumentará el coste.

4) El cliente no dispone de los recursos que

puedan existir en el servidor. Por ejemplo, si

la aplicación es una Web, no podemos

escribir en el disco duro del cliente o imprimir

directamente sobre las impresoras sin sacar

antes la ventana previa de impresión de los

navegadores.

Bases de datos

“Distribuidas”:

Ventajas 1) Refleja una estructura organizacional - los

fragmentos de la base de datos se ubican

en los departamentos a los que tienen

relación.

2) Autonomía local - un departamento puede

controlar los datos que le pertenecen.

3) Disponibilidad - un fallo en una parte del

sistema solo afectará a un fragmento, en

lugar de a toda la base de datos.

4) Rendimiento - los datos generalmente se

ubican cerca del sitio con mayor demanda,

también los sistemas trabajan en paralelo, lo

cual permite balancear la carga en los

servidores.

Page 6: Bases de datos distribuidas y bases de datos cliente

5

5) Economía - es más barato crear una red de

muchas computadoras pequeñas, que tener

una sola computadora muy poderosa.

6) Modularidad - se pueden modificar, agregar

o quitar sistemas de la base de datos

distribuida sin afectar a los demás sistemas

(módulos).

Desventajas 1) Complejidad - Se debe asegurar que la base

de datos sea transparente, se debe lidiar

con varios sistemas diferentes que pueden

presentar dificultades únicas. El diseño de la

base de datos se tiene que trabajar

tomando en cuenta su naturaleza

distribuida, por lo cual no podemos pensar

en hacer joins que afecten varios sistemas.

2) Economía - la complejidad y la

infraestructura necesaria implica que se

necesitará una mayor mano de obra.

3) Seguridad - se debe trabajar en la seguridad

de la infraestructura así como cada uno de

los sistemas.

4) Integridad - Se vuelve difícil mantener la

integridad, aplicar las reglas de integridad a

través de la red puede ser muy caro en

términos de transmisión de datos.

5) Falta de experiencia - las bases de datos

distribuidas son un campo relativamente

nuevo y poco común por lo cual no existe

mucho personal con experiencia o

conocimientos adecuados.

6) Carencia de estándares - aún no existen

herramientas o metodologías que ayuden a

los usuarios a convertir un DBMS centralizado

en un DBMS distribuido.

7) Diseño de la base de datos se vuelve más

complejo - además de las dificultades que

generalmente se encuentran al diseñar una

base de datos, el diseño de una base de

datos distribuida debe considerar la

fragmentación, replicación y ubicación de

Page 7: Bases de datos distribuidas y bases de datos cliente

6

los fragmentos en sitios específicos.

Reglas de operación que tienen las bases de datos distribuidas:

El principio fundamental es que para el usuario un sistema distribuido debe ser igual que uno

centralizado.

҉ Autonomía Local: Los sitios distribuidos deben ser autónomos, es decir que todas las

operaciones en un sitio dado se controlan en ese sitio.

҉ No dependencia de un sitio central: No debe de haber dependencia de un sitio central

para obtener un servicio.

҉ Operación Continua: Nunca debería apagarse para que se pueda realizar alguna función,

como añadir un nuevo sitio.

҉ Independencia con respecto a la localización: No debe de ser necesario que los usuarios

sepan dónde están almacenados físicamente los datos, sino que más el usuario lo debe de

ver como si solo existiera un sitio local.

҉ Independencia con respecto a la fragmentación: La fragmentación es deseable por razones

de desempeño, los datos, pueden almacenarse en la localidad donde se utilizan con mayor

frecuencia de manera que la mayor parte de las operaciones sean sólo locales y se reduzca

el tráfico en la red.

҉ Independencia de réplica: Si una relación dada (es decir, un fragmento dado de una

relación) se puede presentar en el nivel físico mediante varias copias almacenadas o

réplicas, en muchos sitios distintos.

҉ Procesamiento Distribuido de Consultas: El objetivo es convertir transacciones de usuario

en instrucciones para manipulación de datos, y así reducir el trafico en la red implica que

el proceso mismo de optimización de consultas debe ser distribuido.

҉ Manejo Distribuido de Transacciones: Tiene dos aspectos principales, el control de

recuperación y el control de concurrencia, cada uno de los cuales requiere un tratamiento

más amplio en el ambiente distribuido.

҉ Independencia con respecto al equipo: El SGBDD debe ser ejecutable en diferentes

plataformas hardware.

҉ Independencia con respecto al Sistema Operativo: El sistema debe ser ejecutable varios

diferentes SO.

Page 8: Bases de datos distribuidas y bases de datos cliente

7

҉ Independencia con respecto a la red: El sistema debe poder ejecutarse en diferentes

redes.

҉ Todos los usuarios accesan a la BDD a través de un esquema global en forma transparente

al usuario. Debe ser posible ejecutar diferentes SGBDD locales que utilicen distintos

modelos de datos.

Page 9: Bases de datos distribuidas y bases de datos cliente

8

Bibliografía / Referencias en Internet

* Cliente-servidor

o http://bit.ly/WXnu5R

* Cliente/servidor y Bases de Datos distribuidas. Implementación práctica de soluciones

distribuidas

o http://bit.ly/WEZdQW

* BASES DE DATOS DISTRIBUIDAS

o http://bit.ly/11qSA6U

* Bases de datos distribuidas

o http://bit.ly/11nhGbq

* BASE DE DATOS DISTRIBUIDAS

O http://bit.ly/WG6jHD

* Comparativa Arquitectura Cliente/Servidor y Distribuida

o http://bit.ly/VrVRAg