bdd - diseño de bdd

164
C.M.C. LI. Giovanni Carreón Vald BASES DE DATOS DISTRIBUIDAS BASES DE DATOS DISTRIBUIDAS Expositor: Dr. Rodolfo A. Pazos Rangel C U R S O

Upload: alfaro-jose-eduardo

Post on 24-Jun-2015

980 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

BASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDAS

Expositor:

Dr. Rodolfo A. Pazos Rangel

C U R S O

Page 2: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Contenido

Fundamentos de SBDDs. Arquitectura Cliente/Servidor. Diseño de Bases de Datos Distribuidas. Procesamiento Distribuido de Consultas. Manejo Distribuido de Transacciones.

Page 3: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMASDE BASESDE BASES

DE DATOS DISTRIBUIDASDE DATOS DISTRIBUIDAS

FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMASDE BASESDE BASES

DE DATOS DISTRIBUIDASDE DATOS DISTRIBUIDAS

Page 4: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Motivaciones

Tecnología deBases de Datos

Redes deComputadoras

Sistemas deSistemas deBases de DatosBases de Datos

DistribuidasDistribuidas

IntegraciónIntegración DistribuciónDistribución

IntegraciónIntegración

Integración Integración Centralización Centralización

Page 5: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Computación Distribuida

Un concepto en busca de un nombre y una definición.

Un conjunto de elementos de procesamiento autónomos (no necesariamente homogéneos) que se encuentran interconectados mediante una red de comunicaciones y que cooperan en la ejecución de sus tareas asignadas.

Page 6: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Términos sinónimos: Función distribuida. Procesamiento distribuido de datos. Procesamiento satelital. Procesamiento dorsal. Computadoras de propósito especial/dedicado. Sistemas de tiempo compartido. Sistema modular funcional.

Computación Distribuida

Page 7: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Lógica de procesamiento.

Funciones.

Datos. Control.

¿Qué está Distribuido? ...

Page 8: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

¿Qué es un Sistema de Base de Datos Distribuida?

Una Base de Datos Distribuida (BDD) es aquélla en la que sus datos se encuentran repartidos en varias computadoras que están interconectadas por una red de comunicaciones.

Un Sistema Adminstrador de Bases de Datos Distribuidas (SABDD) es el software que administra la BDD y propor- ciona un mecanismo de acceso que hace transparente esta distribución a los usuarios.

Sistema de Base de Datos Distribuida (SBDD) = BDD + SABDD

Page 9: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

¿Qué no es un SBDD?

Un sistema de cómputo de tiempo compartido. Un sistema multiprocesador fuertemente o débilmente

acoplado. Un sistema de base de datos, el cual reside en un solo nodo

de la red (esto es una base de datos centralizada).

Page 10: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

SMBD Centralizadas

BDBD

RED

Sitio 3

Sitio 1

Sitio 2

Page 11: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

SMBD Distribuidas

RED

Sitio 3

Sitio 2

Sitio 1

BDBD

BDBD

BDBD

Page 12: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Los datos están almacenados en diferentes sitios (cada uno de los sitios lógicamente consiste de un procesador).

Los procesadores en diferentes sitios se encuentran inter- conectados vía una red de comunicaciones (no multipro-cesadores). Sistemas de bases de datos en paralelo.

La base de datos distribuida es una base de datos, no una colección de archivos (datos lógicamente relacionados que son presentados al usuario con un patrón de acceso). Modelo de datos relacional.

Un SABDD es un SABD completo. No es un sistema de archivos distribuidos, ni un sistema TP.

Implícitamente se Supone que

Page 13: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura de Memoria Compartida

Ejemplos: Multiprocesadores simétricos (Sequent, Encore) y algunos "mainframes" (IBM 3090, DPS8 de Bull).

BDBD

P1Pn M• • •

Page 14: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura de Disco Compartido

Ejemplos: VAXcluster de DEC, IMS/VS de IBM y Data Sharing.

BDBD

P1

M1

Pn

Mn

• • •

Page 15: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura con Nada Compartido

Ejemplos: DBC de Teradata, Tandem, Paragon de Intel, 3600 y 3700 de NCR.

BDBD11

P1

M1

Pn

Mn

BDBDnn• • •

Page 16: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Aplicaciones

Manufactura (especialmente en manufactura multiplanta).

Comando y control militar. SIGs corporativos. Aerolíneas. Cadenas hoteleras. Cualquier organización que tenga una

estructura organizacional descentra-lizada.

Page 17: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Razones económicas y organizacionales. Fiabilidad y disponibilidad. Distribución del control y utilización compartida de

datos. Reducción de tráfico en la comunicación de datos. Agilización del procesamiento de consultas. Interconexión de bases de datos existentes. Crecimiento incremental.

Ventajas de los SBDDs

Page 18: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Objetivos1 de las BDDs 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.

1 C.J. Date

Page 19: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Desventajas de los SBDD

Falta de experiencia. Complejidad. Costo. Distribución del control. Dificultad de cambio.

Page 20: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Problemáticas en los SABDDs

Diseño de bases de datos distribuidas. ¿Cómo distribuir la base de datos? Distribución de la base de datos replicada y no-replicada. Problema relacionado con la administración del

diccionario. Procesamiento de consultas.

Problema de optimización. Min{costo = transmisión de datos + procesamiento local}. La formulación general es un problema NP completo. Conversión de transacciones de usuario a instrucciones de

manipulación de datos.

Page 21: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

El proceso de optimización de consultas necesita ser distribuido; consta de dos fases:

Optimización Global:- Medios de Transmisión.- Distribución de Subconsultas.

Optimización Local:- Accesos a Disco.- Manipulación de Memoria.- Uso de Indices.

Problemática en el Procesamiento de Consultas

Page 22: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Opciones para Almacenar el Diccionario

Red

Sitio A Sitio B Sitio C

Red

d1d1 d2d2d3d3

Red

Sitio A Sitio B Sitio C

Red

d1d1 d2d2d3d3 d1d1 d2d2d3d3d1d1 d2d2d3d3

d1d1 d2d2 d3d3

Red

Sitio A Sitio B Sitio C

Red

DICCIONARIO

DICCIONARIODICCIONARIODICCIONARIO

DICCIONARIO

d1d1 d2d2 d3d3

Red

Sitio A Sitio B Sitio C

Red

DICCIONARIO

d1d1 d2d2d3d3

1. Centralizado

2. Completamente Replicado

3. Particionado

4. Combinación de 1 y 3

Page 23: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Problemáticas en los SABDDs

Control de concurrencia. Sincronización de accesos concurentes. Mantenimiento de congruencia y aislamiento de los

efectos de las transacciones. Manejo de interbloqueo .

Fiabilidad. ¿Cómo hacer el sistema resistente a fallas? Atomicidad y durabilidad.

Page 24: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Relación entre Problemas

Administraciónde Directorio

Diseño deDistribución

Control deConcurrencia

Administraciónde Interbloqueo

FiabilidadProcesamientode Consultas

Page 25: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Problemáticas Relacionadas

Soporte de sistema operativo. Sistema operativo con soporte adecuado para operar

bases de datos. Dicotomía entre requerimientos de procesamiento de

propósito general y requerimientos de procesamiento de bases de datos.

