Arquitectura de Sistemas de Bases de Datos
La arquitectura de un sistema de base de datos está influenciada en gran medida por el sistema informático subyacente en el que se ejecuta el sistema de base de datos. En la arquitectura de un sistema de base de datos se reflejan aspectos como la conexión en red, el paralelismo y la distribución:
- La conexión 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 división de trabajo ha conducido al desarrollo de sistemas de bases de datos cliente-servidor.
- La distribución de datos a través de las distintas sedes o departamentos de una organización permite que estos datos residan donde han sido generados o donde son más 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 algún sitio se vea afectado por algún desastre natural, como una inundación, un incendio o un terremoto.
- El procesamiento paralelo dentro de una computadora permite acelerar las actividades del sistema de base de datos, proporcionando a las transacciones unas respuestas más rápidas, así como la capacidad de ejecutar más transacciones por segundo. Las consultas pueden procesarse de manera que se explote el paralelismo ofrecido por el sistema informático subyacente. La necesidad del procesamiento paralelo de consultas ha conducido al desarrollo de los sistemas de bases de datos paralelos.
ARQUITECTURA CENTRALIZADA
La arquitectura centralizada es la más clásica. En ella, el SGBD está implantado en una sola plataforma u ordenador desde donde se gestiona directamente, de modo centralizado, la totalidad de los recursos. Es la arquitectura de los centros de proceso de datos tradicionales. Se basa en tecnologías sencillas, muy experimentadas y de gran robustez.
Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.
ARQUITECTURA
DE BASES DE DATOS CLIENTE/SERVIDOR
La
computación cliente/servidor es la extensión lógica de la programación modular.
El supuesto principal de la programación modular es la división de un programa
grande en pequeños programas (llamados módulos), siendo más fáciles el
desarrollo y la mantenibilidad (divide y vencerás).
Según esta
definición, los sistemas cliente/servidor no están limitados a aplicaciones de
bases de datos. Cualquier aplicación que tenga una interfaz de usuario (front-end,
sección frontal o parte cliente) que se ejecute localmente en el cliente y un
proceso que se ejecute en el servidor (back-end, sección posterior, o sistema
subyacente) está en forma de computación cliente/servidor.
Conceptualmente,
las plataformas cliente/servidor son parte del concepto de sistemas abiertos,
en el cual todo tipo de computadores, sistemas operativos, protocolos de redes
y otros, software y hardware, pueden interconectarse y trabajar coordinadamente
para lograr los objetivos del usuario.
CARACTERÍSTICAS
DE UN SISTEMA CLIENTE/SERVIDOR.
Un sistema
cliente/servidor es aquel en el que uno o más clientes y uno o más servidores, conjuntamente
con un sistema operativo subyacente y un sistema de comunicación entre
procesos, forma un sistema compuesto que permite cómputo distribuido, análisis,
y presentación de los datos. Si existen múltiples servidores de procesamiento
de base de datos, cada uno de ellos deberá procesar una base de datos distinta,
para que el sistema sea considerado un sistema cliente/servidor.
Cuando dos
servidores procesan la misma base de datos, el sistema ya no se llama un
sistema cliente/servidor, sino que se trata de un sistema de base de datos
distribuido.
Los
clientes, a través de la red, pueden realizar consultas al servidor. El
servidor tiene el control sobre los datos; sin embargo los clientes pueden
tener datos privados que residen en sus computadoras. Las principales
características de la arquitectura cliente/servidor son:
- El
servidor presenta a todos sus clientes una interfaz única y bien definida.
- El
cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
- El
cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico
en el que se encuentra, ni de su sistema operativo.
- Los
cambios en el servidor implican pocos o ningún cambio en el cliente.
ARQUITECTURA
DE BASES DE DATOS DISTRIBUIDAS
Un sistema
de computación distribuida consiste en un conjunto de computadores (que no necesariamente
tienen que ser homogéneos), que están interconectados entre sí formando una
red, y que cooperan para realizar una determinada tarea.
Un sistema
de computación distribuida parte un problema grande en pequeñas piezas, y
soluciona cada una de ellas eficientemente de una manera coordinada.
Podemos
definir una base de datos distribuida (BDD o DDB ‘Distributed Database System)
como aquella cuyos datos están repartidos entre más de una máquina, y un
sistema de gestión de bases de datos distribuidas (SGBDD o DDBMS ‘Distributed
Database Management System’) como el software que gestiona una base de datos
distribuida haciendo que la distribución de los datos sea transparente al
usuario, es decir, los usuarios actúan como si todo estuviese junto en una sola
base de datos.
En la arquitectura distribuida el SGBD y la BD
no están asociados a un determinado ordenador, sino a una red cuyos nodos se
reparten las funciones. Una base de datos distribuida es vista por las
aplicaciones igual que si fuera centralizada. Es el SGBDD el que se encarga de
preservar la integridad y coherencia de la BD.
Se suele
distinguir entre sistemas homogéneos y heterogéneos. Un sistema es homogéneo si
el SGBD usado en todas las máquinas es el mismo. Si existe más de un SGBD
distinto el sistema se denomina heterogéneo.
Un SGBD
que soporte una arquitectura de base de datos distribuida es mucho más complejo
que uno para base de datos centralizada y el número de SGBDD disponibles en el
mercado es mucho menor. Existen algunos SGBDs que ofrecen la posibilidad de
implementar una BD distribuida sólo para sistemas homogéneos. Es una tecnología
que no está tan probada como la centralizada.
Los
usuarios acceden a la base de datos distribuida a través de aplicaciones. Estas
aplicaciones se pueden clasificar en aquellas que no requieren datos de otros
computadores (aplicaciones locales) y aquellos que requieren datos de otros
computadores (aplicaciones globales).
Un SGBDD
tiene las siguientes características:
- Una
colección de datos compartidos y relacionados lógicamente.
- Los
datos están divididos en fragmentos.
- Los
fragmentos se pueden duplicar.
- Los
fragmentos se colocan en varios emplazamientos (computadores).
- Dichos
emplazamientos están conectados por una red.
- Los
datos de cada emplazamiento están bajo el control de un SGBD.
- El SGBD
en cada emplazamiento puede manejar aplicaciones locales autónomamente.
- Cada
SGBD participa en al menos una aplicación global.
No es
necesario que todos los emplazamientos en el sistema tengan su propia base de
datos local,
como se
muestra en la siguiente topología de un SGBDD: