Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitecturas para Bases de Datos
Arquitecturas para Bases de Datos
Tema 1
Objetivos
Dar a conocer las principales arquitecturas de los sistemas de BD. Presentar las principales caractersticas y diferencias de las arquitecturas centralizadas frente a las cliente/servidor. Dar una visin de las arquitecturas paralelas y distribuidas. Introducir las arquitecturas para bases de datos Web.
1.2
Contenido
Arquitecturas paralelas
1.3
Bibliografa
Bsica
Silberschatz et al. (2002)
Complementaria
Connolly y Begg (2005)
Caps. 2, 22 y 29
Caps. 18-20
Date (2004)
Cap. 2 y 21
1.4
Introduccin
1.5
Introduccin
Distintas Funcionalidades
Las arquitecturas ms recientes para BD cada vez son ms especializadas con respecto al tipo de aplicacin dominante, presentando dos tipos de componentes:
Gestin optimizada y fiable de transacciones en servidores de BD, especializados para soportar cientos o miles de transacciones por segundo.
Anlisis de datos, operando sobre servidores de almacenes de datos (data warehouse), especializados en la gestin de datos para el soporte a la toma de decisiones.
Los servidores de datos normalmente soportan tanto OLTP y OLAP. La separacin de ambas funcionalidades es muy reciente, y permite especializacin, una mejor organizacin y un dimensionamiento ptimo de los servidores.
DASGBD Curso 2007/2008 1.6
Introduccin
Propiedades Deseables
En los Sistema de BD actuales, caracterizados por la necesidad de interaccin con otros sistemas, son altamente deseables las siguientes propiedades: Portabilidad: posibilidad de transportar aplicaciones de un entorno a otro.
Facilitada por lenguajes estndares:
SQL.
1.7
Arquitecturas Cliente-Servidor
Cliente-Servidor: este paradigma es un modelo general de interaccin entre procesos software donde los procesos que interactan estn divididos en:
1.8
Arquitecturas Cliente-Servidor
1.9
Arquitecturas Cliente-Servidor
El uso de mquinas diferentes para el cliente y para el servidor es particularmente conveniente en el mbito de las BD:
Mquina cliente: orientada a la interaccin con el usuario y al soporte a las herramientas de productividad (email, textos, hojas de clculo, ) Mquina servidor: Debe tener una gran memoria principal (para soportar la gestin de buffers) y una alta capacidad de disco (para almacenar la BD completa).
SQL ofrece un paradigma de programacin ideal para la identificacin del interfaz de servicio:
Las consultas SQL son formuladas por el cliente y enviadas al servidor Los resultados de las consultas son calculados por el servidor y devueltos al cliente La estandarizacin, portabilidad e interoperabilidad de SQL permite construir aplicaciones cliente que interactan con diferentes servidores.
1.10
Arquitecturas Cliente-Servidor
Cliente Cliente Cliente
Red
cola de entrada
cola de salida
Servidor de BD
DASGBD Curso 2007/2008 1.11
Arquitecturas Cliente-Servidor
Arquitectura Multi-hebra
Frecuentemente, el servidor utiliza una arquitectura multi-hebra (multi-threaded) para gestionar las peticiones de los clientes (ver figura anterior).
Desde el punto de vista del sistema operativo, se comporta como un nico proceso que trabaja de forma dinmica para atender diferentes transacciones. Pero internamente tiene una unidad de ejecucin , denominada hebra (thread), para atender a cada una de las transacciones. Los procesos servidores estn permanentemente activos para controlar una cola de entrada de peticiones de los clientes y una cola de salida con los resultados de las consultas. Los servidores gestionan estas colas de forma directa o por medio de otros procesos, llamados despachadores (dispatchers), que distribuyen las peticiones entre los servidores y retornan las respuestas a los clientes adecuados. Algunas veces los despachadores pueden establecer de forma dinmica el nmero de procesos servidor activos en funcin del nmero de peticiones recibidas (igual que las cajas abiertas en un hipermercado).
1.12
Arquitecturas Cliente-Servidor
Mayor resistencia a fallos. Aunque son ms vulnerables a los fallos debido a su mayor complejidad estructural, soportan la degradacin suave, es decir, responden a los fallos con una reduccin del rendimiento pero no con un fallo total.
1.14
Homogneas o heterogneas segn todos los servidores utilicen el mismo SGBD o no, y De rea local o de rea ancha segn sea la red de comunicaciones que conecta los servidores.
Tipo de Red LAN WAN
Gestin de viajes y aplicaciones financieras Banca integrada y sistemas interbancos
Tipo SGBD
Homogneo
1.15
1. 2. 3. Principio fundamental: Para el usuario un sistema distribuido (SD) debe funcionar igual que si no fuera distribuido. Autonoma local: los sitios de un SD deben ser autnomos en el mayor grado posible. No dependencia de un sitio central: Todos los sitios deben ser tratados como iguales. Operacin continua: El SD debe aumentar la confiabilidad (probabilidad de que est listo en un momento dado) y la fiabilidad (probabilidad de que est listo en un periodo largo de tiempo). Los apagados planeados nunca deberan ser necesarios. Independencia de localizacin: para el usuario la localizacin fsica de los datos debe ser transparente. Independencia de fragmentacin: los usuarios no necesitan conocer los fragmentos fsicos en que est dividida cada coleccin lgica de datos. Independencia de replicacin: a nivel lgico los usuarios no necesitan tener en cuenta si los datos tienen rplicas o no.
1.16
4. 5. 6.
1.17
Tipos de Servidores de BD
Los clientes interaccionan con los servidores realizando peticiones de lectura o escritura de datos en unidades de datos de diversa granularidad (archivos, pginas, tablas, registros, objetos, etc.). Tambin llamados servidores de consultas. Proporcionan una interfaz para que los clientes enven peticiones para realizar una accin (transaccin) que el servidor ejecutar y devolver los resultados al cliente.
Servidores de Transacciones:
Este tipo es mucho ms potente y mucho ms utilizado que el anterior. Un sistema de servidores de transacciones tpico consiste en mltiples procesos accediendo a los datos en una memoria compartida (ver sgte. figura)
1.18
Tipos de Servidores de BD
proceso servidor
proceso servidor
proceso servidor
Servidor
supervisor de procesos
tabla de bloqueos
gestor de bloqueos
lector/escritor de la BD
discos de datos
1.19
Tipos de Servidores de BD
Los procesos que forman parte del sistema de DB inluyen: Procesos servidor: son procesos que reciben consultas del usuario, las ejecutan, y devuelven los resultados. Proceso gestor de bloqueos: se encarga de la concesin de bloqueos, liberacin de bloqueos y deteccin de interbloqueos. Proceso escritor de BD: hay uno o ms procesos que vuelcan al disco los bloques de memoria intermedia modificados de forma continua. Proceso escritor del registro: genera entradas del registro en el almacenamiento estable a partir de la memoria intermedia del registro. Proceso punto de revisin: este proceso realiza peridicamente puntos de revisin. Proceso monitor de proceso: observa a otros procesos y, si cualquiera de ellos falla, realiza acciones de recuperacin para el proceso, tales como cancelar cualquier transaccin que estuviera ejecutando el proceso fallido, y reinicia el proceso.
DASGBD Curso 2007/2008 1.20
Tipos de Servidores de BD
Todos los procesos de la base de datos pueden acceder a los datos de la memoria compartida, que contiene: Grupo de memorias intermedias Tabla de bloqueos Memoria intermedia del registro, que contiene las entradas del registro que esperan a ser volcadas en el almacenamiento estable Planes de consulta en cach, que se pueden reutilizar si se enva de nuevo la misma consulta
1.21
En una BDD cada servidor tiene su propia capacidad para gestionar aplicaciones de forma independiente. La independencia de cada servidor es un objetivo importante en los SGBDD.
Una BDD no debe implicar maximizar la interaccin y la necesidad de transmitir datos por la red de comunicaciones. Al contrario, la planificacin de la distribucin y localizacin de los datos debe hacerse buscando que el mayor nmero de aplicaciones puedan operar de forma independiente en un nico servidor.
1.22
La Fragmentacin de Datos es una tcnica para organizacin de datos que permite la distribucin y el procesamiento eficientes.
Slo es aplicable si la distribucin de los datos sigue un patrn bien conocido, que es tomado en cuenta durante el diseo de la BDD. Dada una coleccin de elementos de datos R, su fragmentacin consiste en establecer fragmentos Ri aplicando a R diversas operaciones algebraicas. Hay dos tipos de fragmentacin:
Horizontal: cada fragmento Ri incluye un subconjunto de los elementos de datos de R. Vertical: cada fragmento incluye todos los elementos de R pero slo algunas de sus propiedades (atributos). Completa: cada elemento de datos de R debe estar presente en uno de sus fragmentos Ri. Restaurable: el contenido de R puede ser regenerado a partir de sus fragmentos.
1.23
Es correcta si es
Cada fragmento Ri corresponde a un archivo fsico diferente que est localizado en un servidor diferente =>
La coleccin de elementos de datos R slo existe virtualmente pero no fsicamente. Los fragmentos existen fsicamente. El esquema de localizacin (allocation schema) describe los vnculos (mapping) entre las colecciones completas o los fragmentos y los servidores, es decir, entre la descripcin lgica de los datos y su descripcin fsica en archivos de servidores. Esta vinculacin puede ser:
Redundante, si al menos un fragmento o coleccin est localizado en ms de un servidor. No Redundante, en caso contrario.
1.24
Las aplicaciones deben utilizarla como si fuera no distribuida, sin preocuparse por la fragmentacin o localizacin de los datos.
De fragmentacin: el programador no necesita saber si la BD es distribuida o est fragmentada. De localizacin: el programador debe conocer los fragmentos que existen pero no necesita indicar su localizacin. De lenguaje: el programador debe conocer los fragmentos y sus localizaciones, pero interacciona con todos los servidores con el mismo lenguaje. Ausencia de transparencia: cada servidor utiliza un lenguaje o dialecto particular.
1.25
Interoperabilidad
Es la principal dificultad en el desarrollo de aplicaciones heterogneas para BDD, es decir, cuando los servidores utilizan ms de un SGBD diferente.
Aplicacin
Gestor de Drivers ODBC
Significa capacidad para la interaccin entre diferentes SGBDs. Requiere la disponibilidad de funciones para la adaptacin y conversin, de forma que sea posible el intercambio de informacin entre los diversos SGBDs. Es posible gracias a la existencia de estndares adecuados (tema 2):
ODBC JDBC
Fuente de datos
Arquitectura de ODBC
1.26
Se plantea al intentar utilizar sistemas de BD pre-existentes. Es la capacidad de las aplicaciones de un determinado sistema de utilizar los servicios provistos por las aplicaciones de otro sistema, incluso de organizaciones diferentes. La cooperacin es necesaria en BD porque:
La integracin de BD es bastante difcil. Los objetivos de integracin o estandarizacin ambiciosos siempre han fracasado. El modelo ideal de una BD altamente integrada que puede ser consultada de forma transparente y eficiente es imposible de desarrollar y gestionar.
1.27
remotas, por medio de algn acuerdo de cooperacin, datos distribuidos, heterogneos y autnomos.
Caractersticas:
Centrada en los procesos: los sistemas ofrecen servicios a los otros sistemas por medio de intercambio de mensajes, informacin o documentos, o el disparo de actividades, sin hacer visibles sus datos a los dems sistemas. Centrada en los datos: hacer accesibles desde localizaciones
Nivel de transparencia, grado de enmascaramiento de la distribucin y heterogenidad de los datos) Complejidad de las operaciones distribuidas, grado de coordinacin necesario para realizar operaciones entre BDs coordinadas. Nivel de actualizacin, indica si los datos accesibles estn actualizados o no (rplicas que se actualizan peridicamente).
Segn se consideren estos tres criterios, existen tres arquitecturas para la cooperacin de BD.
DASGBD Curso 2007/2008 1.28
Cooperacin Multi-BD
Cliente
Cliente
Gestor Global
Cliente
Mediador
Mediador
Mediador
Cliente
Gestor Local
Gestor Local
Gestor Local
BD
BD
BD
1.29
Gestor del DW
Integrador
Mediador Gestor Local Mediador Gestor Local Mediador Gestor Local
Cliente
Cliente
BD
DASGBD Curso 2007/2008
BD
BD
1.30
Gestor del DW
Gestor Local
Mediador
Cliente
BD
Mediador Gestor Local
Integrador
Mediador Gestor Local Mediador Gestor Local
Gestor Local
Cliente
BD BD
DASGBD Curso 2007/2008
BD
BD
1.31
BD Replicadas
Es provisto por productos llamados replicadores (replicators), cuya funcin principal es mantener la consistencia entre las copias. Funcionan de forma transparente a las aplicaciones que se ejecutan en el servidor SGBD. En general, existe una copia principal y varias copias secundarias, a las cuales se propagan las modificaciones de forma asncrona. Existen dos tipos de propagacin de modificaciones:
Incremental: la informacin que se enva desde la copia principal a las secundarias son las variaciones en los datos. Total: se enva toda la copia principal completa.
Principal Utilidad: hacer que el sistema sea menos sensible a los fallos, ya que si la copia principal no estuviera disponible se puede seguir usando alguna de las copias secundarias.
1.32
BD Replicadas
Cliente
Cliente
Cliente
Cliente
Cliente
servidor
servidor
F1
Copia (F2)
F2
Copia (F1)
1.33
Los principales requisitos para la integracin de las tecnologas Web y SGBD, son:
Poder acceder a datos corporativos de forma segura. Disponer de conectividad independiente de los datos y el vendedor, para dar libertad a la hora de elegir SGBD. Poder interactuar con la BD de forma independiente a cualquier navegador o servidor web. Una arquitectura abierta que permita la interoperabilidad con diferentes sistemas y tecnologas: servidores web, DCOM/COM, CORBA, Java/RMI, etc. Conseguir la escalabilidad, crecimiento y cambios a costes aceptables. Soportar transacciones que abarcan mltiples peticiones HTTP. Soportar autenticacin basada en sesiones y usuarios. Rendimiento aceptable.
1.34
TAREAS
Interfaz de usuario
Lgica de negocio
Dominio
Servidor de BD
Persistencia
SGBD
1.35
Ventajas:
Inconvenientes:
Fiabilidad
Internet
Seguridad
Internet
Independencia de plataforma
HTML, Navegador web
Escalabilidad
Sobrecarga de servidores
Estandarizacin
HTML y otros
Inestabilidad
Juventud
Soporte inter-plataforma.
Navegador web
Ancho de banda
Internet
Rendimiento
Clientes interpretados
1.36
Debidas al uso de SGBDs: muchas de las ventajas de ustilizar SGBD vs. Sistemas de ficheros son aplicables para la integracin the Web y el SGBD. Por ejemplo, el problema de sincronizacin de informacin en laBD y los archivos HTML desaparece, ya que las pginas HTML se generan dinmicamente desde la BD. Simplicidad: en su forma original el lenguaje HTML era fcil para desarrollos y usuarios finales. Independencia de plataforma: Un razn importante de crear una versin Web de una aplicacin de BD, es que los clientes Web (navegadores) son en su mayora independientes de la plataforma. Interfaz Grfico de Usuario (GUI): Los navegadores Web proveen interfaces comunes, fciles de usar, que pueden servir para acceder a a diferentes cosas, como la BD. Tener una interfaz comn reduce el tiempo y coste de entrenamiento. Estandarizacin: HTML es el estndar de facto para todos los navegadores Web. Utilizando HTML, los desarrolladores tienen que aprender un lenguaje fcil, y los usuarios finales utilizan una Interfaz Grfica de Usuario muy sencilla.
1.37
Soporte inter-plataforma: Los navegadores Web estn disponibles para cualquier tipo de plataforma. Este tipo de soporte inter-plataforma permite a los usuarios en diferentes tipos de plataformas acceder a las BD desde cualquier lugar en el mundo. De esta manera, la informacin puede estar diseminada con mnimo esfuerzo y tiempo, y sin tener que resolver los problemas de incompatibilidad de diferentes hardware, S.O. y software. Transparencia del acceso a red: el principal beneficio de la Web es que el acceso a la red es esencialmente transparente al usuario. Desarrollo escalable: al utilizar una arquitectura de tres capas, se almacena la aplicacin en un servidor diferente al del cliente, la Web elimina el tiempo y coste asociado al desarrollo de la aplicacin. Permite el manejo de actualizaciones y la gestin de trabajar con mltiples plataformas a lo largo de diferentes oficina. Innovacin: La Web permite a las organizaciones proveer nuevos servicios y as llegar a nuevos clientes a travs de aplicaciones globalmente accesibles.
1.38
Seguridad: la seguridad es un aspecto fundamental para una organizacin que permite el acceso a sus datos a travs de Internet. La autenticacin de usuarios y la transmisin de datos segura so aspectos crticos debido a la gran cantidad de usuarios annimos. Coste: el coste de sitios Web comerciales suele ser elevado. Escalabilidad: Sobrecarga de servidores Funcionalidad limitada de HTML: Aunque HTML es una interfaz comn y fcil de usar, su simplicidad hace que algunas aplicaciones de Bd altamente interactivas, no sena fcilmente convertidas en aplicaciones Web. Para agregar funcionalidad extra existen diferentes lenguajes como JavaScript, VBScript, etc .
1.39
1.40
Integracin Web-SGBD
CGI (Common Gateway Interface): especificacin para transferir informacin entre un servidor web y un programa del mismo equipo. API (Application Programming Interface): son interfaces de programacin que permiten aadir nueva funcionalidad a los servidores web superando las limitaciones de CGI.
NSAPI (Netscape), ISAPI (Microsoft),
1.41
Integracin Web-SGBD
Internet
HTTP
Servidor
Pasarela CGI/API
Documento HTML
BD
1.42
Integracin Web-SGBD
Otra pieza importante es Java Server Pages (JSP): lenguaje de script para servidores web basados en Java que permite combinar HTML normal (esttico) con HTML dinmico (pginas generadas automticamente a partir de cdigo HTML y cdigo Java).
DASGBD Curso 2007/2008 1.43
Integracin Web-SGBD
Arquitectura J2EE
Presentacin
Cliente HTML
HTTP
Servidor Web
HTML/XML Servlets Java Server Pages (JSPs) RMI/IIOP RMI/IIOP CORBA/IIOP
Servidor de Aplicaciones
Negocio
Conector RMI/IIOP
EJB de Sesin
EJB de Entidad
JDBC SQLJ JDBC SQLJ
Datos
DASGBD Curso 2007/2008
Sistema existente
Base de Datos
1.44
Integracin Web-SGBD
ADO .NET: clases para acceso a datos almacenados en BD relacionales (SQL), en XML y en otros formatos.
Propone una arquitectura de aplicaciones web con n capas y basada en el nuevo paradigma Service-Oriented Computing.
DASGBD Curso 2007/2008 1.45
Fuentes de datos
Servicios
Arquitecturas Paralelas
El paralelismo en BD fue desarrollado en los aos 90 gracias a la difusin de las arquitecturas estndares de multiprocesadores hardware, despus del fracaso en los aos 80 de las arquitecturas hardware especiales para BD (mquinas de BD). Las soluciones tcnicas son diferentes segn se disponga de memoria compartida o no. El xito del paralelismo en BD es debido a que las operaciones de gestin de datos son de naturaleza bastante repetitiva, por lo que pueden ser llevadas a cabo en paralelo con gran eficiencia. Ejemplo:
Una bsqueda completa (recorrido) en una BD muy grande no distribuida consume un tiempo t. La misma bsqueda en una BDD con n sitios funcionando en paralelo (n discos gestionados por n procesadores) consumir aproximadamente un tiempo t/n.
El paralelismo suele estar asociado con la fragmentacin de datos: los fragmentos se distribuyen entre varios procesadores y se localizan en unidades de disco diferentes.
1.47
Arquitecturas Paralelas
Clases de Paralelismo en BD
La carga sobre el SGBD est caracterizada por transacciones sencillas y frecuentes (hasta miles de transacciones por segundo). El paralelismo se introduce multiplicando el nmero de servidores y localizando un nmero ptimo de peticiones en cada servidor. Muchas veces existe un proceso despachador que redirige las consultas a los servidores. Es utilizado por los sistemas OLTP. La carga del SGBD viene dada por unas pocas transacciones muy complejas, que estn formadas por varias sub-consultas parciales que se ejecutan en paralelo. En general, se utiliza el sistema multiprocesador completo para cada consulta. Es utilizado por los sistemas OLAP.
1.48
Arquitecturas Paralelas
Clases de Arquitecturas
P P P P
Memoria compartida
M M M M
P P P P
Disco compartido
M M
P P P M P P P P
P P P P
M M M M
P P P P
Sin compartimiento
Jerrquica o Hbrida
1.49