Avances tecnológicos del siglo XXI y ejemplos de estos
Base de datos distribuidas
1. Base De Datos Distribuidas
Roberto Carlos Flores Gómez
2. SISTEMAS DE BASES DE DATOS DISTRIBUIDOS
Historia
La necesidad de almacenar datos de forma masiva dio paso a la creación de los sistemas de
bases de datos. En 1970 Edgar Frank Codd escribió un artículo con nombre: "A Relational
Model of Data for Large Shared Data Banks" ("Un modelo relacional para grandes bancos de
datos compartidos"). Con este artículo y otras publicaciones, definió el modelo de bases de
datos relacionales y reglas para poder evaluar un administrador de bases de datos
relacionales.
Originalmente se almacenaba la información de manera centralizada, pero con el paso del
tiempo las necesidades aumentaron y esto produjo ciertos inconvenientes que no era posible
solucionarlos o volverlos eficientes de la forma centralizada. Estos problemas impulsaron la
creación de almacenamiento distribuido, los cuales hoy en día proveen características
indispensables en el manejo de información; es decir, la combinación de las redes de
comunicación y las bases de datos.
Una base de datos distribuida es una colección de múltiples bases de datos lógicamente
interrelacionadas.
Un SBDD es una colección de archivos almacenados individualmente en cada nodo de la red.
Estos archivos, además de tener una relación lógica, deben contar con una estructura y
proveer un acceso mediante una interfaz común. Existen en la actualidad muchos sistemas que
poseen funcionalidades de los SMBD y trabajan sobre datos semi-estructurados, almacenados
en archivos sobre el internet (p.ej. Páginas web). Es importante distinguir entre un SBDD que
cumple con las restricciones mencionadas y los sistemas distribuidos de manejo de datos que
proveen acceso a datos de la misma tratando de emular los SMBD.
Ventajas de las BDD:
3. – Localización transparente de los datos: las instrucciones no dependen de dónde se
ejecutan ni de dónde se sitúan los datos
– Transparencia en los nombres: un objeto se accede por su nombre, sin ambigüedad y sin
especificar nada más.
– Transparencia de fragmentación: fragmentación horizontal es distribuir una tabla en varios
conjuntos de tuplas (cada uno en un ordenador). La vertical en distribuir la tabla en conjuntos
de atributos. La consulta sobre la tabla se transforma de modo automático en varias consultas
sobre sus fragmentos
– Más fiabilidad y disponibilidad: Datos y software están en varios ordenadores. Si un
ordenador falla los demás pueden seguir funcionando. Los datos y sw del que
ha fallado son inaccesibles. Con réplicas (copias) automáticas de datos y sw en varios
ordenadores se pueden mejorar estas situaciones.
– Mejora del rendimiento: Situando los datos en el ordenador donde se usan (o uno cercano):
BD locales y más pequeñas
– Expansión más sencilla: añadir más datos, más procesadores o aumentar la BD, son tareas
más sencillas.
Desventajas de las BDD:
– Difícil manipulación: Es más complicado el control y la manipulación de los datos.
– Complejo el aseguramiento de la integridad de la información en presencia de fallos no
predecibles tanto de componentes de hardware como de software.
– Difícil control de concurrencia además de que los mecanismos de recuperación son mucho
más complejos que en un sistema centralizado ya que los datos pueden estar replicados.
– Complejidad del sistema, desarrollo de software más costoso, problemas de sincronización,
difícil detección de nodos caídos.
– Dependencia de la red de comunicaciones, sobrecarga de procesamiento.
Componentes de un sistema gestor distribuido
4. Hardware involucrado
El hardware utilizado no difiere mucho del hardware utilizado en un servidor normal. El
hardware que compone una base de datos distribuida se reduce a servidores y la red.
Software
● Sistema manipulador de base de datos distribuida (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de datos
distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas
computadoras, estos programas pueden ser subsistemas de un único DDBMS de un fabricante
o podría consistir de una colección de programas de diferentes fuentes.
● Administrador de transacciones distribuidas (DTM)
Este es un programa que recibe las solicitudes de procesamiento de los programas de consulta
o transacciones y las traduce en acciones para los administradores de la base de datos. Los
DTM se encargan de coordinar y controlar estas acciones. Este DTM puede ser propietario o
libre.
● Sistema manipulador de base de datos (DBMS)
Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de
recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de
los DTM.
● Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción
ejecuta un DTM y un nodo de base de datos ejecuta un DBM.
Tipos de Bases de Datos Distribuidas
● Centralizadas: es muy similar al modelo cliente servidor, en el sentido que la BDD está
centralizada en un lugar y los usuarios están distribuidos.
5. ● Replicadas: el esquema consiste en que cada nodo tiene su copia completa de la base
de datos. Este esquema tiene un alto costo en almacenamiento.
● Particionadas: este modelo consiste en que solo hay una copia de cada elemento, pero
la información está distribuida a través de los nodos.
● Híbrida: este modelo es la combinación del esquema de partición y replicación, es
decir, se particiona la relación y además los fragmentos están replicados.
Las 12 Reglas de las BDD
Principio Fundamental:
1. Autonomia local: los sitios de un Sistema Distribuido deben ser autonomos en el mayor
grado posible.
2. No dependencia de un sitio central: Todos los sitios deben ser tratados como iguales.
3. Operacion continua: El Sistema Distribuido debe aumentar la confiabilidad y la fiabilidad. No
deberian requerirse paradas planificadas.
4. Independencia de localizacion: para el usuario la localizacion fisica de los datos debe ser
transparente.
5. Independencia de fragmentacion: los usuarios no necesitan conocer los fragmentos fisicos
en que está dividida cada coleccion logica de datos.
6. Independencia de replicacion: a nivel logico los usuarios no necesitan tener en cuenta si los
datos tienen replicas o no.
7. Procesamiento de consultas distribuidas: el Sistema Distribuido debe disponer de
mecanismos para optimizar las consultas y en el especial para reducir la carga de tráfico
necesaria.
8. Gestion de transacciones distribuidas: el Sistema Distribuido debe disponer de mecanismos
(protocolos) adecuados para el control de concurrencia y la recuperacion de transacciones
distribuidas.
9. Independencia del hardware: poder ejecutar el mismo Sistema Gestor de Base de Datos en
sitios con diferentes plataformas hardware.
10. Independencia del sistema operativo: poder ejecutar el mismo Sistema Gestor de Base de
Datos en sitios con diferentes sistemas operativos.
6. 11. Independencia de la red: el Sistema Distribuido debe poder operar con diferentes redes de
comunicaciones.
12. Independencia del Sistema Gestor de Base de Datos: Debe permitirse la heterogeneidad,
es decir, que cada sitio puede funcionar con un Sistema Gestor de Base de Datos diferente,
incluso basado en un modelo de datos diferente, siempre y cuando compartan un interfaz
comun.
Arquitectura ANSI/SPARC
Nivel interno: Tiene un esquema interno que describe la estructura física de almacenamiento
de base de datos. Emplea un modelo físico de datos y los únicos datos que existen están
realmente en este nivel.
Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda la base de datos
para una comunidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con
elementos lógicos como entidades, atributos y relaciones.
Nivel externo: tiene varios esquemas externos o vistas de usuario. Cada esquema describe la
visión que tiene de la base de datos a un grupo de usuarios, ocultando el resto.
Fiabilidad y Disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás
localidades puedan seguir trabajando. En particular, si los datos se repiten en varias
localidades, una transacción que requiere un dato específico puede encontrarlo en más de una
localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para
recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último,
cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla
al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en
7. aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la
información, es posible que pierda clientes a favor de la competencia.
Ejemplo 1: Base de datos distribuida en diferentes zonas geográficas
Un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de
la misma y el sistema de cuentas. Cada ordenador con su sistema de cuentas local en cada
sucursal constituye un "sitio" de la BDD; los ordenadores están conectados por la red. Durante
las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan solo
acceder a la BD de la misma. Como sólo acceden a la misma red local, se les llaman
aplicaciones locales .
Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas
transacciones que acceden a la información en más de una sucursal. Éstas transacciones son
llamadas transacciones globales o transacciones distribuidas. La existencia de transacciones
globales será considerada como una característica que nos ayude a distinguir entre las BDD y
un conjunto de base de datos locales.
Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta
aplicación requiere actualizar datos en dos diferentes sucursales y asegurarse de la real
actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones
globales es una tarea difícil. En el ejemplo 1.1 los ordenadores estaban geográficamente en
diferentes puntos; aunque también pueden estar en una red local.
Base de Datos Distribuida en distintas zonas geográficas
8. Ejemplo2: Base de datos distribuida en la misma red (LAN)
Considere el mismo banco del ejemplo previo, con las mismas aplicaciones, pero con un
sistema configurado como en la figura. Los mismos ordenadores con sus bases de datos han
sido movidos de sus sucursales a un edificio común y ahora están conectados entre sí en un
radio con un amplio ancho de banda. Las terminales de las sucursales están conectadas a sus
respectivos ordenadores en LAN. Cada ordenador y su base de datos constituye un sitio de la
red local.
Base
de
datos
Base
de
datos
Base
de
datos
Red de
comunicaciones
Termin
ales
Termin
ales
Termin
ales
Barcelo
na
Sevilla
Madrid
9. Vemos que la estructura física de las conexiones a cambiado con respecto al ejemplo 1,
pero las características de la arquitectura son las mismas. En particular, los mismos
ordenadores ejecutan las mismas aplicaciones, accediendo a las mismas bases de datos. La
transacción local del ejemplo anterior aún es local, no por el hecho geográfico, sino por el
hecho de que sólo un ordenador por bases de datos está envuelto en el proceso. Si hay
aplicaciones globales, es conveniente considerar este ejemplo como BDD, ya que muchas
características que el ejemplo previo presentó son aún válidas.
A pesar de todo, el hecho de que la BDD sea implementada en una red local o en una
gráficamente distribuida, cambian muchas veces el tipo de solución que se busca para un
problema.
Base
de
dato
s
Base
de
dato
s
Base
de
dato
s
LAN
Córdoba C/Bbb
s/n
Córdoba
C/Ccc s/n
Córdoba C/Aaa
s/n