La arquitectura de un sistema de bases de datos est
influida en gran medida por el sistema informtico
subyacente en el que se ejecuta, en concreto por aspectos de la arquitectura de la computadora como la conexin en red, el paralelismo y la distribucin: La conexin en red de varias computadoras permite que algunas tareas se ejecuten en un sistema servidor y que otras se ejecuten en los sistemas clientes. Esta divisin de trabajo ha conducido al desarrollo de sistemas de bases de datos cliente-servidor.
Arquitectura Cliente servidor
El procesamiento paralelo dentro de una computadora permite acelerar las actividades del sistema de base de datos, proporcionando a las transacciones unas respuestas ms rpidas, as como la capacidad de ejecutar ms transacciones por segundo. Las consultas pueden procesarse de manera que se explote el paralelismo ofrecido por el sistema informtico subyacente. La necesidad del procesamiento paralelo de consultas ha conducido al desarrollo de los sistemas de bases de datos paralelos.
Arquitectura paralela de BD
La distribucin de datos a travs de las distintas sedes de una organizacin permite que estos datos residan donde han sido generados o donde son ms necesarios, pero continuar siendo accesibles desde otros lugares o departamentos diferentes. El hecho de guardar varias copias de la base de datos en diferentes sitios permite que puedan continuar las operaciones sobre la base de datos aunque algn sitio se vea afectado por algn desastre natural como una inundacin, un incendio o un terremoto. Se han desarrollado los sistemas distribuidos de bases de datos para manejar datos distribuidos geogrfica o administrativamente a lo largo de mltiples sistemas de bases de datos.
Arquitectura distribuida de BD
Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un nico sistema infor- mtico sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutndose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutndose en grandes sistemas. Por otro lado, los sistemas cliente -servidor tienen su funcionalidad dividida entre el sistema servidor y mltiples sistemas clientes.
Arquitecturas centralizadas y cliente-servidor
Una computadora moderna de propsito general consiste en una mas unidades centrales procesamiento y un nmero determinado de controladores para los dispositivos que se encuentran conectados a travs de un bus comn, el cual proporciona acceso a la memoria compartida. Las CPU (unidades centrales de procesamiento) poseen memorias cach locales donde se almacenan copias de ciertas partes de la memoria para acelerar el acceso a los datos. Cada controlador se encarga de un tipo especfico de dispositivos (por ejemplo, una unidad de disco, tarjeta de sonido o un monitor). Las CPU y los controladores de dispositivos pueden ejecutarse concurrentemente compitiendo as por el acceso a la memoria. La memoria cach reduce la disputa el acceso a la memoria. Sistemas centralizados
Se distinguen dos formas de utilizar las computadoras: como sistemas mono usuario o multiusuario. En la primera categora se encuentran las computadoras personales y las estaciones de trabajo. Un tema mono usuario tpico es una pc utilizada por una nica persona que dispone de una sola CPU, de uno o dos discos fijos y que trabaja con un sistema operativo que slo permite un nico usuario. Por el contrario, un sistema multiusuario tpico tiene ms discos y ms memoria, puede disponer de varias CPU y trabaja con un sistema operativo multiusuario. Se encarga de dar servicio a un gran nmero de usuarios que estn conectados al sistema a travs de terminales.
Sistemas centralizados
Aunque hoy en da las computadoras de propsito general disponen de varios procesadores, utilizan paralelismo de grano grueso, disponiendo de unos pocos procesadores (normalmente dos o cuatro) comparten la misma memoria principal. Las bases de datos que se ejecutan en tales mquinas habitualmente no intentan dividir una consulta simple entre los distintos procesadores, sino que ejecutan consulta en un nico procesador posibilitando la concurrencia de varias consultas. As, estos sistemas soportan una mayor productividad, es decir, permiten ejecutar un mayor nmero de transacciones por segundo, a pesar de que cada transaccin individualmente no se ejecute ms rpido. Por el contrario, las mquinas paralelas de grano fino disponen de un gran nmero de procesadores y los sistemas de bases de datos que se ejecutan sobre ellas intentan hacer paralelas las tareas simples (consultas, por ejemplo) que solicitan los usuarios. Sistemas centralizados
Sistemas Centralizados
Como las computadoras personales son cada vez ms rpidas, ms potentes y ms baratas, los sistemas se han ido distanciando de la arquitectura centralizada. Los terminales conectados a un sistema central han sido suplantados por computadoras personales. De igual forma, la interfaz de usuario, que sola estar gestionada directamente por el sistema central, est pasando a ser gestionada, cada vez ms, por las computadoras personales. Como consecuencia, los sistemas centralizados actan hoy como sistemas servidores que satisfacen las peticiones generadas por los sistemas clientes. Sistemas cliente servidor
Sistemas cliente servidor
La funcionalidad proporcionada por los sistemas de bases de datos se puede dividir a grandes rasgos en dos partes: la fachada y el sistema subyacente. El sistema subyacente gestiona el acceso a las estructuras, la evaluacin y optimizacin de consultas, el control de concurrencia y la recuperacin. La fachada de un sistema de base de datos est formado por herramientas como la interfaz de usuario con SQL, interfaces de formularios, diseadores de informes y herramientas para la recopilacin y anlisis de datos. La interfaz entre la fachada y el sistema subyacente puede ser SQL o una aplicacin. Sistemas cliente servidor
Las normas como ODBC y JDBC, se desarrollaron para hacer de interfaz entre clientes y servidores. Cualquier cliente que utilice interfaces ODBC o JDBC puede conectarse a cualquier servidor que proporcione esta interfaz. Ciertas aplicaciones como las hojas de clculo y los paquetes de anlisis estadstico utilizan la interfaz cliente-servidor directamente para acceder a los datos del servidor subyacente. De hecho, proporcionan interfaces visibles especiales para diferentes tareas.
Interfaces
Interfaces
Los sistemas que trabajan con una gran cantidad de usuarios adoptan una arquitectura de tres capas, donde la fachada es el explorador Web que se comunica con un servidor de aplicaciones. El servidor de aplicaciones acta como cliente del servidor de bases de datos. Cliente servidor en tres capas
Cliente servidor en tres capas
Los servidores pueden dividirse en servidores de transacciones y servidores de datos. Los sistemas servidores de transacciones, tambin llamados sistemas servidores de consultas proporcionan una interfaz a travs de la cual los clientes pueden enviar peticiones para realizar una accin que el servidor ejecutar y cuyos resultados se devolvern al cliente. Normalmente las mquinas cliente envan las transacciones a los sistemas servidores, lugar en el que transacciones se ejecutan, y los resultados se devuelven a los clientes que son los encargados visualizar los datos. Las peticiones se pueden especificar utilizando SQL o mediante la interfaz de una aplicacin especializada.
Arquitecturas de sistemas servidores
Los sistemas servidores de datos permiten a los clientes interaccionar con los servidores realizando peticiones de lectura o modificacin de datos en unidades tales como archivos o pginas. Por ejemplo, los servidores de archivos proporcionan una interfaz de sistema de archivos a travs de la cual los clientes pueden crear, modificar, leer y borrar archivos. Los servidores de datos de los sistemas de bases de datos ofrecen muchas ms funcionalidades; soportan unidades de datos de menor tamao que los archivos, como pginas, tuplas u objetos. Proporcionan facilidades de indexacin de los datos as como facilidades de transaccin de modo que los datos nunca sr quedan en un estado inconsistente si falla una mquina cliente o un proceso. Arquitecturas de sistemas servidores