BDD - Diseño de BDD
-
Upload
alfaro-jose-eduardo -
Category
Documents
-
view
966 -
download
5
Transcript of 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
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.
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
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
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.
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
C.M.C. LI. Giovanni Carreón Valdés
Lógica de procesamiento.
Funciones.
Datos. Control.
¿Qué está Distribuido? ...
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
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).
C.M.C. LI. Giovanni Carreón Valdés
SMBD Centralizadas
BDBD
RED
Sitio 3
Sitio 1
Sitio 2
C.M.C. LI. Giovanni Carreón Valdés
SMBD Distribuidas
RED
Sitio 3
Sitio 2
Sitio 1
BDBD
BDBD
BDBD
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
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• • •
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
• • •
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• • •
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.
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
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
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.
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.
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
C.M.C. LI. Giovanni Carreón Valdés
VistaExterna
VistaInterna
VistaConceptual
VistaExterna
VistaExterna
EsquemaExterno
EsquemaConceptual
EsquemaInterno
Usuarios
Arquitectura ANSI/SPARC
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.
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.
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.
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.
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.
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.
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
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
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
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
. . .
. . .
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
C.M.C. LI. Giovanni Carreón Valdés
ARQUITECTURAARQUITECTURACLIENTE/SERVIDORCLIENTE/SERVIDOR
ARQUITECTURAARQUITECTURACLIENTE/SERVIDORCLIENTE/SERVIDOR
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.
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
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.
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.
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.
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.
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.
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)
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.
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
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.
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)
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
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.
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
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.
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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).
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.
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
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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
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.
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
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
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
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
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
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
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.
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)
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.
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
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.)
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.
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
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
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
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
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.
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
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
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
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
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
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).
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}.
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
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.
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
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
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).
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.
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.
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 =
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
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.
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)
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
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
C.M.C. LI. Giovanni Carreón Valdés
FRAGMENTACION VERTICALFRAGMENTACION VERTICALFRAGMENTACION VERTICALFRAGMENTACION VERTICAL
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.
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.
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.
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
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
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
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
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
C.M.C. LI. Giovanni Carreón Valdés
Costo de Comunicación
j jjijkki kik
xxclq f
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
C.M.C. LI. Giovanni Carreón Valdés
Costo de Acceso a Varios Fragmentos
kjkjkij 1ki
yyf c
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
C.M.C. LI. Giovanni Carreón Valdés
Costo de Almacenamiento de Fragmentos
jj2j
wwc
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
C.M.C. LI. Giovanni Carreón Valdés
Costo de Reubicación
j jjijii
xxdca
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;
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
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
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
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
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
C.M.C. LI. Giovanni Carreón Valdés
Solución Factible Actual
z
z(x)
x
C.M.C. LI. Giovanni Carreón Valdés
Vecindad de Solución Actual
z
z(x)
xH(x)
C.M.C. LI. Giovanni Carreón Valdés
La Nueva Solución se Genera Aleatoriamente
z
z(x)
xyH(x)
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)
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
C.M.C. LI. Giovanni Carreón Valdés
Se Obtiene una Nueva Solución Actual
z
Nueva x
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
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
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
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
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.
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.