Post on 03-Jul-2015
Bases de datos
Distribuidas y bases
de datos Cliente-
ServidorConceptos básicos
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
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.
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
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.
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
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.
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.
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