Sistemas abiertos e interoperabilidad. Sistemas multibases de datos. Escenarios con mayor probabilidad. Problemáticas de paralelismo.

Page 26: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Promesas de los SABDDs

Manipulación transparente de datos distribuidos, repetidos y fragmentados.

Mejora en confiabilidad y disponibilidad por medio de transacciones distribuidas.

Mejora en la eficiencia. Expansión de sistemas fácil y económica.

Page 27: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Soporte de Transparencia

Aún no hay de repetición. Tampoco hay de fragmentación.

Pudiera venir la fragmentación horizontal. Transparencia de distribución aún limitada.

Especificar camino. Manejo de alias. Login remoto a un SMBD.

La mayoría son múltiples clientes con un solo servidor.

Page 28: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Transacciones Distribuidas en Sistemas Comerciales

Algunos no las proporcionan del todo. Oracle 6.x tiene que abrir una sola base de datos a la

vez, Sybase ofrece las primitivas, las aplicaciones tienen que implementar las transacciones distribuidas por sí mismas.

Otros lo hacen. Ingres, NonStop SQL, y Oracle ver.7.

Soporte de repetición. No existe. Utilizan la regla ROWA: Read One Write All.

Page 29: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

En Busca de Mejora en la Eficiencia

Proximidad de datos a sus sitios de uso. Requiere soporte de fragmentación y

repetición. Paralelismo en la ejecución.

Paralelismo inter-consulta. Paralelismo intra-consulta.

Page 30: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Requerimientos para el Paralelismo

Tener los datos lo más cercanos a cada uno de los sitios en donde las aplicaciones los soliciten.

Repetición total.

¿Qué pasa con las actualizaciones? Las actualizaciones a datos repetidos requieren

la implementación de control de concurrencia y protocolos de compromiso.

Page 31: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Alternativas en Sistemas Comerciales

Multiplar el tiempo entre lecturas y actua-lizaciones. Tener la base de datos abierta para leer durante

horas pico, y ejecutar actualizaciones en horario de poca actividad.

Los bancos hacen esto. Multiplar la base de datos.

Base de datos de consultas. Base de datos de producción.

Page 32: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Expansión del Sistema

El problema es escalar bases de datos. Surgimiento de las tecnologías de micro-

procesadores y estaciones de trabajo. Descontinuación de la ley de Grosh. Modelo de computación cliente/servidor.

Costo de comunicación de datos vs. costo de telecomunicaciones.

Page 33: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Ejemplo

ENO ENAME TITLE

E1 J. Doe Elect. Eng. E2 M.Smith Syst. Anal. E3 A. Lee Mech. Eng. E4 J. Miller Programmer E5 B. Casey Syst. Anal. E6 L. Chu Elect. Eng. E7 R. Davis Mech. Eng. E8 J. Jones Syst. Anal.

E

J

G

S

ENO JNO RESP DUR

E1E2E2E3E3E4E5E6E7E7E8

J1J1J2J3J4J2J2J4J3J5J3

ManagerAnalystAnalyst

ConsultantEngineer

ProgrammerManagerManagerEngineerEngineerManager

12246

1048182448362340

JNO JNAME BUDGET LOC

J1J2J3J4J5

InstrumentationDatabase Develop.

CAD/CAMMaintenanceCAD/CAM

150000135000250000310000500000

MontrealNew YorkNew York

ParisBoston

TITLE SAL

Elect. Eng.Syst. Anal.Mech. Eng.Programer

40000340002700024000

Page 34: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

ARQUITECTURA DE SISTEMASARQUITECTURA DE SISTEMASADMINISTRADORES DE BASESADMINISTRADORES DE BASES

DE DATOS DISTRIBUIDASDE DATOS DISTRIBUIDAS

ARQUITECTURA DE SISTEMASARQUITECTURA DE SISTEMASADMINISTRADORES DE BASESADMINISTRADORES DE BASES

DE DATOS DISTRIBUIDASDE DATOS DISTRIBUIDAS

Page 35: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

VistaExterna

VistaInterna

VistaConceptual

VistaExterna

VistaExterna

EsquemaExterno

EsquemaConceptual

EsquemaInterno

Usuarios

Arquitectura ANSI/SPARC

Page 36: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Vista Interna

Esta vista trata con la definición física y la organización de los datos.

Este nivel se encarga de los problemas de la localización de los datos en los difrerentes dispositivos de almacena-miento y los mecanismos que se usan para accesar y mani-pular los datos.

El esquema interno es la descripción de la vista interna.

Page 37: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Vista Conceptual

La vista conceptual es la percepción del “mundo real” de la empresa que se modela en la base de datos.

En esta vista la base de datos se percibe en su totalidad y de una manera abstracta.

El esquema conceptual es la descripción de la vista con-ceptual.

El término esquema conceptual se confunde con el de mo-delo conceptual.

Page 38: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Vista Externa

Esta vista se encarga de la percepción que tienen los usua-rios de la base de datos.

En esta vista la base de datos se percibe de una manera abstracta.

La vista de un usuario individual representa la porción de la base de datos que será accesada por el usuario así como las relaciones que el usuario desearía ver entre los datos.

El esquema externo es la descripción de la vista externa.

Page 39: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definición de Autonomía de SABDs

Cada SABD tiene libertad de escoger su modelo de datos y la técnica de administración de transacciones.

Los SABDs pueden decidir qué información desean com-partir y cómo desean compartirla con otros SABDs.

Cada SABD tiene libertad para ejecutar las transacciones que se le ofrezcan de la manera que desee.

Page 40: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definición de Autonomía de SABDs

Las operaciones locales de los SABDs no deben ser afec-tadas por su participación en el sistema.

El procesamiento y optimización de los SABDs no deben ser afectados por la ejecución de consultas globales.

La congruencia y operación del sistema no debe afectarse cuando los SABDs se agregan o separan del sistema.

Page 41: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Heterogeneidad de SABDs

De sistema operativo. De sistema administrador de bases de datos. De modelo de datos. De lenguaje de manipulación de datos. De mecanismo de administración de transacciones.

Page 42: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Alternativas de Implementación de SABDs

Distribución

Heteroge-neidad

Autonomía

SABDheterogéneoy distribuido

SABD múltiplehomogéneo ycentralizado

SABD homogéneo y distribuido

SMBDheterogéneoy centralizado

SABD federadohomogéneo ydistribuido

SMBD homogéneo y distribuido

SABD federadoheterogéneoy centralizado

SABDheterogéneoy centralizado

SMBDhomogéneoy centralizado

SMBDheterogéneo y distribuido

SABD federadohomogéneo ycentralizado

SABD federadoheterogéneoy distribuido

Page 43: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura de Base de Datos Distribuida

Esqumaexterno 1

Esquemaexterno B

Esquemaexterno A

Esquemaexterno C

Esquemaconceptual global

Esquemaconceptual local 2

Esquemaconceptual local 1

Esquemaconceptual local 3

Esquemainterno local 2

Esquemainterno local 1

Esquemainterno local 3

Page 44: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Componentes de un SABD Distribuido

Manejador deinterfaz

de usuario

Controladorde datos

semánticos

Optimizadorde consultas

globales

Monitor deejecución

global

Esquemaexterno

Esquemaconceptual

global

DG/D

Procesador deconsultas

local

