35
Base de Datos Distribuidas Benjamín Martínez Martínez [email protected]

Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Embed Size (px)

Citation preview

Page 1: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Base de Datos Distribuidas

Benjamín Martínez Martínez

[email protected]

Page 2: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Base de Datos Distribuidas

Oaxaca

Red de comunicaciones

México

Guerrero

Chiapas

MonterreyDb2

MySql Postgres

SqlServer

Microsoft Access

Page 3: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Conceptos básicos

BDD Base de Datos Distribuidas

Es un conjunto de múltiples bases de datos lógicamenterelacionadas las cuales se encuentran distribuidas entre diferentessitios 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ánligados por un sistema de comunicaciones, de tal forma que, unusuario en cualquier sitio puede accesar los datos en cualquierparte de la red exactamente como si los datos estuvieranalmacenados en su sitio propio

Page 4: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

SMBDD Un sistema de manejo de bases de datosdistribuidas

Es aquel que se encarga del manejo de la BDD y proporcionaun mecanismo de acceso que hace que la distribución seatransparente a los usuarios. El término transparentesignifica que la aplicación trabajaría, desde un punto devista lógico, como si un solo SMBD ejecutado en una solamáquina, administrara esos datos.

SBDD Un sistema de base de datos distribuida

Es entonces el resultado de la integración de una base dedatos distribuida con un sistema para su manejo.

Continuación…

Page 5: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Autonomía local.Independencia de un sitio central.Operación continua.Transparencia de Localización.Transparencia de FragmentaciónTransparencia de repetición.Procesamiento distribuido de consultas.Procesamiento de transacciones distribuidas.Transparencia de "hardware".Transparencia de Sistema operativoTransparencia de red.Transparencia de SMBD

Objetivos de las BDD

Page 6: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Los ambientes en los que se encuentra con mayor frecuenciael uso de las bases de datos distribuidas son:

Cualquier organización que tiene una estructuradescentralizada.Casos típicos de lo anterior son: organismosgubernamentales y/o de servicio público.La industria de la manufactura, particularmente, aquellacon 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.

Disciplinas de estudio

Page 7: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Arquitectura de BDD

Arquitecturas de memoria compartida.

Consisten de diversos procesadores los cuales accesan unamisma memoria y un misma unidad de almacenamiento(uno o varios discos). Algunos ejemplos de este tipo son lascomputadoras Sequent Encore y los mainframes IBM4090 yBull DPS8 (Figura 1)

Pn ProcesadorMMemoria

P1 Pn MBD

Figura 1. Arquitectura de memoria compartida

……

Page 8: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Continuación…

Arquitecturas de disco compartido

Consiste de diversos procesadores cada uno de ellos con sumemoria local pero compartiendo una misma unidad dealmacenamiento (uno o varios discos). Ejemplos de estasarquitecturas son los cluster de Digital, y los modelos IMS/VSData Sharing de IBM

Pn ProcesadorMMemoria

Figura 2. Arquitectura de disco compartido

P1 PnBD

M1

……

Mn

BDBD

Page 9: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Continuación…

Arquitecturas nada compartido

Consiste de diversos procesadores cada uno con su propiamemoria y su propia unidad de almacenamiento. Aquí setienen los clusters de estaciones de trabajo, la computadorasIntel Paragon, NCR 3600 y 3700 e IBM SP2

Pn ProcesadorMMemoria

Figura 3. Arquitectura nada compartido

P1 Pn

M1

……

Mn

BDBDBDBDBDBD

Page 10: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Diseño de BDD

Page 11: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Consideraciones de Diseño de BDD

Existen varios factores relacionados a la construcción debases de datos distribuidas que no se presentan en bases dedatos centralizadas. Entre los más importantes seencuentran los siguientes:

Diseño de la Base de Datos Distribuida (unidad II)

Procesamiento de consultas (Unidad III)

Control de concurrencia (Unidad IV)

Confiablidad (Unidad IV)

1

2

3

1

Page 12: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Diseño de la BDD

En el diseño de bases de datos distribuidas se debeconsiderar el problema de como distribuir la informaciónentre diferentes sitios. Existen razones organizacionales lascuales determinan en gran medida lo anterior. Sin embargo,cuando se busca eficiencia en el acceso a la información, sedeben abordar dos problemas relacionados.Primero, como fragmentar la información.Segundo, como asignar cada fragmento entre los diferentessitios de la red.

Page 13: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Continuación …

En el diseño de la BDD también es importante considerar sila información está replicada, es decir, si existen copiasmúltiples del mismo dato y, en este caso, como mantener laconsistencia de la información. Finalmente, una parteimportante en el diseño de una BDD se refiere al manejo deldirectorio. Si existen únicamente usuarios globales, se debemanejar un solo directorio global. Sin embargo, si existentambién usuarios locales, el directorio combina informaciónlocal con información global

Page 14: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

La organización de los sistemas de Base de DatosDistribuidas se puede analizar en 3 dimensiones:

Compartición

Modo de Acceso

Nivel deConocimiento

Estático Dinámico

Datos

Datos y programas

Información Parcial

Información total

