Modelos Avanzados de BD
Modelos Avanzados de BD
Modelos Avanzados de BD
Grupo: Distribucin 1
Fecha : 01/04/2008
ndice
Introduccin ... 3
Sistemas gestores de Bases de Datos Distribuidas (SGBDD) ... 5
Tipos de SGBDD ... 5
Los objetivos de un SGBDD ..... 6
Arquitectura cliente-servidor . 8
Diseo de Bases de Datos Distribuidas ..9
Estrategias de Diseo 10
Fragmentacin ...12
Asignacin .13
Transacciones en base de datos distribuidas .14
Control de concurrencia ....15
Serializacin distribuida ....16
Protocolo de bloqueo (locking protocol) ...17
Protocolo de marcas de tiempo (timestamp protocol) ...17
Procesamiento de Consultas Distribuidas . ....17
Objetivos de la optimizacin de consultas .19
Caractersticas de los procesadores de consultas ...20
Arquitectura del procesamiento de consultas .20
Ventajas y desventajas de las Bases de datos Distribuidas 21
Conclusiones ..22
Bibliografa ....22
Introduccin
Inicialmente podemos decir que las SBDD surgen como respuesta a la distribucin que las
empresas ya tienen, al menos de manera lgica (divisiones, departamentos, etc) y que en
ocasiones tambin tiene de manera fsica (plantas, fbricas, etc). Todo esto nos lleva a que
posiblemente los datos tambin estn distribuidos, ya que cada unidad organizacional
mantendr los datos con los que normalmente opere.
A cada uno de estas subdivisiones se les llama islas de informacin (sitios), y lo que hace
un sistema distribuido es establecer los puentes necesarios para conectar a esas islas entre si.
Con todo esto podemos dar una definicin ms formal de base de datos distribuida (BDD)
como una coleccin de mltiples bases de datos interrelacionadas lgicamente y distribuidas por
una red de computadores.
Procesamiento Distribuido
Un SGBDD est compuesto por una nica base de datos lgica dividida en una serie de
fragmentos que pueden estar replicados en diferentes instalaciones. Cada fragmento se almacena
en uno o ms ordenadores bajo el control de un SGBD independiente. Todos estos ordenadores
(instalacin o nodo) del sistema estn conectados entre s mediante una red de comunicaciones.
Por otra parte y con lo que respecta a las implementaciones comerciales, la mayora de los
productos SQL actuales proporcionan algn tipo de soporte de base de datos distribuida, con
diversos grados de funcionalidad.
Ingres/Star.
La opcin de base de datos distribuida de Oracle.
La propiedad de datos distribuidos de DB2.
Informix y SQL Server.
Control de concurrencia.
Para ofrecer todas las funcionalidades vistas un SGBDD debe contar (al menos) con los
siguientes componentes:
Diccionario de datos
Tipos de SGBDD
Hay diferentes tipos de SGBDD. El factor para categorizarlos es su grado de homogeneidad.
Partiendo de l, tenemos dos tipos de SGBDD.
1. Autonoma local: Los sitios de un sistema distribuido deben ser autnomos en el mayor
grado posible, lo que permite una mayor seguridad, control de concurrencia y copias de
seguridad. Esto quiere decir que los datos deben ser gestionados localmente, las operaciones
son locales y todas las operaciones en un puesto son controladas por ese puesto.
2. Independencia de un sitio central: El anterior objetivo implica que todos los sitios
deben ser tratados como iguales, por lo tanto no debe existir ningn sitio maestro central del
cual dependan el resto. Esto es as por das razones fundamentales:
Puede ser un cuello de botella.
Puede ser vulnerable, si ste falla tambin fallar todo el sistema.
3. El sistema debe estar en continua operacin: Un fallo en uno de los nodos no debe
afectar al sistema. Tampoco si se aaden nuevos nodos. As, un SD deber proporcionar las
siguientes caractersticas.
Fiabilidad (o confiabilidad): probabilidad de que el sistema est listo y
funcionando en cualquier momento dado.
Disponibilidad: probabilidad de que el sistema est listo y funcionando
continuamente a lo largo de un perodo especificado. Podemos decir que nunca
4. Transparencia de ubicacin: Para el usuario la localizacin fsica de los datos debe ser
transparente. No necesita saber dnde est el dato para utilizarlo.
10. Independencia del sistema operativo: Un vez ms, es necesario tener la posibilidad de
ejecutar el mismo SGBDD, en diferentes plataformas de sistema operativo (UNIX,
Windows XP ) bajo un mismo sistema distribuido.
11. Independencia de la red: El sistema debe tener la posibilidad de soportar tambin, una
variedad de redes de comunicacin distintas.
12. Independencia del SGBD: Lo que en realidad se pretende es que todos los ejemplares
del SGBDD locales en sitios diferentes soporten la misma interfase, que en este caso sera
el estndar SQL oficial. Con esto conseguiremos que el sistema distribuido fuera
heterogneo, al menos en cierta medida ya que en realidad los fabricantes solo cumplen
determinadas caractersticas de este estndar, que suelen ser distintas de unos a otros.
Debido a que estos cuatro ltimos objetivos son ideales y no existen estndares
al respecto, solo cabe esperar un cumplimiento parcial de los mismos.
Arquitectura cliente-servidor
Las aplicaciones de bases de datos distribuidas se desarrollan en el contexto de la
arquitectura cliente-servidor.
Cliente. Se podra corresponder con una mquina usuario que proporciona capacidad de
interfaz al usuario y procesamiento local.
Servidor. Es una mquina que puede proporcionar a las mquinas cliente servicios, tales
como impresin, acceso a ficheros, o acceso a la base de datos.
An no se ha establecido de forma exacta cmo dividir la funcionalidad del SGBD entre
el cliente y el servidor aunque existen varios enfoques.
El software de servidor que gestiona los datos locales en un sitio, al igual que el
software del SGBD centralizado.
El software del cliente que soporta casi todas las tareas de distribucin y maneja las
interfaces de usuario
El software de comunicaciones (algunas veces junto con el sistema operativo
distribuido) proporciona las primitivas de comunicacin que utiliza el cliente para
transmitir instrucciones y datos entre los sitios necesarios.
La organizacin de los sistemas de bases de datos distribuidas se puede analizar desde tres
dimensiones:
Estrategias de Diseo
Estas estrategias son las utilizadas al disear una base de datos relacional, pero aadiendo
un paso de diseo de la distribucin.
A la hora de abordar el diseo de una base de datos distribuida podremos optar
principalmente por dos tipos de estrategias: la estrategia ascendente y la estrategia descendente:
10
2. Diseo de vistas: En esta etapa se definirn las interfaces del usuario con el sistema. Se
determinan las aplicaciones que usaran la base de datos as como datos estadsticos o
estimaciones de las mismas sobre frecuencia de acceso de cada aplicacin a cada tabla, que
nos permitir poseer informacin que nos ayudar a optimizar ciertas partes y crear un
diseo conceptual mas eficiente. Al finalizar esta etapa se debera poseer toda la
informacin de acceso y la definicin de los esquemas externos.
3. Diseo conceptual: En esta etapa se suele realizar la integracin de las vistas del usuario.
Como resultado de la ejecucin de estas dos ltimas etapas debemos tener un esquema
conceptual global, informacin de acceso y los esquemas externos que servirn de entrada
para la prxima etapa.
6. Monitorizacin y ajustes. Este paso se realiza para llevar un control del proceso y e
intentar reparar lo errores o desviaciones que se produzcan en el proceso.
11
Utilizacin: En general, las aplicaciones funcionan con vistas que normalmente son
subconjuntos de relaciones. Por tanto, es lgico considerar como unidad de
distribucin a esos subconjuntos de relaciones.
Eficiencia: Los datos se almacenan cerca del lugar en el que son utilizados con mayor
frecuencia. Adems, los datos que las aplicaciones locales no necesitan no se
almacenan en ese nodo.
Las vistas son subconjuntos de varias relaciones, es decir, se forman a partir de trozos
de varias tablas. Ya que cada aplicacin posee sus propias vistas lo mas adecuado ser
conseguir que la mayora de las vistas estn definidas sobre subtablas locales a cada
aplicacin y as logramos un incremento del rendimiento. Luego la mejor unidad de
fragmentacin seria subconjuntos de relaciones.
12
Tipos de fragmentacin:
Asignacin
Supongamos que tenemos un conjunto de fragmentos F={F1, F2, , Fn} y una red que
consiste en este conjunto de sitios S={S1, S2, , Sm}. El problema de asignacin determina la
distribucin ptima de F en S. La optimalidad puede ser definida de acuerdo a dos medidas:
13
1.-Atomicidad. Se refiere al hecho de que una transaccin se trata como una unidad de
operacin. Por lo tanto, o todas las acciones de la transaccin se realizan o ninguna de ellas
se lleva a cabo.
2.-Consistencia. La consistencia de una transaccin es simplemente su correctitud. En otras
palabras, una transaccin es un programa correcto que lleva la base de datos de un estado
consistente a otro con la misma caracterstica.
3.-Aislamiento. Una transaccin en ejecucin no puede revelar sus resultados a otras
transacciones concurrentes antes de su commit. Ms an, si varias transacciones se ejecutan
concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado de
manera secuencial (seriabilidad).
14
4.-Durabilidad. Es la propiedad de las transacciones que asegura que una vez que una
transaccin hace su commit, sus resultados son permanentes y no pueden ser borrados de la
base de datos.
A ms bajo nivel nos encontramos con la necesidad de transferir los datos entre el
almacenamiento en disco y la memoria principal. De esto se encarga el gestor de bferes.
En un SGBDD, todos estos mdulos se encuentran tanto a nivel local en cada equipo como
a nivel de nodo. Estos ltimos son los denominados gestores globales de transacciones.
El procedimiento a seguir cuando se ejecuta una transaccin global en un nodo N1 es la
siguiente:
o
El gestor global de transacciones del nodo N1, divide la transaccin en una secuencia de
subtransacciones, siguiendo la informacin guardada en el catlogo global del sistema.
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
travs del encargado de la comunicacin de datos al primer nodo N1.
15
Control de concurrencia
Todos los mecanismos de control de concurrencia deben asegurar la consistencia de los
objetos y cada transaccin atmica ser completada en un tiempo finito.
Un mtodo de control de concurrencia es correcto si es serializable, es decir existe una
secuencia equivalente en que las operaciones de cada transaccin aparecen antes o despus de
otra transaccin pero no entremezcladas. Una ejecucin serial de transacciones es siempre
correcta.
Se debe sincronizar las transacciones concurrentes de los usuarios, extendiendo los
argumentos para la serializabilidad y los algoritmos de control de concurrencia para la ejecucin
en ambientes distribuidos.
La finalidad del control de concurrencia es asegurar la consistencia de los datos al
ejecutar transacciones, y que cada accin atmica sea completada en un tiempo finito.
Serializacin distribuida
Si cada planificador de ejecucin local es serializable y las rdenes locales serializadas
son idnticas (es decir, respetan el orden de secuencia), entonces el planificador global es
serializable.
16
17
Otro aspecto importante es el consumo de recursos. Hay que elegir una buena estrategia de
ejecucin que sea eficiente para que as minimicemos el consumo de recursos de nuestro
sistema.
18
EMPRESA(ID_EMPRESA,NOMBRE_EMPRESA)
PROYECTO(ID_EMPRESA,NOMBRE_PROYECTO,FUNCION)
La consulta trata de encontrar todos las empresas a las que les subvencionan un proyecto.
En funcin el ambiente en que se trabaje cada uno de los factores de la expresin anterior
pueden llegar a tener pesos diferentes. Por ejemplo, en la redes WAN el coste de comunicacin
19
Otro factor importante a tener en cuenta a la hora de optimizar consultas en bases de datos
distribuidas es saber la complejidad computacional de los diferentes tipos de operaciones que se
pueden hacer. Antes hemos visto que ganbamos eficiencia al eliminar un producto cartesiano,
que como veremos ahora, es la operacin ms compleja.
Veamos un listado de las principales operaciones del lgebra relacional junto con su
complejidad:
Tipo de optimizacin.
Granularidad de la optimizacin.
Tiempo de optimizacin
Estadsticas
Nodos de decisin.
Topologa de la red.
Descomposicin de consultas.
Localizacin de datos.
20
Se consigue una comparticin de los datos, sin perder un determinado control local.
Crecimiento modular.
El rendimiento se mejora. Cuando se distribuye una gran base de datos por mltiples
sitios, las consultas locales y las transacciones tienen mejor rendimiento porque las
bases de datos locales son ms pequeas. A parte de esta distribucin, se puede
conseguir lo siguiente en estos sistemas:
o
Desventajas:
Hay una menor seguridad en cuanto al control de acceso a los datos: control de replicas
y errores que puedan producirse en la red.
21
Conclusiones
Las bases de datos distribuidas son cada vez ms usadas por las empresas y suponen una
ventaja competitiva frente a los sistemas centralizados, siempre y cuando la empresa en cuestin
tenga necesidad de usar una base de datos de este tipo. Lo ms habitual es disponer de varias
sedes y tener que manejar informacin comn, para lo cual las bases de datos distribuidas son
especialmente tiles.
Es una tecnologa que ya lleva aos en rodaje por lo que tiene la madurez suficiente como
para ser usada con garantas, no obstante, debido a la gran dependencia que estas bases de datos
tienen de las telecomunicaciones, en Espaa nos encontramos muchos problemas para conseguir
el rendimiento oportuno de las mismas.
Bibliografa
http://www.fing.edu.uy/inco/cursos/interop/interPresencial/transparencias/queries.pdf
http://www.mitecnologico.com/Main/OptimizacionDeConsultasDistribuidas
http://sistemas-distribuidos-unerg.blogspot.com/2007/12/bases-de-datosdistribuidas.html
http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/alvarez_c_g/capitulo1.pdf
22