Base de Datos Distribuidas

Anuncio
Base de Datos Distribuidas
Benjamín Martínez Martínez
[email protected]
Base de Datos Distribuidas
México
Db2
Monterrey
Microsoft Access
Red de
comunicaciones
Chiapas
SqlServer
Guerrero
Oaxaca
MySql
Postgres
Conceptos básicos
BDD  Base de Datos Distribuidas
Es un conjunto de múltiples bases de datos lógicamente
relacionadas las cuales se encuentran distribuidas entre diferentes
sitios interconectados por una red de comunicaciones
SBDD Sistema de Base de Datos Distribuida
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 accesar los datos en cualquier
parte de la red exactamente como si los datos estuvieran
almacenados en su sitio propio
Continuación…
SMBDD  Un sistema de manejo de bases de datos
distribuidas
Es aquel que se encarga del manejo de la BDD y proporciona
un mecanismo de acceso que hace que la distribución sea
transparente a los usuarios. El término transparente
significa que la aplicación trabajaría, desde un punto de
vista lógico, como si un solo SMBD ejecutado en una sola
máquina, administrara esos datos.
SBDD  Un sistema de base de datos distribuida
Es entonces el resultado de la integración de una base de
datos distribuida con un sistema para su manejo.
Objetivos de las BDD
Autonomía local.
Independencia de un sitio central.
Operación continua.
Transparencia de Localización.
Transparencia de Fragmentación
Transparencia de repetición.
Procesamiento distribuido de consultas.
Procesamiento de transacciones distribuidas.
Transparencia de "hardware".
Transparencia de Sistema operativo
Transparencia de red.
Transparencia de SMBD
Disciplinas de estudio
Los ambientes en los que se encuentra con mayor frecuencia
el uso de las bases de datos distribuidas son:
Cualquier organización que tiene una estructura
descentralizada.
Casos típicos de lo anterior son: organismos
gubernamentales y/o de servicio público.
La industria de la manufactura, particularmente, aquella
con plantas múltiples. Por ejemplo, la industria automotriz.
Aplicaciones de control y comando militar.
Líneas de transportación aérea.
Cadenas hoteleras.
Servicios bancarios y financieros.
Arquitectura de BDD
Arquitecturas de memoria compartida.
Consisten de diversos procesadores los cuales accesan una
misma memoria y un misma unidad de almacenamiento
(uno o varios discos). Algunos ejemplos de este tipo son las
computadoras Sequent Encore y los mainframes IBM4090 y
Bull DPS8 (Figura 1)
P1
……
Pn
M
Figura 1. Arquitectura de memoria compartida
BD
Pn Procesador
MMemoria
Continuación…
Arquitecturas de disco compartido
Consiste de diversos procesadores cada uno de ellos con su
memoria local pero compartiendo una misma unidad de
almacenamiento (uno o varios discos). Ejemplos de estas
arquitecturas son los cluster de Digital, y los modelos IMS/VS
Data Sharing de IBM
P1
Pn
……
M1
Mn
Figura 2. Arquitectura de disco compartido
BD
BD
BD
Pn Procesador
MMemoria
Continuación…
Arquitecturas nada compartido
Consiste de diversos procesadores cada uno con su propia
memoria y su propia unidad de almacenamiento. Aquí se
tienen los clusters de estaciones de trabajo, la computadoras
Intel Paragon, NCR 3600 y 3700 e IBM SP2
P1
Pn
BD
BD
BD
M1
……
BD
BD
BD
Mn
Figura 3. Arquitectura nada compartido
Pn Procesador
MMemoria
Diseño de BDD
Consideraciones de Diseño de BDD
Existen varios factores relacionados a la construcción de
bases de datos distribuidas que no se presentan en bases de
datos centralizadas. Entre los más importantes se
encuentran los siguientes:
1
Diseño de la Base de Datos Distribuida (unidad II)
2
Procesamiento de consultas (Unidad III)
3
Control de concurrencia (Unidad IV)
1
Confiablidad (Unidad IV)
Diseño de la BDD
En el diseño de bases de datos distribuidas se debe
considerar el problema de como distribuir la información
entre diferentes sitios. Existen razones organizacionales las
cuales determinan en gran medida lo anterior. Sin embargo,
cuando se busca eficiencia en el acceso a la información, se
deben abordar dos problemas relacionados.
Primero, como fragmentar la información.
Segundo, como asignar cada fragmento entre los diferentes
sitios de la red.
Continuación …
En el diseño de la BDD también es importante considerar si
la información está replicada, es decir, si existen copias
múltiples del mismo dato y, en este caso, como mantener la
consistencia de la información. Finalmente, una parte
importante en el diseño de una BDD se refiere al manejo del
directorio. Si existen únicamente usuarios globales, se debe
manejar un solo directorio global. Sin embargo, si existen
también usuarios locales, el directorio combina información
local con información global
La organización de los sistemas de Base de Datos
Distribuidas se puede analizar en 3 dimensiones:
Modo de Acceso
Estático
Dinámico
Información
total
Información
Parcial
Datos
Datos y
programas
Compartición
Nivel de
Conocimiento
Nivel de
Compartición
Compartición
De datos
Cada máquina posee sus propias aplicaciones
locales pero se comparten los datos
Compartición
de datos y
programas
Características
de acceso
Nivel de
conocimiento
Inexistente
Cada aplicación y sus datos se ejecutan en una
máquina sin comunicación con otros programas o
datos
Las aplicaciones locales en una máquina pueden
invocar servicios en otras y además comparten los
datos
Estático
El modelo de acceso a los datos no varía con el tiempo
Dinámico
El modelo de acceso a los datos varía con el tiempo
Sin información Los diseñadores no tienen información de cómo
acceden los usuarios a los datos
Con información Los diseñadores no poseen toda la información de
parcial
cómo acceden los usuarios a los datos
Con información Los diseñadores poseen toda la información de cómo
total
acceden los usuarios a los datos
Estrategias de Diseño
Las estrategias son las utilizadas en una BD relacional, pero
añadiendo un paso de diseño de la distribución
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 (botton-up) y
la estrategia descendente(top-down)
La estrategia ascendente (botton-up). En este caso se partirá 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. Esta estrategia suele ser utilizada para
integrar varias bases de datos centralizadas existentes.
la estrategia descendente(top-down). Se parte de cero y se
avanza en el desarrollo del trabajo. Los pasos a realizar
mediante esta estrategia son:
Análisis de requisitos
Diseño de Vistas
Diseño conceptual
Diseño de la distribución
Fragmentación
Asignación
Diseño físico
Monitorización y ajuste
Diccionario de Datos
Es el lugar donde se deposita información acerca de
todos los datos que forman la BD. Es una guía en la
que se describe la BD y los objetos que la forman.
El diccionario contiene las características lógicas de
los sitios donde se almacenan los datos del sistema,
incluyendo nombre, descripción, alias, contenido y
organización. Identifica los procesos donde se
emplean los datos y los sitios donde se necesita el
acceso inmediato a la información
En una BD relacional, el diccionario de datos proporciona
información acerca de:
La estructura lógica y física de la BD.
Las definiciones de todos los objetos de la BD: tablas,
vistas, índices, disparadores, procedimientos, funciones,
etcétera.
El espacio asignado y utilizado por los objetos.
Los valores por defecto de las columnas de las tablas.
Información acerca de las restricciones de integridad.
Los privilegios y roles otorgados a los usuarios.
Auditoría de información, como los accesos a los objetos.
Un diccionario de datos debe cumplir las
siguientes características:
Debe soportar las descripciones de los modelos conceptual, lógico, interno y
externo de la BD.
Debe estar integrado dentro del SGBD.
Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre
los modelos interno y externo debe ser realizada en tiempo de ejecución.
Debe comenzar con la reorganización de versiones de producción de la BD.
Además debe reflejar los cambios en la descripción de la BD. Cualquier cambio a la
descripción de programas ha de ser reflejado automáticamente en la librería de
descripción de programas con la ayuda del diccionario de datos.
Debe estar almacenado en un medio de almacenamiento con acceso directo para
la fácil recuperación de información
Niveles de Transparencia
La transparencia se puede entender como la
separación de la semántica de alto nivel de un
sistema de las aspectos de bajo nivel relacionados a
la implementación del mismo. Un nivel de
transparencia adecuado permite ocultar los detalles
de implementación a las capas de alto nivel de un
sistema y a otros usuarios
Niveles de Transparencia
Fragmentación de datos
Horizontal
Consiste del particionamiento en tuplas de una relación global
en subconjuntos, donde cada subconjunto puede contener
datos que tienen propiedades comunes y se puede definir
expresando cada fragmento como una operación de selección
sobre la relación global
Vertical
La fragmentación vertical es la subdivisión de atributos en
grupos. Los fragmentos se obtienen proyectando la relación
global sobre cada grupo
Distribución de datos
Describe el proceso de decidir dónde localizar los datos. Las
estrategias que se tienen son:
Colocación centralizada de los datos, toda la base de datos se guarda en un
sitio.
Colocación particionada de los datos, la base de datos se divide en varias
partes desarticuladas (fragmentos) y se guardan en varios sitios.
Colocación replicada de los datos, se guardan copias de uno o más
fragmentos de la base de datos en varios sitios.
Continuación…
La distribución de los datos se logra mediante la partición de
los datos, replicación de los datos o mediante una combinación
de ambas.
La colocación de los datos está estrechamente relacionada en
como la BD se divide o fragmenta. La colocación de los datos ve
qué datos localizar y en dónde
Continuación…
Los algoritmos de colocación de los datos consideran varios
factores, incluidos:
Objetivos de desempeño y disponibilidad de los datos.
Tamaño, número de filas y el número de relaciones que una entidad
mantiene con otras entidades.
Tipos de transacciones a ser aplicadas a la base de datos.
Los atributos accesados por cada una de las transacciones.
Replicación de datos
Se refiere al almacenamiento de copias de datos en sitios
múltiples, puede ser para satisfacer requerimientos de
información, además de mejorar la disponibilidad de los datos y
el tiempo respuesta; finalmente estas copias reducen los costos
de comunicación y de consulta totales
Los datos replicados se someten a la regla de consistencia
mutua, la cual requiere que todas las copias de fragmentos de
datos sean idénticas, esto quiere decir que cuando hay una
actualización de la base de datos se realiza en todos los sitios
donde hay réplicas
Continuación …
Existen tres escenarios de replicación:
Base de datos totalmente replicada, guarda varias
copias de cada fragmento de la base de datos en
varios sitios. No es práctica debido la cantidad de
carga impuesta al sistema.
Base de datos parcialmente replicada, guarda
múltiples copias de algunos fragmentos de la base de
datos en múltiples sitios. Se tiene un buen manejo
Base de datos no replicada, guarda cada fragmento
de base de datos en un solo sitio.
Procesamiento
de
consultas distribuidas
Metodología del procesamiento de
consultas distribuidas.
El procesamiento de consultas tiene como objetivo
principal transformar una consulta escrita en un
lenguaje de alto nivel (SQL) en una estrategia de
ejecución correcta y eficiente expresada en un
lenguaje de bajo nivel (algebra relacional) y ejecutar
la estrategia para extraer los datos requeridos
¿Cuáles son las faces típicas del
procesamiento de consultas?
Descomposición (Análisis sintáctico y validación)
Optimización
Generación de código
Ejecución
¿Cuáles son las etapas típicas
descomposición de consultas?
Análisis
Normalización
Análisis semántico
Simplificación
Reestructuración de la consulta
de
la
Estrategias de procesamiento de
consultas distribuidas.
El sistema debe de ser capaz de procesar
consultas que hagan referencia a datos situados a
mas de un nodo
Estrategias de procesamiento …
Realizar las operaciones de selección lo antes posible
Combinar el producto cartesiano con una operación de
selección subsiguiente cuyo predicado represente una
condición de combinación, para formar una operación de
combinación
Utilizar la asociatividad de las operaciones binarias para
reordenar los nodos hoja de modo que los nodos hoja con
las operaciones de selección más restrictivas se ejecuten
primero
Realizar las operaciones de proyección lo antes posible
Calcular una única vez las expresiones posibles
[email protected]
Descargar