Administradorde recuperación

local

Procesadorde soporte en

ejecución

Esquemaconceptual

local

Esquemainterno

local

Bitácorade sistema

Base dedatos

Procesador de Usuario Procesador de Datos

Page 45: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura de SMBD con ECG

Esqumaexterno 1

Esquemaglobal externo

Esquemaconceptual global

Esquemaconceptual local 1

Esquemaconceptual local N

Esquemainterno local 1

Esquemainterno local N

Esquemalocal externo

Esquemalocal externo

Esqumaexterno 1

Esquemaglobal externo

Esqumaexterno 1

Esquemaglobal externo

Esquemalocal externo

Esquemalocal externo

. . .

. . .

Page 46: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura de SMBD sin ECG

Esqumaexterno 1

Esquemaexterno B

Esquemaexterno A

Esquemaexterno C

Esquemaconceptual local 2

Esquemaconceptual local 1

Esquemaconceptual local 3

Esquemainterno local 2

Esquemainterno local 1

Esquemainterno local 3

Page 47: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

ARQUITECTURAARQUITECTURACLIENTE/SERVIDORCLIENTE/SERVIDOR

ARQUITECTURAARQUITECTURACLIENTE/SERVIDORCLIENTE/SERVIDOR

Page 48: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Arquitectura Cliente/Servidor

Una arquitectura es un conjunto de definiciones, reglasy términos que se emplean para construir un producto.

La arquitectura Cliente/Servidor es un tipo de cómputo distribuido y cómputo cooperativo.

Las partes que intervienen en esta arquitectura son el cliente (generador de peticiones), el servidor (ofrece elservicio) y el elemento que enlaza es la red de cómputo.

Los actores establecen una comunicación entre pares, o sea de igual a igual, dado que los clientes de una apli-cación pueden actuar como servidores de otra.

Page 49: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo Cliente/Servidor

El usuario interactúa con un cliente.- Uso de GUI

3 Capas básicas:- Aplicaciones.- Servicios del sistema.- Hardware.

Puede presentarse a nivel servicios del sistema.

PROCESOCLIENTE

SERVICIOS DEL SISTEMA

HARDWARE

PROCESOSERVIDOR

SERVICIOS DEL SISTEMA

HARDWARE

Petición

Respuesta

Usuario Cliente Servidor

Page 50: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Ventajas de la ArquitecturaCliente/Servidor

Permite un mejor aprovechamiento de la capacidad de cómputo (reparte el trabajo).

Reduce el tráfico en la red (viajan solicitudes). Opera bajo sistemas abiertos. Permite el uso de interfaces gráficas versátiles.

Page 51: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definiendo los Componentes

Servidor. Conjunto de software y hardware que responde a los requerimientos de un cliente.

Tipos de Servidores

Servidor de archivos. Servidor de bases de datos. Servidor de comunicaciones. Servidor de impresión. Servidor de terminal. Servidor de aplicaciones, de imágenes, etc.

Page 52: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Actividades Comunes del Servidor

Acceso, almacenamiento y organización de datos.

Actualización de datos almacenados.

Administración de recursos compartidos.

Ejecuta toda la lógica para procesar una transacción.

Datos, poder de CPU, almacenamiento en disco, capacidad de impresión, manejo de memoria, comunicación, etc.

Page 53: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definiendo los Componentes

Cliente. Conjunto de software y hardware que involucra los servicios de uno o varios servidores.

El Cliente oculta al servidor y la red. Detecta e intercepta peticiones de la aplicación y

puede redireccionarla. Dedicado a la sesión del usuario (inicia ... termina). El método más común por el cual solicita los servicios a

un servidor es por medio de RPCs1.

1Un RPC es un procedimiento que se ejecuta en otra máquina diferente a la que hizo la invocación.

Page 54: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Actividades Comunes del Cliente a Nivel Aplicación

Mantener y procesar todo el diálogo con el usuario. Manejo de pantallas. Menús e interpretación de comandos. Introducción de datos y validación. Procesamiento de ayudas. Recuperación de errores.

Page 55: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definiendo los Componentes

Red de Cómputo. Conjunto de software y hardware que enlaza a los clientes con los servidores.

Se clasifican en los siguientes tipos:

Redes de área local (LAN) Redes de área metropolitana (MAN) Redes de área amplia (WAN)

Tecnologías que se pueden aplicar:

Ethernet (10 Mbps), Token Ring (4 o 16 Mbps), FDDI (100 Mbps), CDDI (100 Mbps), ATM (44.736 Mbps), Frame Relay (2.048 Mbps)

Page 56: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Atributos de la Comunicación

El cliente debe localizar e iniciar la comunicación con el servidor (o servidores).

No usa la tecnología de compartir archivos. El modelo ejecuta el programa en el servidor y sólo

se mandan los resultados de I/O (tráfico = datos leídos o escritos).

Estilo transaccional y cooperativo.

Page 57: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Estilo de Base de Datos conServidor de Archivos Compartidos

Estilo de Base de Datos conArquitectura Cliente/Servidor

Ejecutablede BD

Indices

AplicaciónCliente

Solicitud

Respuesta

Ejecutablede BD

Indices

Servidor deTransferencia

Transferencia

Archivos

Page 58: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Técnicas de Procesamiento y Protocolos

Llamados a procedimientos remotos (RPCs). Interacciones SQL cliente/servidor. Memoria compartida. Paso de mensajes (con conexión o sin ella). SPX/IPX. NETBEUI. TCP/IP. Names Pipes. UDP. Sockets.

Page 59: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Llamadas a Procedimientos Remotos (RPC)

Proceso Cliente

Main(){ some code;... call rpc(a,b,c);... más código;}

send((x=a, y=b), rpc)receive(c=z, rpc)

Proceso Servidor

Procedure rpc(x,y,z){ código que usa x,y;... return(z=result);}

receive(x,y,invocador)

send(z,invocador)

Page 60: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Interacción SQL y ODBC

Aplicación

SQL

ODBC

Transporte

Red

SQL

ODBC

Transporte

Red

SABD

Comandos enSQL

oLlamadas a

ODBC

Page 61: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución entre Cliente y Servidor

Generalmente tres son los elementos a distribuir entre el cliente y el servidor:

El manejo de datos. La aplicación. La presentación.

En los extremos se encuentran los casos más frecuentes:

Presentación en el cliente, aplicación y manejo de datos en el servidor.

Presentación y aplicación en el cliente, manejo de datos en el servidor.

Page 62: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución entre Cliente y Servidor

APLICACION

MANEJO DEDATOSTerminal con

X Windows

MOTIFMOTIF

PRESENTACION

Cliente Servidor

MANEJO DEDATOS

MS Windows

PRESENTACION

Cliente Servidor

APLICACION

Page 63: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Desarrollo de Aplicaciones Cliente/Servidor

Lenguajes de tercera generación (C, COBOL, etc., con las bibliotecas de APIs adecuadas).

Lenguajes de cuarta generación (Progress, Oracle, Infor- mix, Sybase, pueden operar con una variedad de BDs con sus controladores correspondientes).

Ambientes de desarrollo (incluye repositorio de procedi- mientos, mensajes de error, mensajes de ayuda, etc., así como herramientas de control de versiones, diseño, desa-rrollo de prototipos, usuario final, etc.). Líderes en am-bientes Windows: Power Builder de PowerSoft y SQL Windows de Centura Software.