Page 15: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Cada aplicación y sus datos se ejecutan en una máquina sin comunicación con otros programas o datos

Cada máquina posee sus propias aplicaciones locales pero se comparten los datos

Las aplicaciones locales en una máquina pueden invocar servicios en otras y además comparten los datos

Estático

Compartición de datos y programas

El modelo de acceso a los datos no varía con el tiempo

El modelo de acceso a los datos varía con el tiempo

Los diseñadores no tienen información de cómo acceden los usuarios a los datos

Los diseñadores no poseen toda la información de cómo acceden los usuarios a los datos

Los diseñadores poseen toda la información de cómo acceden los usuarios a los datos

Inexistente

ComparticiónDe datos

Características de acceso Dinámico

Sin información

Con información parcial

Con informacióntotal

Niv

el d

eco

no

cim

ien

toN

ivel

de

Co

mp

arti

ció

n

Page 16: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Estrategias de Diseño

Las estrategias son las utilizadas en una BD relacional, peroañadiendo un paso de diseño de la distribuciónA la hora de abordar el diseño de una Base de DatosDistribuida podremos optar principalmente por dos tipos deestrategias:

la estrategia ascendente (botton-up) y

la estrategia descendente(top-down)

Page 17: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

La estrategia ascendente (botton-up). En este caso se partirá delos esquemas conceptuales locales y se trabajaría para llegar aconseguir el esquema conceptual global. Después se pasaría aldiseño de distribución. Esta estrategia suele ser utilizada paraintegrar varias bases de datos centralizadas existentes.

la estrategia descendente(top-down). Se parte de cero y seavanza en el desarrollo del trabajo. Los pasos a realizarmediante esta estrategia son:Análisis de requisitosDiseño de VistasDiseño conceptualDiseño de la distribuciónFragmentaciónAsignación

Diseño físicoMonitorización y ajuste

Page 18: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Diccionario de Datos

Es el lugar donde se deposita información acerca detodos los datos que forman la BD. Es una guía en laque se describe la BD y los objetos que la forman.

El diccionario contiene las características lógicas delos sitios donde se almacenan los datos del sistema,incluyendo nombre, descripción, alias, contenido yorganización. Identifica los procesos donde seemplean los datos y los sitios donde se necesita elacceso inmediato a la información

Page 19: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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.

Page 20: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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

Page 21: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Niveles de Transparencia

La transparencia se puede entender como laseparación de la semántica de alto nivel de unsistema de las aspectos de bajo nivel relacionados ala implementación del mismo. Un nivel detransparencia adecuado permite ocultar los detallesde implementación a las capas de alto nivel de unsistema y a otros usuarios

Page 22: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Niveles de Transparencia

Page 23: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Fragmentación de datos

HorizontalConsiste del particionamiento en tuplas de una relación globalen subconjuntos, donde cada subconjunto puede contenerdatos que tienen propiedades comunes y se puede definirexpresando cada fragmento como una operación de selecciónsobre la relación global

VerticalLa fragmentación vertical es la subdivisión de atributos engrupos. Los fragmentos se obtienen proyectando la relaciónglobal sobre cada grupo

Page 24: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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.

Page 25: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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

Page 26: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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.

Page 27: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Replicación de datos

Se refiere al almacenamiento de copias de datos en sitiosmúltiples, puede ser para satisfacer requerimientos deinformación, además de mejorar la disponibilidad de los datos yel tiempo respuesta; finalmente estas copias reducen los costosde comunicación y de consulta totales

Los datos replicados se someten a la regla de consistenciamutua, la cual requiere que todas las copias de fragmentos dedatos sean idénticas, esto quiere decir que cuando hay unaactualización de la base de datos se realiza en todos los sitiosdonde hay réplicas

Page 28: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Continuación …

Existen tres escenarios de replicación:

Base de datos totalmente replicada, guarda variascopias de cada fragmento de la base de datos envarios sitios. No es práctica debido la cantidad decarga impuesta al sistema.

Base de datos parcialmente replicada, guardamúltiples copias de algunos fragmentos de la base dedatos en múltiples sitios. Se tiene un buen manejo

Base de datos no replicada, guarda cada fragmentode base de datos en un solo sitio.

Page 29: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Procesamiento deconsultas distribuidas

Page 30: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Metodología del procesamiento de consultas distribuidas.

El procesamiento de consultas tiene como objetivoprincipal transformar una consulta escrita en unlenguaje de alto nivel (SQL) en una estrategia deejecución correcta y eficiente expresada en unlenguaje de bajo nivel (algebra relacional) y ejecutarla estrategia para extraer los datos requeridos

Page 31: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

¿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

Page 32: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

¿Cuáles son las etapas típicas de ladescomposición de consultas?

Análisis

Normalización

Análisis semántico

Simplificación

Reestructuración de la consulta

Page 33: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

Estrategias de procesamiento de consultas distribuidas.

El sistema debe de ser capaz de procesarconsultas que hagan referencia a datos situados amas de un nodo

Page 34: Benjamín Martínez Martínez - … · Base de Datos Distribuidas Benjamín Martínez Martínez ... lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente

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