Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo: Distribución 1
1
Introducción.
Una de las principales motivaciones para el desarrollo de sistemas de bases de datos es el deseo de
integrar los datos operacionales de una organización y proporcionar un acceso controlado a esos datos.
Aunque la integración y el acceso controlado pueden implicar la necesidad de utilizar mecanismos de
centralización, el objetivo en realidad no es ese. De hecho, el desarrollo de redes informáticas promueve el
modo descentralizado de trabajo. Esta técnica descentralizada imita la estructura organizativa de muchas
empresas, que están distribuidas de modo lógico en divisiones, departamentos, proyectos, etc., y están
distribuidas de modo físico en oficinas, fábricas e instalaciones, manteniendo cada unidad sus propios datos
operacionales. La posibilidad de compartir los datos y la eficiencia del acceso a los mismos puede mejorarse
mediante el desarrollo de sistemas de bases de datos distribuidas que reflejen esta estructura organizativa,
que hagan que los datos de todas las unidades sean accesibles y que almacenen esos datos en algún lugar
próximo a aquel donde más frecuentemente se utilice.
Los SGBD distribuidos deberían ayudarnos a resolver el problema de las islas de información. Las
bases de datos se consideran en ocasiones, islas electrónicas que constituyen lugares diferenciados y
generalmente inaccesibles, igual que las islas lejanas. Esto puede ser resultado de la separación geográfica,
de la incompatibilidad de las arquitecturas informáticas, de los protocolos de comunicaciones, etc. Si se
consigue integrar las bases de datos en un todo lógico coherente, podemos resolver el problema.
Algunos de los sistemas más conocidos que utilizan bases de datos distribuidas son DNS y algunos
IRCd como el IRC-Hispano.
Conceptos básicos.
Una BD Distribuida (BDD) es una colección lógicamente interrelacionada de datos compartidos
(junto con su descripción) físicamente distribuidos por una red informática. No es, por tanto, lo mismo que el
procesamiento distribuido, en el cual existe una BD centralizada a la que se puede acceder a través de una
red informática:
El Sistema Gestor de Bases de Datos Distribuido (SGBDD) es el sistema software que permite
2
gestionar la BDD y hace que dicha distribución sea transparente para los usuarios.
Un SGBDD está compuesto por una única base de datos lógica dividida en una serie de fragmentos
que pueden estar replicados en diferentes instalaciones. Cada fragmento se almacena en uno o más
ordenadores bajo el control de un SGBD independiente. Todos estos ordenadores (instalación o nodo) del
sistema están conectados entre sí mediante una red de comunicaciones.
A partir de todo lo anterior, podemos clasificar las BDD según dos criterios:
• Homogéneas o heterogéneas según todos los servidores utilicen el mismo SGBD o no, y
• De área local o de área ancha según sea la red de comunicaciones que conecta los servidores:
Tipo de Red
Tipo SGBD
LAN WAN
Homogéneo Gestión de datos y aplicaciones financieras Gestión de viajes y aplicaciones financieras
Heterogéneo Sistemas de información interdivisionales Banca integrada y sistemas interbancos
3
transparente. No necesita saber dónde está el dato para utilizarlo.
5. Independencia de fragmentación: Los usuarios no necesitan conocer los fragmentos físicos en que
está dividida cada colección lógica de datos.
6. Independencia de replicación: A nivel lógico, los usuarios no necesitan tener en cuenta si los datos
tienen réplicas o no. La replicación es necesaria por las siguientes razones:
• Un mayor rendimiento, puesto que disponemos de copias locales.
• Una mayor disponibilidad, puesto que los datos son accesibles siempre al tenerse
varias copias.
La principal desventaja, es que hay que mantener actualizadas todas las copias de ese objeto o dato
replicado. Esto nos lleva al problema de la “propagación de las actualizaciones”.
7. Procesamiento de consultas distribuidas: El SD debe disponer de mecanismos para optimizar las
consultas y, en especial, para reducir la carga de tráfico necesaria. Este hecho puede ser considerado
como otra razón por la que los sistemas distribuidos siempre son relacionales (las peticiones
relacionales son optimizables, mientras que las no relacionales no lo son).
8. Gestión de transacciones distribuidas: El SD debe disponer de mecanismos (protocolos)
adecuados para el control de concurrencia y la recuperación de transacciones distribuidas. Una
transacción puede acceder y modificar datos en diferentes nodos sin que el usuario se entere de que
multiples sitios se están viendo afectados por la transacción.
9. Independencia del hardware: El SD se debe poder implementar en cualquier plataforma válida, es
decir, ordenadores con recursos hardware suficientes.
10. Independencia del sistema operativo: El SD se debe poder implementar en sitios con cualquier
sistema operativo multiusuario.
11. Independencia de la red: El SD se debe poder implementar en cualquier red de comunicaciones.
12. Independencia del SGBD: Debe permitirse la heterogeneidad, es decir, que cada sitio pueda
funcionar con un SGBD diferente, incluso basado en un modelo de datos diferente, siempre y cuando
compartan un interfaz común.
4
Estrategias de Diseño.
A la hora de abordar el diseño de una base de datos distribuida podremos optar principalmente por
dos tipos de estrategias: la estrategia ascendente y la estrategia descendente:
La estrategia ascendente podría aplicarse en aquel caso donde haya que proceder a un diseño a
partir de un número de pequeñas bases de datos existentes, con el fin de integrarlas en una sola. En este caso
se partiría de los esquemas conceptuales locales y se trabajaría para llegar a conseguir el esquema conceptual
global. Después se pasaría al diseño de distribución.
En la estrategia descendente se parte de cero y se avanza en el desarrollo del trabajo. Los pasos a
realizar mediante esta estrategia son los siguientes:
1. Se comienza con un análisis de los requisitos que definirán el sistema (rendimiento, seguridad,
disponibilidad, flexibilidad, etc.) y su entorno (necesidades de los usuarios).
2. Después se realizan el diseño conceptual para determinar los tipos de entidades y establecer la
relación entre ellas, y el diseño de las vistas.
3. A continuación, se recopilarán estimaciones en torno a la frecuencia de acceso de las aplicaciones y
las relaciones a las que acceden.
4. Después se aborda la confección del esquema conceptual global.
5. Con el esquema y la información relativa al acceso a los datos se pasa al diseño de la distribución. El
objetivo de esta etapa consiste en diseñar los esquemas conceptuales locales que se distribuirán a lo
largo de todos los puestos del sistema distribuido. Resulta bastante frecuente dividir cada relación en
subrelaciones menores denominadas fragmentos que luego se ubican en uno u otro sitio. De ahí, que
el proceso del diseño de la distribución conste de dos actividades fundamentales: la fragmentación
y la asignación.
6. El último paso del diseño de la distribución es el diseño físico, el cual proyecta los esquemas
conceptuales locales sobre los dispositivos de almacenamiento físico disponibles en los distintos
sitios.
Fragmentación.
La fragmentación es el proceso encargado de dividir una relación en otras subrelaciones de menor
tamaño, y su objetivo es encontrar la unidad apropiada de distribución. Existe una serie de razones por las
que llevar a cabo la fragmentación:
• Utilización: En general, las aplicaciones funcionan con vistas que normalmente son
subconjuntos de relaciones. Por tanto, es lógico considerar como unidad de distribución a
esos subconjuntos de relaciones.
• Eficiencia: Los datos se almacenan cerca del lugar en el que son utilizados con mayor
frecuencia. Además, los datos que las aplicaciones locales no necesitan no se almacenan
en ese nodo.
5
• Paralelismo: La descomposición de una relación en fragmentos permite que una
transacción pueda ser dividida en subconsultas. Cada subconsulta operará sobre el
fragmento adecuado. En definitiva, se aumenta el grado de concurrencia.
• Seguridad: Los datos no requeridos por las aplicaciones locales no se almacenan en ese
nodo, por lo que no están disponibles para los usuarios no autorizados.
Cuando se va a fragmentar una base de datos debe pensarse seriamente el grado de fragmentación
que se va a alcanzar, ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de
las consultas. El grado de fragmentación puede variar desde una ausencia de la división, considerando a las
relaciones unidades de fragmentación; o bien, fragmentar a un grado en el que cada tupla o atributo forme un
fragmento. Una fragmentación óptima es aquella que produce un esquema de división que minimiza el
tiempo de ejecución de las aplicaciones que emplean esos fragmentos.
6
Tipos de fragmentación.
Existen tres tipos de fragmentación: vertical, horizontal y mixta. Los dos primeros son los
principales. Todos cumplen las reglas de corrección de la fragmentación. Pasemos a dar una descripción de
cada uno de ellos:
− Fragmentación horizontal: Agrupa las tuplas de una relación que son utilizadas de manera
colectiva por las transacciones de mayor importancia. Se generan especificando un predicado que
imponga una restricción a las tuplas de la relación. Existen dos variantes de fragmentación
horizontal:
• Primaria: Se define como una operación de selección (σ) sobre una relación del esquema de
la base de datos: Dada una relación R, un fragmento horizontal primario sería σPredicado(R).
• Derivada: Intuitivamente este tipo de fragmentación consiste en dividir una relación R en
subconjuntos de tuplas a partir de otra relación ya fragmentada P. Además, R hace referencia a
P mediante una clave ajena. Formalmente, dada una relación hija R y otra padre S, la
fragmentación derivada de R se define como R f Si (operación de semicombinación), y
donde f es el atributo de combinación, y Si es un fragmento de S.
− Fragmentación vertical: Agrupa los atributos de una relación que son utilizados de manera
conjunta por las transacciones de mayor importancia. Un fragmento vertical se define utilizando la
operación de proyección del álgebra relacional (Dada una relación R con atributos ai, un fragmento
vertical sería ∏ai-1,ai(R)). Este tipo de fragmentación es más compleja que la vertical debido al
gran número alternativas posibles. Esto hace que tengan que utilizarse heurísticas para llevar a
cabo la fragmentación vertical:
• Agrupación: Comienza asignando cada atributo a un fragmento, y en cada paso, junta algunos
de los fragmentos hasta que satisface un determinado criterio.
• Escisión: A partir de la relación se deciden que fragmentos resultan mejores, basándose en las
características de acceso de las aplicaciones a los atributos. Los fragmentos verticales se
determinan estableciendo la afinidad de un atributo con otro.
− Fragmentación mixta: También denominada fragmentación híbrida. En este caso el proceso de
partición de la relación hace uso de los dos anteriores. Un fragmento mixto se define utilizando las
operaciones de selección y proyección del álgebra relacional, dada una relación R un fragmento
mixto se define como σP(Пa1…an(R)) ó como Пa1…an(σP(R)). Puede llevarse a cabo de tres formas
diferentes:
• Partición VH: Consiste en aplicar en primer lugar fragmentación vertical a la relación que
queremos fragmentar, para aplicar posteriormente fragmentación horizontal a los fragmentos
obtenidos en el primer paso.
• Partición HV: En primer lugar se aplica un proceso de fragmentación horizontal a la relación,
y seguidamente se aplica fragmentación vertical a los fragmentos que se obtienen en el primer
paso.
7
• Aplicar de forma simultánea y no secuencial la fragmentación horizontal y la fragmentación
vertical. En este caso, se generara una rejilla y los fragmentos formaran las celdas de esa
rejilla, cada celda será exactamente un fragmento vertical y un fragmento horizontal (nótese
que en este caso el grado de fragmentación alcanzado es máximo, y no por ello la
descomposición resultará más eficiente).
Asignación:
Partiendo del supuesto de que el banco de datos se haya fragmentado correctamente, habrá que
decidir la manera de asignar los fragmentos a los distintos sitios de la red.
La distribución óptima puede definirse con respecto a dos medidas:
1. Coste mínimo: La función de coste consiste en el coste de almacenamiento de cada fragmento en
un sitio, el coste de practicar una consulta en un fragmento en un sitio, el coste de actualizar un
fragmento en todos los sitios donde se almacene y el coste de las comunicaciones de datos. El
problema de la asignación, entonces, intenta encontrar un esquema de asignación tal que minimice
esta función de coste combinado.
2. Rendimiento: La estrategia de asignación se diseña para mantener una medida del rendimiento.
Dos medidas habituales de este rendimiento son el tiempo de respuesta y la salida del sistema en
cada sitio. Evidentemente, se debe intentar minimizar la primera y maximizar la segunda.
8
Se debe buscar un esquema de asignación tal que la respuesta a las consultas de los usuarios se
realizase en el menor tiempo posible mientras que el coste de procesamiento sea mínimo.
Cuando una serie de datos se asignan, éstos pueden replicarse para mantener una o varias copias. Las
razones para la réplica giran en torno a la seguridad y a la eficiencia de las consultas de lectura. Si existen
muchas reproducciones de un elemento de datos, en caso de fallo en el sistema se podría acceder a esos datos
ubicados en sitios distintos. Además, las consultas que acceden a los mismos datos pueden ejecutarse en
paralelo, ya que habrá copias en diferentes sitios. Por otra parte, la ejecución de consultas de actualización,
de escritura, implicaría la actualización de todas las copias que existan en la red, cuyo proceso puede resultar
problemático y complicado. Por tanto, un buen parámetro para afrontar el grado de réplica consistiría en
sopesar la cantidad de consultas de lectura que se efectuarán, así como el número de consultas de escritura
que se llevarán a cabo.
Podemos considerar tres estrategias de asignación respecto a la replicación:
• Base de datos fragmentada: es aquella donde no existe réplica alguna. Los fragmentos se alojan
en sitios donde únicamente existe una copia de cada uno de ellos a lo largo de toda la red.
• Base de datos totalmente replicada: es aquella donde existe una copia de todo el banco de
datos en cada sitio.
• Base de datos parcialmente replicada: es aquella donde existen copias de los fragmentos
ubicados en diferentes sitios.
9
• El encargado de la comunicación de datos del nodo N1 envía dichas subtransacciones a los
nodos adecuados, por ejemplo N2 y N3.
• Los gestores globales de transacciones del los nodos que reciben los datos, se encargan de
gestionarlos y los resultados de las secuencias de instrucciones SQL se devuelven a través
del encargado de la comunicación de datos al primer nodo N1.
Control de concurrencia.
El control de la concurrencia debe garantizar la coherencia de los datos y que cada transacción se
realice en un tiempo finito. Un buen mecanismo de control de concurrencia debe cumplir los siguientes
requisitos:
− Resistencia a fallos de comunicación y de los nodos.
− Implementar mecanismos de paralelismo.
− No consumir demasiados recursos de procesamiento ni de almacenaje.
− Funcionar en un entorno de red sin producir demasiados retardos.
− No imponer ninguna restricción a la hora de realizar las acciones atómicas.
Los problemas que pueden surgir cuando se trata con una base de datos distribuida son similares a
los que suceden cuando en una base de datos centralizada se permite el acceso de varios usuarios a la vez:
actualización perdida, dependencia no confirmada y análisis incoherente. Además de estos problemas, en una
base de datos distribuida se añade el denominado problema de la coherencia multicopia. Este problema se
presenta cuando tenemos un dato replicado en distintos sitios y, por lo tanto, si se actualiza el dato en un
determinado lugar, se debe actualizar en todas las ubicaciones en las que aparezca.
Serializabilidad distribuida.
Si en cada uno de los nodos la planificación de ejecución es serializable, por tanto la planificación
global también es serializable, suponiendo que se respete el orden de secuencia de las órdenes.
Existen dos técnicas para solucionar estos problemas:
• La técnica de bloqueo, la cual garantiza que la ejecución va a ser concurrente, pero puede
surgir el problema clásico de los interbloqueos.
• La segunda técnica consiste en poner marcas de tiempo a las transacciones, las cuales van a
garantizar la ejecución concurrente y de forma atómica de dichas transacciones.
Detallamos estas dos técnicas a continuación:
Protocolos de bloqueo.
2PL Centralizado.
Consiste en que un único nodo mantiene toda la información de los bloqueos: Hay sólo un gestor de
bloqueos, para todo el conjunto del SGBDD, el cual se encarga de conceder y quitar recursos.
10
Es muy sencillo de implementar, pero tiene el problema de que el nodo que se encarga de gestionar
todos los bloqueos, puede, valga la redundancia, bloquear el sistema, al ser un cuello de botella. Esto reduce
la fiabilidad del sistema.
2PL de copia principal.
Este protocolo trata de paliar los problemas del 2PL Centralizado. Consiste en distribuir más de un
gestor de bloqueo para cada conjunto de datos replicados. Un dato replicado toma el rol de copia original y la
otra de copia será la esclava. No existe una política para elegir los nodos que contendrán los gestores.
La técnica se utilizará cuando los datos se dupliquen de forma selectiva, cuando las actualizaciones
no sean frecuentes y cuando los nodos no necesiten siempre la versión más actual de los datos.
Sigue teniendo la desventaja de que sigue siendo un poco centralizado y, además, es más complejo
manejar y evitar los interbloqueos.
2PL distribuido.
Este protocolo se basa en la idea de distribuir un gestor de bloqueo en cada nodo, el cual es el
encargado de controlar los bloqueos correspondientes a sus datos. Si no existe replicación de nodos el
protocolo es parecido al anterior, pero si existe replicación implementa un protocolo de control de copias
denominado ROWA: si se necesita leer una copia solo se bloquea una, pero si se necesita escribir, se
bloquean todas las copias hasta que se acaba la operación.
11
La función principal de un procesador de consultas relacionales es transformar una consulta en una
especificación de alto nivel (normalmente cálculo relacional), a una consulta equivalente en una
especificación de bajo nivel (normalmente alguna variación del álgebra relacional).
Procesador
de
Consultas
La transformación debe ser correcta, para lo cual la consulta de bajo nivel tiene que producir el
mismo resultado que la consulta original y también debe ser eficiente.
Para verificar si es correcta la transformación se hace un mapeo bien definido entre el cálculo
relacional y el álgebra relacional. Pero lo difícil es producir una estrategia de ejecución eficiente, ya que una
consulta en el cálculo relacional puede tener muchas transformaciones correctas y equivalentes en el álgebra
relacional. Cada estrategia de ejecución tiene un consumo de recursos de cómputo muy diferente, por tanto
lo importante es seleccionar una estrategia de ejecución que minimiza el consumo de recursos.
Ejemplo: Consideramos esta Base de Datos:
ALUMNO(ID_ALUMNO,NOMBRE_ALUMNO)
PROYECTO(ID_ALUMNO,NOMBRE_PROYECTO,CARGO)
La consulta trata de encontrar “todos los alumnos que son jefes de un proyecto”.
Expresión SQL: SELECT NOMBRE_ALUMNO FROM ALUMNO A, PROYECTO P
WHERE A.ID_ALUMNO=P.ID_ALUMNO AND CARGO = “JEFE”
Dos consultas equivalentes el álgebra relacional serían:
1) Π ANOMBRE (σCARGO-“JEFE” Λ A.ID-P.ID (A x P))
2) Π ANOMBRE (A>< ID (σCARGO-“JEFE” (P))
La segunda sería mejor ya que consume menos recursos al evitar calcular el producto cartesiano
entre Alumno y Proyecto.
En sistemas distribuidos, el álgebra relacional no es suficiente para expresar la ejecución de
estrategias, debe ser complementada con operaciones para el intercambio de datos entre nodos diferentes. El
procesador de consultas distribuidas debe elegir el orden de las operaciones del álgebra relacional, el mejor
sitio para procesar datos y la forma en que los mismos tienen que ser transformados.
12
Objetivos de la optimización de consultas.
El objetivo principal es minimizar la siguiente función de costo:
Función de costo total = costo de I/O + costo de CPU + costo de comunicación
Dependiendo del ambiente distribuido, los factores pueden tener pesos diferentes. Por ejemplo en las
redes WAN el costo de comunicación es el más importante, porque la velocidad de comunicación es baja. En
estos casos normalmente se ignoran los costos de CPU y de I/O.
13
b. Análisis. Detecta y rechaza las consultas semánticamente incorrectas.
c. Simplificación. Elimina predicados redundantes.
d. Reestructuración. Transforma con una serie de reglas la consulta en cálculo
relacional al álgebra relacional.
2. Localización de datos: A partir de una consulta algebraica definida sobre relaciones
distribuidas, localiza los datos de la consulta usando la información sobre la distribución de
datos. Determina los fragmentos involucrados en la consulta y transforma la consulta distribuida
en una consulta sobre fragmentos.
3. Optimización global de Consultas: El objetivo es hallar una estrategia de ejecución
para la consulta cercana a la óptima. La estrategia puede ser descrita con los operadores del
álgebra relacional y con primitivas de comunicación para transferir datos entre nodos. Las
características de los fragmentos se consideran como sus cardinalidades, para encontrar una
buena transformación.
4. Optimización local de Consultas: Se lleva a cabo en todos los nodos con fragmentos
involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local,
es optimizada con el esquema local del nodo. La optimización local utiliza los algoritmos de
sistemas centralizados.
14
− El SGBD de cada instalación puede gestionar las aplicaciones locales de manera autónoma.
− Cada SGBD participa en al menos una aplicación global.
A partir de la definición de un SGBDD, podemos esperar que el sistema haga que la distribución de
los datos sea transparente al usuario. Así, el hecho de que una BDD esté dividida en una serie de fragmentos
que puedan estar almacenados en diferentes computadoras y, quizás, replicados debería ocultarse al usuario.
El objetivo de esta transparencia consiste en hacer que el sistema distribuido parezca un sistema centralizado
(Principio fundamental de los SGBDD).
Funciones de un SGBDD.
Lo ideal es que un SGBDD tenga al menos la funcionalidad de un SGBD centralizado; además
esperamos que el SGBDD proporcione la siguiente funcionalidad:
− Servicios avanzados de comunicaciones para proporcionar acceso a nodos remotos y permitir la
transferencia de consultas y de datos entre los nodos a través de una red.
− Un catálogo ampliado de sistema en el que se almacenen los detalles relativos a la distribución de
los datos.
− Procesamiento avanzado de consultas, incluyendo mecanismos de optimización de consultas y de
acceso remoto a datos.
− Un control avanzado de seguridad para mantener los apropiados privilegios de
autorización/acceso a los datos distribuidos.
− Mecanismos avanzados de control de concurrencia para mantener la coherencia de los datos
distribuidos y posteriormente replicados.
− Servicios avanzados de recuperación para tener en cuenta los fallos de los nodos individuales y
los fallos de los enlaces de comunicaciones.
15
Arquitectura de un SGBDD.
Debido a la diversidad de SGBDD, puede resultar útil presentar una posible arquitectura de
referencia que contemple la distribución de datos. La arquitectura de referencia está compuesta de los
siguientes esquemas:
− Un conjunto de esquemas externos globales.
− Un esquema conceptual global.
− Un esquema de fragmentación y un esquema de asignación.
− Un conjunto de esquemas para cada SGBD local conformes a la arquitectura en tres niveles de
ANSI-SPARC.
Componentes de un SGBDD.
Independientemente de la arquitectura de referencia, podemos identificar cuatro componentes
principales en un SGBDD. Son los siguientes:
− SGBD local (SGBDL): Es un SGBD estándar, responsable de controlar los datos locales en cada
nodo que tenga una base de datos. Tiene su propio catálogo local del sistema que almacena
información acerca de los datos contenidos en dicho nodo.
− Componente de comunicaciones de datos (CD): Corresponde al software que permite que todos
los nodos se comuniquen entre sí. El componente de comunicación de datos contiene información
acerca de los nodos y de los enlaces.
− Catálogo global del sistema (CGS): Mantiene información específica de la naturaleza
distribuida del sistema, como por ejemplo los esquemas de fragmentación, replicación y
asignación. El propio catálogo puede ser gestionado como una base de datos distribuida, por lo
que puede estar fragmentado y distribuido, completamente replicado o centralizado.
− SGBD distribuido: El SGBDD es la unidad de control del sistema completo.
16
Ventajas y desventajas de los SGBDD.
Como hemos comentado anteriormente la distribución de datos y aplicaciones aportan una serie de
ventajas potenciales, pero a su vez también tienen sus desventajas. A continuación haremos un resumen
estudiando tanto unas como otras para orientarnos a la hora de decidirnos a utilizar este tipo de SGBD:
Ventajas.
Mayor disponibilidad.
Frente a un fallo de la computadora los SGBD centralizados detienen sus operaciones. No pasa así
con los SGBDD ya que el fallo de uno de los nodos no hace que se detenga el sistema e incluso se podrían
encaminar las peticiones a dicho nodo fallido hacia otro nodo activo.
Mayor fiabilidad.
Debido a que los datos pueden replicarse, el fallo de uno de los nodos no quiere decir que la
información deje de ser accesible.
Mayores prestaciones.
Dado que los datos se encuentran más cercanos del nodo con mayor demanda y de que cada nodo
gestiona una parte de la BD completa se podría dar que el acceso fuera más rápido en una BDD ya que la
demanda de los recursos como CPU y elementos de E/S fuera menor que en un SGBD centralizado con una
BD remota.
Economía.
Hoy en día es aceptado que es mucho más barato crear un sistema a base de pequeñas computadoras
para obtener la misma potencia que con un único computador más potente. También es mucho más barato
17
añadir estaciones de trabajo a una red que actualizar un sistema de mainframe.
Crecimiento modular.
En un entorno distribuido resulta muy sencillo expandir el sistema, ya que solo tendríamos que
añadir nuevos nodos al mismo para dotarlo de mayor almacenamiento y potencia de cálculo. No obstante,
deberíamos dotar a la red de mayor velocidad y/o capacidad de almacenamiento. Por el contrario, en un
SGBD centralizado supondría cambios en el hardware y en el software.
Integración.
Como ya hemos indicado, la integración es una amplia ventaja frente a la centralización ya que hoy
en día en sistemas muy grandes coexisten diferentes tipos de sistemas, los cuales han de integrarse bien para
poder facilitar todos los servicios necesarios que la organización puede necesitar en cada momento.
Capacidad de competir.
Muchas empresas han tenido que reorganizar sus operaciones y utilizar tecnología de bases de datos
distribuidas para seguir siendo competitivas.
Desventajas.
Complejidad.
El hecho de que el sistema se muestre transparente al usuario implica una complejidad considerable,
también el hecho de que puedan existir datos replicados añade una complejidad adicional al SGBD
distribuido. Si el software no gestiona bien dichos datos puede darse una degradación en la disponibilidad, la
fiabilidad y las prestaciones por comparación con un sistema centralizado.
Coste.
La mayor complejidad implica que el coste sea algo más elevado. Además, a estos sistemas debemos
de añadir el coste del hardware de comunicación necesario más el coste del personal de mantenimiento de
dicho hardware.
Seguridad.
En un SGBDD no solo hay que controlar el acceso a los datos replicados en múltiples ubicaciones,
sino que también es necesario dotar de seguridad a la propia red.
18
Carencia de estándares.
No existen herramientas o metodologías que ayuden a los usuarios a convertir un SGBD centralizado
en uno distribuido.
Falta de experiencia.
Hoy en día no tenemos el mismo nivel de experiencia con los SGBDD que en los centralizados. No
obstante, muchos de los problemas y los protocolos se conocen a la perfección. Este puede ser un factor
determinante para alguien que esté pensando en adoptar esta tecnología.
Móviles Vs Distribuidas.
La principal y visible diferencia entre las BD móviles y las distribuidas es, como su propio nombre
indica, la movilidad de sus nodos, ya que estos pueden cambiar de posición y, con ello, los datos contenidos
en cada nodo. Por lo demás guardan muchas similitudes con las BD distribuidas:
• La coherencia y la integridad de los datos son un punto crítico de ambas.
• También lo son las redes de comunicaciones utilizadas para transportar los datos.
• Los datos se pueden encontrar replicados por lo que el hecho de que un nodo deje de
funcionar no quiere decir que los datos sean inaccesibles.
19
organización para acceder a sus datos. Éstos pueden ser accedidos remotamente.
• El mercado potencial de este tipo de bases de datos es bastante amplio, ya que multitud de
empresas de todo tipo poseen trabajadores que necesitan acceder a los datos de la compañía
mientras se encuentran en localizaciones remotas.
• Estas bases de datos poseen un gran ámbito de aplicación ya que en principio cualquier base
de datos relacional puede ampliarse para ofrecer los servicios de las bases de datos móviles.
Los sistemas paralelos de base de datos constan de varios procesadores y varios discos conectados a
través de una red de interconexión de alta velocidad en los cuales las consultas se pueden paralelizar,
permitiendo así que una consulta se pueda ejecutar por más de un procesador al mismo tiempo.
Paralelas Vs Distribuidas.
Las BD distribuidas, al contrario que las paralelas:
• No comparten memoria ni discos y sus tamaños pueden variar tanto como sus funciones,
pudiendo abarcar desde PC hasta grandes sistemas.
• Los datos no se encuentran centralizados, sino distribuidos por los nodos que componen el
sistema.
• Si el sistema falla se pueden reencaminar las consultas hacia otros nodos sin suponer la
detención del sistema.
• Son más fácilmente ampliables y resulta más barato.
Por el contrario, las BD paralelas:
• Pueden aportar un mayor rendimiento en los casos en los que el sistema tenga que responder
a un número elevado de solicitudes constante ya que tiene la capacidad de paralelizar las
consultas.
• La coherencia y la integridad de datos es más fácil de tratar que en los sistemas distribuidos
• En general son menos complejas y requieren menos personal para mantenerlas.
20
comunicaciones y de acceso a datos, así como herramientas o metodologías que faciliten tanto el paso de un
sistema centralizado a uno distribuido como el diseño de éstos.
El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la
Toma de Decisiones.
Bibliografía.
− CONNOLLY, Thomas M. y BEGG, Carolyn E., Sistemas de bases de datos: Un enfoque práctico para
diseño, implementación y gestión. Pearson - Addison Wesley, 4ª edición.
Referencias Web.
− Christopher J. Date en Wikipedia, la Enciclopedia Libre.
− http://msdn2.microsoft.com/es-es/library/ms190918.aspx
− http://www.microsoft.com/latam/technet/articulos/200004/art16/art16.asp
− http://www.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/Cap_4.html
− http://www.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/Cap_5.html
21