Page 64: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

DISEÑO DE BASES DEDISEÑO DE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDASDISEÑO DE BASES DEDISEÑO DE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDAS

Page 65: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Problema de Diseño

En un marco general tomar decisiones acerca de la ubicación de los datos y

los programas, en los sitios de una red de computado-ras, así como también posiblemente el diseño de la propia red.

En los SABDDs, la ubicación de las aplicaciones supone ubicación del software de los SABDDs, y ubicación de las aplicaciones que corren sobre la base

de datos.

Page 66: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Dimensiones del Problema

Patrón de acceso

Compartimiento

Nivel deconocimiento

Estático

Datos

Datos +programa

Dinámico

Informaciónparcial

Informacióncompleta

Page 67: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Diseño de la Distribución

Descendente. Principalmente en sistemas que inician de cero. Principalmente en sistemas homogeneos.

Ascendente. Cuando las bases de datos ya existen en los diferentes

sitios.

Page 68: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Diseño DescendenteAnálisis de

requerimientos

Req. del sistema(objetivos)

Diseñoconceptual

Diseño de vistas

Entrada del usuario

Integración de vistas

Esq. conep. global Informaciónde acceso

Definición del esquema externo

Diseño de ladistribución

Esq. concep. local

Diseño físico

Esquema físico

Observ. y monit.

Entradadel usuario

Retroalimentación Retroalimentación

Page 69: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

¿Por qué fragmentar todo? ¿Cómo fragmentar? ¿Cuánto fragmentar? ¿Cómo probar la correctez? ¿Cómo ubicar los fragmentos? ¿Qué requerimientos de información?

Problemática del Diseño de la Distribución

Page 70: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

¿Podemos distribuir sólo relaciones? ¿Cuál es la unidad razonable de distribución?

Relación. Las vistas son subconjuntos de relaciones (localmente). Comunicación extra.

Fragmento de relación (sub-relación). Ejecución concurrente de un número de transacciones que

accesan diferentes porciones de una relación. Las vistas que no puedan ser definidas sobre un solo

fragmento requerirán procesamiento extra. El control de la semántica de datos (especialmente forzar la

integridad) es más complejo.

Fragmentación

Page 71: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Alternativas: Fragmentación Horizontal

J1: Proyectos con presupuesto menor que $200,000.

J2: Proyectos con presupuesto mayor o igual a $200,000.

J

J1 J2

JNO JNAME BUDGET LOC

J1J2J3J4J5

InstrumentationDatabase Develop.

CAD/CAMMaintenanceCAD/CAM

150000135000250000310000500000

MontrealNew YorkNew York

ParisBoston

JNO JNAME BUDGET LOC

J1J2

InstrumentationDatabase Develop.

150000135000

MontrealNew York

JNO JNAME BUDGET LOC

J3J4J5

CAD/CAMMaintenanceCAD/CAM

250000310000500000

New YorkParis

Boston

Page 72: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Alternativas: Fragmentación Vertical

J1: Información de los presupuestos de los proyectos.

J2: Información de los nombres de los proyectos y su ubicación.

J

J1J2

JNO JNAME BUDGET LOC

J1J2J3J4J5

InstrumentationDatabase Develop.

CAD/CAMMaintenanceCAD/CAM

150000135000250000310000500000

MontrealNew YorkNew York

ParisBoston

JNO BUDGET

J1J2J3J4J5

150000135000250000310000500000

JNO JNAME LOC

J1J2J3J4J5

InstrumentationDatabase Develop.

CAD/CAMMaintenanceCAD/CAM

MontrealNew YorkNew York

ParisBoston

Page 73: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Grado de Fragmentación

Encontrar el nivel adecuado de particionamientodentro de este rango.

Número finito de alternativas

Tuplas oatributos

Relaciones

Page 74: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Completez. La descomposición de una relación R en fragmentos R1,

R2, ..., Rn, es completa si y sólo si cada elemento de datos en R puede ser encontrado en algún Ri.

Reconstrucción. Si la relación R se descompone en fragmentos R1, R2, ..., Rn,

debiera existir un operador relacional tal que R = Ri, Ri FR .

Excluyente. Si la relación R se descompone en fragmentos R1, R2, ..., Rn,

y datos del elemento di están en Rj, entonces di no debiera estar en algún otro fragmento Rk (j k).

Correctez de la Fragmentación

Page 75: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

No Replicado. Particionada: cada fragmento reside en un solo sitio.

Replicado. Réplica completa: cada fragmento en cada sitio. Réplica parcial: cada fragmento en algunos de los

sitios. Regla del pulgar:

Si 1 replicación es ventajosa,

de lo contrario la réplica puede causar problemas.

Alternativas de Asignación

Consultas sólo de lecturaConsultas para actualizar

Page 76: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Comparación de Alternativas de Réplica

Réplica Total Réplica Parcial Particionado

PROCESAMIENTODE CONSULTAS

FácilMisma Dificultad

ADMINISTRACIONDE DICCIONARIO

Fácil ono existente

Misma Dificultad

CONTROL DECONCURRENCIA

Moderado Difícil Fácil

FIABILIDAD Muy Alta Alta Baja

FACTIBILIDAD PosibleAplicación

RealistaPosible

Aplicación

Page 77: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Cuatro Categorias:

Información de la base de datos. Información de la aplicación. Información de la red de comunicaciones. Información del sistema de cómputo.

Requerimientos de Información

Page 78: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación horizontal (FH). Fragmentación horizontal primaria (FHP). Fragmentación horizontal derivada (FHD).

Fragmentación vertical (FV). Fragmentación híbrida o mixta (FM).

Tipos de Fragmentación

Page 79: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHP - Requerimientos de Información

Información de la base de datos: Relaciones

TITLE, SAL

ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC

ENO, JNO, RESP, DUR

S

E J

G

L1

L2 L3

Cardinalidad de cada relación: card(R).

Page 80: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHP - Requerimientos de Información

Información de la aplicación: Predicados simples: Dada R[A1,A2,...An], un predicado

simple pj es

pj : Ai Valor

donde {=, <, , >, }, Valor Di y Di es el dominio de Ai.

Ejemplo: JNAME = ‘Maintenance’BUDGET 200000.

Predicados minterm: Dado Ri y Pri = {pi1, pi2, ..., pim} definir Mi = {mi1, mi2, ..., miz} como

Mi = {mij |mij = vpik Pri pik*}, 1 k m,

1 j z donde pik*= pi o pik*= pi.

Page 81: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Ejemplos de predicados minterm:

m1 : JNAME = ‘Maintenance’ BUDGET 200000

m2 : (JNAME = ‘Maintenance’) BUDGET 200000

m3 : JNAME = ‘Maintenance’ (BUDGET 200000)

m4 : (JNAME = ‘Maintenance’) (BUDGET 200000)

FHP - Requerimientos de Información

Page 82: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHP - Requerimientos de Información

Información de la aplicación: Selectividad de predicados minterm: sel(mj)

Número de tuplas de la relación que son accesadas por una consulta de usuario la cual está especificada por un predicado minterm mj dado.

