Sistema
de computación distribuido: elementos de procesamiento que cooperan
en la ejecución de tareas, interconectados por una red de ordenadores.
– No han de ser homogéneos
– Dividen un problema en otros más manejables y los
resuelven de modo coordinado
• BD distribuida
(BDD): son varias BD interrelacionadas lógicamente y situadas en diferentes
nodos de una red de ordenadores.
• SGBD
distribuido: el que gestiona BD distribuidas de forma transparente para el
usuario (éste ve las BD como si fueran una sola BD centralizada)
• Ventajas de las
BDD:
– 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
Fragmentar:
decidir dónde situar las partes de la BDD
– Se puede plantear top-down (como
aquí) o bottom-up
• Idea simple: situar cada tabla en un ordenador distinto
La
replicación mejora la disponibilidad de los datos
• Caso extremo: tener una réplica de la BD completa en
cada sitio (ordenador):
– Ventajas: mejora el rendimiento local y global además
de la disponibilidad (con un sitio activo se accede a toda la BD)
– Inconvenientes:
actualizaciones más costosas (se deben realizar en todas las réplicas para
mantener la coherencia). El control de concurrencia y recuperación es también
más costoso.
• Esquema de
replicación: describe qué se replica
• Asignación:
dónde se sitúan los fragmentos y réplicas
– La elección del lugar y el grado de replicación depende
de los objetivos de rendimiento y disponibilidad. También del tipo de
transacciones y su frecuencia.
– Encontrar una solución óptima o incluso una buena es un
problema complejo
Resumen 2: Diseño de un sistema gestor de base de datos distribuida basado en Oracle9i
Una BDD (base de datos distribuida) a “una colección
lógicamente interrelacionada de datos compartidos (junto con una descripción de
estos datos) físicamente distribuidas por una red informática”
Un SGBDD se compone de una única base de datos lógica, que físicamente está dividida
en fragmentos ubicados en nodos distintos e interconectados mediante una red de
comunicaciones.
La diferencia entre SGBD distribuido y SGBD paralelo definido
como “un SGBD que se ejecuta sobre múltiples
procesadores y utilizando múltiples discos y que está diseñado para ejecutar
las operaciones en paralelo”
El factor más importante que diferencia a unos SGBDD de otros es la transparencia.
Esto supone que no se requiere soporte para la manipulación
de datos (transparente para el usuario) pero si se requieren operaciones de definición
de datos (FRAGMENT, REPLICATE).
Desde el punto de vista académico los dos tipos de
software conocidos son:
• Microsoft
Access, con un SGBD muy sencillo porque da soporte a una base de datos de
oficina muy poco sofisticada. No proporciona funcionalidad de BDD, pero se
pueden implementar módulos que simulen la fragmentación, replicación y
consultas distribuidas. Sin embargo, no se garantiza la fiabilidad del SGBDD desarrollado.
• MySQL, no
proporciona actualmente soporte alguno para los BDD verdaderos.
• Oracle9i, (KOCH,
G., 2003); no ofrece utilidades para fragmentar, replicar y realizar consultas
optimizadas, pero se la ha elegido como
plataforma para desarrollar la transparencia debido a sus prestaciones como
SGBD.
El catálogo en una base de datos centralizada proporciona
la información relativa a las relaciones, vistas e índices se almacena en un
CATALOGO o DICCIONARIO DE DATOS.
Fragmentación de la base de datos original: La fragmentación
debe poder ser mixta y derivada con asignación de los fragmentos a distintos
nodos. La fragmentación mixta es una combinación de horizontal y vertical. La fragmentación
horizontal se aplica cuando se extraen fragmentos por selección de tuplas que
cumplan una determinada condición. La
fragmentación vertical se aplica cuando se extraen fragmentos por selección de
atributos de todas las tuplas. Por tanto, la fragmentación mixta se aplica a la
selección de varios atributos de las
tuplas que cumplan una determinada condición. La fragmentación derivada es
aquella que afecta a más de una tabla porque el criterio de fragmentación de
una tabla afecta a atributo(s) que actúa(n) como clave extranjera en otra(s).