Frecuencias de acceso: acc(qj) Frecuencia con la cual la aplicación qj accesa datos.Análogamente se puede definir la frecuencia de acceso para un predicado minterm.

Page 83: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación Horizontal Primaria

Definición:Rij = Fj(Ri), 1 j w

donde Fj es la fórmula de selección usada para obtener el frag-mento Rij, el cual es (preferentemente) un predicado minterm.

Por lo tanto: Una fragmentación horizontal Ri de una relación R consiste de

todas las tuplas de R las cuales satisfacen un predicado minterm. Dado un conjunto de predicados minterm M, hay tantas

fragmentaciones horizontales de la relación R como predicados minterm existan.

A los fragmentos horizontales también se les llama fragmentos minterm.

Page 84: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHP - Obtención de Predicados Simples

Dados: Una relación R, y el conjunto de predicados simples Pr.

Obtener: El conjunto de fragmentos de R = {R1, R2, ..., Rw} los cuales obedecen las reglas de fragmentación.

Preliminares: Pr debe ser completo. Pr debe ser mínimo.

Page 85: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Completez de los Predicados Simples

Se dice que un conjunto de predicados simples Pr es com-pleto si y sólo si el acceso a las tuplas de los fragmentos minterm definidos sobre Pr requiere que dos tuplas del mismo fragmento minterm tengan la misma probabilidad de ser accesadas por todas y cada una de las aplicaciones.

Page 86: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Ejemplo:

Suponemos que J(JNO, JNAME, BUDGET, LOC) tiene dos aplicaciones definidas para trabajar sobre J:Encontrar los presupuestos de los proyectos en cada

localidad.Encontrar los proyectos con presupuesto menor que

$200000.

Completez de los Predicados Simples

Page 87: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Completez de los Predicados Simples

De acuerdo a (1)

Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”}

lo cual no es completo con respecto a (2).

Si modificamos

Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”, BUDGET200000, BUDGET>200000}

el cual es completo.

Page 88: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Minimalidad de los Predicados Simples

Si un predicado influye en cómo se ejecuta la fragmenta-ción (v.g. provoca que un fragmento f se particione en nuevos fragmentos fi y fj), entonces debiera existir al menos una aplicación que accese a fi y fj diferentemente.

En otras palabras el predicado simple deberá ser relevante en determinar una fragmentación.

Si todos los predicados de un conjunto Pr son relevantes, entonces Pr es mínimo.

Page 89: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Relevancia de los Predicados Simples

acc(mi)card(fi)

acc(mj)card(fj)

Sean mi y mj dos predicados minterm idénticos en su defini-ción, excepto que mi contiene el predicado simple pi mien-tras que mj contiene pi, y sean fi y fj dos fragmentos defini-dos de acuerdo a mi y mj; entonces pi es relevante si y sólo si

Page 90: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Minimalidad de los Predicados Simples

Sin embargo, si agregamos

JNAME=“Instrumentation”

Ejemplo

Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”, BUDGET200000, BUDGET>200000}

es mínimo además de ser completo.

entonces Pr no es mínimo.

Page 91: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo COM-MIN

Entrada: Una relación R y un conjunto de predicados simples Pr.

Salida: Un conjunto de predicados simples completo y mínimo Pr’ para Pr.

Regla I: Una relación o fragmento se particiona en al menos dos partes las cuales son accesadas de manera diferente por al menos una aplicación.

Page 92: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo COM-MIN

Inicialización:Encontrar un pi Pr tal que pi particione R de

acuerdo a la Regla 1.Hacer Pr’ pi; Pr Pr - pi; F fi

Agregar predicados iterativamente a Pr’ hasta que esté completo. Encontrar un pj Pr tal que pj particione algún fk

definido por un predicado minterm de Pr’ de acuerdo a la Regla 1.

Hacer Pr’ Pr’ pi; Pr Pr - pi; F F fi

Si pk Pr’ el cual no es relevante, entoncesHacer Pr’ Pr’ - pk; F F - fk

Page 93: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo P-HORIZONTAL

Hacer Pr’ COM-MIN(R,Pr) Determinar el conjunto M de predicados minterm Determinar el conjunto de implicaciones I entre pi Pr

Eliminar los predicados minterm contradictorios de M

Hacer uso de COM-MIN para efectuar fragmentación.

Entrada: Una relación R y un conjunto de predicados sim- ples Pr.

Salida: Un conjunto de fragmentos minterm M de R.

Page 94: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Dos relaciones candidatas: S y J. Fragmentación de la relación S:

Aplicación: verificar salario y determinar aumento. Los registros de empleados se manipulan en dos sitios => la

aplicación corre en dos sitios. Predicados simples:

p1 : SAL 30000p2 : SAL > 30000Pr : {p1, p2} el cual es completo y mínimo Pr’ = Pr

Predicados minterm:m1 : (SAL 30000) (SAL 30000)m2 : (SAL 30000) (SAL 30000)

m3 : (SAL 30000) (SAL 30000)

m4 : (SAL 30000) (SAL 30000)

FHP - Ejemplo

Page 95: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación de la relación S (continúa): Implicaciones:

i1 : (SAL 30000) (SAL 30000)

i2 : (SAL 30000) (SAL 30000)

i3 : (SAL 30000) (SAL 30000)

i4 : (SAL 30000) (SAL 30000)

m1 es contradictorio a i1, m4 es contradictorio a i2

FHP - Ejemplo

TITLE SAL

Mech. Eng.Programmer

2700024000

TITLE SAL

Elect. Eng.Syst. Anal.

4000034000

S2S1

Page 96: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación de la relación J: Aplicaciones:

Encontrar el nombre y el presupuesto de los proyectos dado su número. Estas consultas son emitidas en tres sitios.

Accesar la información del proyecto de acuerdo a su presupuesto.

Predicados simples para la aplicación (1):p1 : LOC = “Montreal”

p2 : LOC = “New York”p3 : LOC = “Paris”

Predicados simples para la aplicación (2):p4 : BUDGET 200000

p5 : BUDGET 200000

Pr = Pr’ = {p1, p2, p3, p4, p5}

FHP - Ejemplo

Page 97: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación de la relación J (continúa): Fragmentos minterm después de la eliminación:

m1 : (LOC “Montreal”) (BUDGET 200000)

m2 : (LOC “Montreal”) (BUDGET 200000)

m3 : (LOC “New York”) (BUDGET 200000)

m4 : (LOC “New York”) (BUDGET 200000)

m5 : (LOC “Paris”) (BUDGET 200000)

m6 : (LOC “Paris”) (BUDGET 200000)

FHP - Ejemplo

Page 98: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHP - Ejemplo

JNO JNAME BUDGET LOC

J1 Instrumentation 150000 Montreal

JNO JNAME BUDGET LOC

J2 Database Develop. 135000 New York

JNO JNAME BUDGET LOC

J3 CAD/CAM 250000 New York

JNO JNAME BUDGET LOC

J4 Maintenance 310000 Paris

J1

J4 J6

J2

Page 99: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Definida sobre una relación miembro de una liga según una operación de selección especificada sobre su relación propietaria. Cada enlace corresponde a una equireunión.

Fragmentación Horizontal Derivada

TITLE, SAL

ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC

ENO, JNO, RESP, DUR

S

E J

G

L1

L2 L3

Page 100: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHD - Definición

Dado un enlace L donde propietario(L)=S y miembro(L)=R,la fragmentación horizontal derivada de R se define como

Ri = R Si, 1 i w

Donde w es el número máximo de fragmentos que serán definidos en R, y Si = Fi(S), donde Fi es la formula mediantela cual se define la fragmentación horizontal primaria Si.

Page 101: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHD - Ejemplo

ENO ENAME TITLEE3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE7 R. Davis Mech. Eng.

ENO ENAME TITLEE1 J. Doe Elect. Eng.E2 M. Smith Syst. Anal.E5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E8 J. Jones Syst. Anal.

Dado el enlace L1, donde propietario(L1)=S y miembro(L1)=E

E1= E S1

E2= E S2

dondeS1= SAL 30000(S)

S2= SAL >30000(S)

Page 102: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FHD - Correctez Completez.

Integridad referencial. Sea R la relación miembro de un enlace cuyo propieta-

rio es la relación S la cual está fragmentada como Fs = {S1, S2, ..., Sw}. Además sea A el atributo de la reunión entre R y S. Entonces para cada tupla t de R, debiera existir una tupla t’ de S tal que t[A] = t’[A]

Reconstrucción. Igual que la de la fragmentación horizontal primaria.

Exclusión. Si el grafo de la reunión entre el propietario y los frag-

mentos miembro es simple.

Page 103: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Ha sido estudiada dentro del contexto centralizado. Metodología de diseño. Agrupamiento físico.

Más difícil que la horizontal, debido a que existen más alternativas.

Existen dos técnicas: Agrupamiento de atributos en fragmentos. División de la relación en fragmentos.

Fragmentación Vertical

Page 104: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Traslape de fragmentos. Agrupamiento.

Sin traslape de fragmentos. División.

Fragmentación Vertical

No se considera traslape en los atributos llave replicados.

Ventaja: facilita hacer cumplir las dependencias funcionales (para verificar integridad, etc.)

Page 105: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Requerimientos de Información

Información de la aplicación: Afinidad de los atributos, la cual es una medida que indi-

ca qué tanta relación existe entre los atributos. Esto se obtiene de las primitivas de uso de los datos.

Dado un conjunto de consultas Q = {q1, q2, ..., qq} que corren sobre la relación R[A1, A2, ..., An],

uso(qi,Aj) = 1 si el atributo Aj es referido en la consulta qi

0 en caso contrario

uso(qi, ) se puede definir análogamente.

Page 106: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Ejemplo de uso(qi, Aj)

Considerar las siguientes 4 consultas para la relación J:

q1: SELECT BUDGET FROM J WHERE JNO=Valorq3: SELECT JNAME FROM J WHERE LOC=Valor

q2: SELECT JNAME, BUDGET FROM J

q4: SELECT SUM(BUDGET) FROM J WHERE LOC=Valor

Sean A1=JNO, A2=JNAME, A3=BUDGET, A4=LOC

A1 A2 A3 A4

q1 1 0 1 0q2 0 1 1 0q3 0 1 0 1q4 0 0 1 1

Page 107: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Medida de Afinidad aff(Ai, Aj)

La medida de afinidad entre dos atributos Ai y Aj de una rela-ción R[A1, A2, ..., An] con respecto al conjunto de aplicaciones Q = {q1, q2, ..., qn} se define como sigue

aff(Ai, Aj) = todas las consultas que accesan Ai y Aj refl(qk) acc(qk)Sl

Page 108: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Cálculo de aff(Ai, Aj)

Suponemos que cada consulta en el ejemplo anterior accesalos atributos una vez durante cada ejecución.

También suponemos lasfrecuencias de acceso

Entonces aff(A1, A3) = 15*1 + 20*1 +10*1

= 45

y la matriz de afinidad de atributos AA es

S1 S2 S3

q1 15 20 10q2 5 0 0q3 25 25 25q4 3 0 0

A1 A2 A3 A4

A1 45 0 45 0A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78

Page 109: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Algoritmo de Agrupamiento

Toma la matriz de afinidad de atributos AA y reorganiza el orden de los atributos para formar grupos donde los atribu-tos en cada grupo demuestran alta afinidad unos con otros.

El algoritmo de energía de cohesión (BEA) se usado para agrupamiento de entidades. BEA encuentra un orden de atributos tal que la medida de afinidad global

AM = (afinidad de Ai y Aj con sus vecinos)

se maximiza.

i j

Page 110: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo de Energía de Cohesión

Entrada: La matriz AA.Salida: La matriz de afinidad CA agrupada, la cual es una derivación de AA.

Inicialización: Colocar y ajustar una de las columnas de AA en CA.

Iteración: Colocar las n-i columnas restantes en el resto de i +1 posiciones en la matriz CA. Por cada columna, elegir el lugar que más contribuya a la medida de afinidad global.

Ordenar filas: Ordenar las filas de acuerdo al orden de columna.

Page 111: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo de Energía de Cohesión

La “mayor contribución” se encuentra de acuerdo a la siguien-te fórmula:

cont (Ai, Ak, Aj) = 2bond(Ai, Ak) + 2bond(Ak, Aj) - 2bond(Ai, Aj)

donde:

bond(Ax, Ay) = aff(Az, Ax) aff(Az, Ay) z=1

n

Page 112: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

BEA - Ejemplo

Considerar la siguiente matriz AA y la correspondiente matriz CAdonde A1 y A2 han sido ubicados como sigue:

AA = CA =

A1 A2 A3 A4

A1 45 0 5 0A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78

A1 A2

A1 45 0A2 0 80A3 45 5A4 0 75

Ordenar (0-3-1):cont (A0, A3, A1) = 2bond(A0, A3) + 2bond(A3, A1) - 2bond(A0, A1)

= 2*0 + 2*4410 - 2*0 = 8820Ordenar (1-3-2):

cont (A1, A3, A2) = 2bond(A1, A3) + 2bond(A3, A2) - 2bond(A1, A2) = 2*4410 + 2*890 - 2*225 = 10150

Ordenar (2-3-4):cont (A2, A3, A4) = 1780

Page 113: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

BEA - Ejemplo

Por lo tanto la matriz CA tiene la forma

La forma final de la matriz CA (después de organizar las filas) es

A1 A3 A2 A4

A1 45 45 0 0A3 45 53 5 3A2 0 5 80 75A4 0 3 75 78

A1 A3 A2

A1 45 5 0A2 0 5 80A3 45 53 5A4 0 3 75

A4

Page 114: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Algoritmo

¿Cómo puede dividirse un conjunto de atributos agrupados {A1, A2, ..., An} en dos (o más) conjuntos {A1, A2, ..., Ai} y {Ai+1, ..., An} tal que no haya (o sea mínimo el número de) aplicaciones que accesen ambos (o más de un) conjuntos?

A1,A2,A3, ..., Ai Ai+1, ..., AnA1

A2

A3

Ai

Ai+1

An

TA

BA

Page 115: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

DefinirTQ = conjunto de las aplicaciones que accesan sólo TA,BQ = conjunto de las aplicaciones que accesan sólo BA,OQ = conjunto de las aplicaciones que accesan TA y BA,yCTQ = número total de accesos a los atributos por las aplica-

ciones que accesan sólo TA,CBQ = número total de accesos a los atributos por las aplica-

ciones que accesan sólo BA,COQ = número total de accesos a los atributos por las aplica-

ciones que accesan TA y BA.

Entonces encontrar el punto sobre la diagonal que maximizaCTQ*CBQ-COQ2

FV - Algoritmo

Page 116: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FV - Algoritmo

Dos problemas: Un fragmento a la mitad de la matriz CA.

Cambiar la columna más izquierda hasta la derecha, reordenar las filas, y aplicar el algorimo para encontrar el “mejor” punto de particionamiento.

Hacer esto para todos los cambios posibles. Costo O(n2).

Para más de dos grupos. Particionamiento en n grupos. Probar 1, 2, ..., n-1 puntos de división a lo largo de la

diagonal y tratar de encontrar el mejor punto para cada uno de éstos.

Costo O(2n).

Page 117: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Completez. Lo siguiente debiera satisfacerse:A = Ai

Reconstrucción. La reconstrucción puede efectuarse mediante

R = K Ri, Ri FR Exclusión.

Los identificadores no se consideran para ser trasla-pados ya que son mantenidos por el sistema.

Las llaves duplicadas no se consideran para ser traslapadas.

FV - Correctez

Una relación R, definida sobre un conjunto de atributos A y clave K, genera la partición vertical FR={R1, R2, ..., Rr}.

Page 118: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Fragmentación Híbrida

R

R1 R2

R11 R12R21 R22 R23

FH FH

FV FV FVFV

FV

Page 119: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución de Fragmentos

Planteamiento del problema:

Dado

F = {F1, F2,...,Fn} es el conjunto de fragmentos.

S = {S1, S2, ..., Sm} es el conjubto de sitios en la red, y

Q = {q1, q2, ..., qq} es el conjunto de aplicaciones,

encontrar la distribución “óptima” de F en S.

Page 120: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución de Fragmentos

Costo minimo. Comunicación + Almacenamiento + Procesamiento (lectura

y actualizaciones). Costo en términos de tiempo (usualmente).

Eficiencia. Tiempo de respuesta.

Restricciones. Restricciones por sitio (almacenaje y procesamiento).

Optimalidad

Page 121: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Información de la base de datos. Selectividad de fragmentos. Tamaño de un fragmento.

Información de la aplicación. Tipos de acceso y número. Acceso a sitios.

Información de la red de comunicaciones. Ancho de banda. Distancias entre sitios. Sobrecarga de protocolos.

Información del sistema de cómputo. Unidad de costo de almacenar datos en un

sitio. Unidad de costo de procesar datos en un sitio.

Requerimientos de Información

Page 122: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Los fragmentos no pueden tratarse como archivos indivi-duales. Se tienen que tomar en cuenta sus relaciones.

El acceso a la base de datos es más complicado. El modelo de acceso a archivos remotos no aplica. Relación entre distribución y procesamiento de

consultas. El costo de mantener la integridad debe considerarse. El costo del control de concurrencia debe considerarse.

Distribución

Problema de distribución de archivos (FAP) vs. problema de distribución de base de datos (DAP).

Page 123: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución - Requerimientos de Información

Información de la base de datos: Selectividad de fragmentos minterm. Tamaño de los fragmentos.

Información de las aplicaciones: Número de accesos de lectura de una consulta a un

fragmento. Número de accesos de actualización a un fragmento. Una matriz que indique cuáles consultas actualizan qué

fragmentos. Una matriz similar para las lecturas. Sitio de origen de cada consulta.

Page 124: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Distribución - Requerimientos de Información

Información de los sitios: Unidad de costo de almacenar datos en un sitio. Unidad de costo de procesar datos en un sitio.

Información de la red: Costo de comunicación de una trama entre dos sitios. Tamaño de la trama.

Page 125: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo de Distribución

Forma generalmin(costo total)

sujeto arestricciones de tiempo de respuestarestricción de almacenajerestricción de procesamiento

variables de decisión:1 si el fragmento Fi se almacena en el sitio Sj

0 en caso contrarioxij =

Page 126: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo de Distribución

Costo Total : todas las consultas costo de procesamiento de consulta + todos los sitios todos los fragmentos costo de almacenaje de un frag. en

un sitio

Costo de almacenaje (del fragmento Fj en Sk):(unidad de costo de almacenaje en Sk) * (tamaño de Fj) *

xjk

Costo de procesamiento de consulta:componente de procesamiento + componente de transmisión

Page 127: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo de Distribución

Componente de procesamiento:costo de acceso + costo de mantenimiento de integridad

+ costo de control de concurrencia Costo de Acceso:

todos los sitios todos los fragmentos (no. de accesos de actualización + no. de accesos de

lectura) * xjk * costo de procesamiento local en un sitio

Los costos de mantenimiento de integridad y de control de concurrencia se pueden formaular de una manera similar.

Page 128: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo de Distribución

Componente de Transmisión: costo de procesar actualizaciones + costo de procesar lecturas

Costo de actualizaciones: todos los sitios todos los fragmentos costo del mensaje de actualizar +

todos los sitios todos los fragmentos costo de confirmación

Costo de lecturas: todos los fragmentos min todos los sitios (costo del comando de

recuperación + costo de enviar los resultados)

Page 129: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo de Distribución

Restricciones: Tiempo de respuesta:

tiempo de ejecución de la consultamax. tiempo de resp. permisible para esa consulta

Almacenamiento:

todos los fragmentos reqs. de almacenaje de un fragmento en ese sitio capacidad de almacenaje de ese sitio

Procesamiento: todas las consultas carga de proc. de una consultas en ese sitio

capacidad de procesamiento de ese sitio

Page 130: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Problema - Separación de los Pasos de Diseño

Relaciones Globales

FRAGMENTACION

Fragmentos de Relaciones

DISTRIBUCION

Relaciones Locales

Page 131: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

FRAGMENTACION VERTICALFRAGMENTACION VERTICALFRAGMENTACION VERTICALFRAGMENTACION VERTICAL

Page 132: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Introducción

En esta sección se presenta un modelo que unifica la fragmentación vertical, la ubicación y la reubicación dinámica en sistemas de bases de datos distribuídas.

Este modelo permite mejorar el desempeño de sistemas expuestos a cambios en los patrones de uso de los datos.

La naturaleza de muchos sistemas distribuídos es diná-mica, con cambios en la topología de la red, patrones y frecuencias de acceso, nuevos datos, número de nodos, costos, y recursos. Este aspecto dinámico se trata incor-porándolo en el modelo matemático.

Page 133: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Introducción

El uso generalizado de redes de comunicaciones para computadoras, incluyendo Internet, facilita la implemen-tación de sistemas de bases de datos distribuídas.

Sin embargo, uno de los problemas más difíciles para su desarrollo es la falta de metodologías y herramientas para efectuar su diseño.

Page 134: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Introducción

Tradicionalmente, se ha considerado que el diseño de la distribución consiste de dos fases separadas: fragmentación y ubicación de fragmentos.

Contrariamente a la creencia generalizada, se demuestra que es más sencillo resolver simultáneamente los proble-mas de fragmentación y ubicación.

En este sentido, el modelo propuesto es innovador.

Page 135: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Descripción del Problema

SnSn

S3S3S2

S2

S1S1

RED

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Dada una red de computadoras

Page 136: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Descripción del Problema

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Q = {q1, q2, ..., qq }: aplicaciones

SnSn

S3S3S2

S2

S1S1

RED

q2 q2 q1

q1

q1 q1q1

q1

q2 q2

Un conjunto de aplicaciones y una base de datos relacional

Page 137: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Descripción del Problema

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Q = {q1, q2, ..., qq }: aplicaciones

F = {f1, f2, ..., fn}: fragmentos

SnSn

S3S3S2

S2

S1S1

RED

q2 q2 q1

q1

q1 q1q1

q1

q2 q2 f2

f1

El problema consiste en la determinación y ubicación de fragmentos de tal forma que se minimice el costo total de comunicación y almacenamiento

Page 138: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo Matemático

En este modelo, la decisión de almacenar un atributo en el sitio j se representa con una variable binaria xj. Así xj= 1 si se almacena en j, y xj = 0 en caso contrario.

j jijiij2j

xdcawc

kjkijkij jijkki kik

yfc1xclq fzmin

Costo de comunicación Costo de acceso avarios fragmentos

Costo dealmacenamiento

Costo dereubicación

Page 139: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

SnSn

S3S3S2

S2

S1S1

RED

q1 q1q1

q1f1

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Q = {q1, q2, ..., qq }: aplicaciones

F = {f1, f2, ..., fn}: fragmentos

Costo de Comunicación

Page 140: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Costo de Comunicación

j jjijkki kik

xxclq f

Page 141: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Q = {q1, q2, ..., qq }: aplicaciones

F = {f1, f2, ..., fn}: fragmentos

Costo de Acceso a Varios Fragmentos

SnSn

S3S3S2

S2

S1S1

RED

q2 q2 q2

q2 f2

f1

Page 142: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Costo de Acceso a Varios Fragmentos

kjkjkij 1ki

yyf c

Page 143: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

S = {S1, S2, ..., Sn }: sitios o nodos en la red

F = {f1, f2, ..., fn}: fragmentos

Costo de Almacenamiento de Fragmentos

SnSn

S3S3S2

S2

S1S1

RED

f1

f2

Page 144: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Costo de Almacenamiento de Fragmentos

jj2j

wwc

Page 145: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Costo de Reubicación

SnSn

S3S3S2

S2

S1S1

RED

q1 q1q1

q1f1

f1

f1f1

f1f1

f1

f1

f1

f1 f1f1 f1 f1 f1 f1

S = {S1, S2, ..., Sn }: sitios o nodos en la red

Q = {q1, q2, ..., qq }: aplicaciones

F = {f1, f2, ..., fn}: fragmentos

Page 146: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Costo de Reubicación

j jjijii

xxdca

Page 147: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo Matemático

donde

fki = frecuencia de emisión de la consulta k desde el sitio i;

qk = parámetro de uso, qk = 1 si la consulta k usa el atributo, en caso contrario qk = 0;

lk = número de paquetes de comunicación necesarios para transportar al atributo requerido por la consulta k

= (p sk )/PA p = tamaño en bytes del atributo ; sk = selectividad de la consulta k; PA = tamaño del paquete de comunicación en bytes;

Page 148: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

cij = costo de comunicación entre el sitio i y el sitio j;

c1 = costo por accesar varios fragmentos para satisfacer unaconsulta;

c2 = costo por ubicar un fragmento en un sitio;

ykj = variable de decisión, ykj = 1 si la consulta k accede a uno o más atributos localizados en el sitio j, y ykj = 0 en caso contrario;

wj = variable de decisión, wj = 1 si existe uno o más atributos en el sitio j, y wj = 0 en caso contrario;

Modelo Matemático

Page 149: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

ai = indicador de ubicación previa, ai = 1 si el atributo está localizado actualmente en el sitio i, en caso contrario ai = 0;

d = número de paquetes de comunicación necesarios para mover el atributo a otro sitio en caso

necesario; = (p * CA)/PA

dondeCA = cardinalidad de la relación.

Modelo Matemático

Page 150: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Modelo Matemático

Restricciones intrínsecas del problema:

j

j jx

1

ik

kik i qx

,

1)

2)

cada atributo debe almacenarse en sólo

un sitio;

0si,0

0 si,1

ki

ki

kif

f

cada atributo debe ubicarse en un sitio i que ejecute por lo menos una consulta que involucre al atributo;

donde

Page 151: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Restricciones intrínsecas del problema:

3)

4)

esta restricción fuerza el valor de wj a 1 cuando cualquier xj es igual a 1, e induce wj a 0 en caso contrario;

esta restricción fuerza ykj a 1 cuan-do cualquier qkxj es igual a 1, e induce ykj a 0 en caso contrario;

j

xwt

jj

0

jk,

q

jk xytkj

0

Modelo Matemático

Page 152: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Restricciones intrínsecas del problema:

5) la suma de los tamaños de los frag-mentos asignados al sitio j no debe exceder la capacidad de éste. j

CA p xj CSj

Modelo Matemático

Page 153: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Solución Factible Actual

z

z(x)

x

Page 154: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Vecindad de Solución Actual

z

z(x)

xH(x)

Page 155: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

La Nueva Solución se Genera Aleatoriamente

z

z(x)

xyH(x)

Page 156: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Diferencia de Valores de la Función Objetivo

z

z(x)

z(y)

xy

z = z(y) - z(x)

Page 157: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Regla de Aceptación

z

xy

z = z(y) - z(x)

La nueva solución y se acepta si z < T

Page 158: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Se Obtiene una Nueva Solución Actual

z

Nueva x

Page 159: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo de Aceptación por Umbral

Inicio

real T, entero i, S x = la mejor de un conjunto de S soluciones factibles T = valor inicial alto de temperatura

Page 160: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Algoritmo de Aceptación por Umbral

repetir repetir para i = 1 hasta S y = solución vecina si z(y) - z(x) < T entonces x = y en caso contrario no se acepta la nueva solución fin_si i = i + 1 fin_si hasta alcanzar el equilibrio térmico T = T hasta alcanzar el congelamientoFin

Page 161: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

1 2 3 4 5 6 7 8 9 10 11 12 13

B&BAU

P R O B L E M A S

Desviación Porcentual Respecto al Óptimo

Page 162: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

0

1

2

3

4

5

6

7

8

1 2 3 4 5 6 7 8 9 10 11 12 13

B&BAU

P R O B L E M A S

Comparación en Tiempo de Ejecución

Page 163: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Conclusiones

Se han propuesto varios métodos para el diseño de bases de datos distribuídas. Invariablemente el problema de diseño se ha dividido en dos fases: fragmentación y ubicación.

El modelo propuesto muestra la factibilidad de integrar la fragmentación y ubicación en una sola fase, lo cual resulta en una solución más eficiente.

Page 164: BDD - Diseño de BDD

C.M.C. LI. Giovanni Carreón Valdés

Conclusiones

El modelo se resolvió usando dos algoritmos: Branch and Bound para programación entera, y Aceptación por Umbral. Los resultados experimentales muestran que el algoritmo de Aceptación por Umbral encuentra la solución óptima para problemas pequeños.

Los resultados muestran la eficiencia del algoritmo de Acep-tación por Umbral, con un buen desempeño para problemas pequeños y mostrando su potencial para resolver problemas grandes.