Anda di halaman 1dari 8

Arquitectura de los Sistemas de Bases de Datos

Arquitectura centralizada

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.

Una computadora moderna de propósito general consiste en una o unas


pocas CPU’s y un número determinado de controladores para los dispositivos que
se encuentren conectados a través de un bus común, el cual proporciona acceso a
la memoria compartida. Las CPU’s poseen memorias caché locales donde se
almacenan copias de ciertas partes de la memoria para acelerar el acceso a los
datos. Cada controlador de dispositivo se encarga de un tipo específico de
dispositivos (por ejemplo, una unidad de disco, una tarjeta de sonido o un
monitor). La CPU y los controladores de dispositivo pueden ejecutarse
concurrentemente, compitiendo así por el acceso a la memoria. La memoria caché
reduce la disputa por el acceso a la memoria, ya que la CPU necesita acceder a la
memoria compartida un número de veces menor.
Se distinguen dos formas de utilizar las computadoras: como sistemas
monousuario o como sistemas multiusuario. En la primera categoría están las
computadoras personales y las estaciones de trabajo. Un sistema monousuario
típico es una unidad de sobremesa 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 sólo permite un único usuario. Por el contrario, un sistema multiusuario típico
tiene más discos y más memoria, puede disponer de varias CPU y trabaja con un
sistema operativo multiusuario. Se encarga de dar servicio a un gran número de
usuarios que están conectados al sistema a través de terminales. Estos sistemas se
denominan con frecuencia sistemas servidores.
Normalmente, los sistemas de bases de datos diseñados para funcionar
sobre sistemas monousuario, como las computadoras personales, no suelen
proporcionar muchas de las facilidades que ofrecen los sistemas multiusuario. En
particular, no tienen control de concurrencia, que no es necesario cuando
solamente un usuario puede generar modificaciones. Las facilidades de
recuperación en estos sistemas, o no existen o son primitivas; por ejemplo,
realizar una copia de seguridad de la base de datos antes de cualquier
modificación. La mayoría de estos sistemas no admiten SQL y proporcionan un
lenguaje de consulta muy simple, que en algunos casos es una variante de QBE
(Query By Example).
Aunque hoy en día las computadoras de propósito general tienen varios
procesadores, utilizan paralelismo de grano grueso, disponiendo de unos pocos
procesadores (normalmente dos o cuatro) que comparten la misma memoria
principal. Las bases de datos que se ejecutan en tales máquinas habitualmente no
intentan dividir una consulta simple entre los distintos procesadores, sino que
ejecutan cada consulta en un único procesador, posibilitando la concurrencia de
varias consultas. Así, estos sistemas soportan una mayor productividad, es decir,
permiten ejecutar un mayor número de transacciones por segundo, a pesar de que
cada transacción individualmente no se ejecuta más rápido.
Las bases de datos diseñadas para las máquinas monoprocesador ya
disponen de multitarea, permitiendo que varios procesos se ejecuten a la vez en el
mismo procesador, usando tiempo compartido, mientras que de cara al usuario
parece que los procesos se están ejecutando en paralelo. De esta manera, desde un
punto de vista lógico, las máquinas paralelas de grano grueso parecen ser
idénticas a las máquinas monoprocesador, y pueden adaptarse fácilmente los
sistemas de bases de datos diseñados para máquinas de tiempo compartido para
que puedan ejecutarse sobre máquinas paralelas de grano grueso.
Por el contrario, las máquinas paralelas de grano fino tienen un gran
número de procesadores y los sistemas de bases de datos que se ejecutan sobre
ellas intentan paralelizar las tareas simples (consultas, por ejemplo) que solicitan
los usuarios.

Arquitectura distribuida

Una base de datos distribuida (BDD) es un conjunto de múltiples bases


de datos lógicamente relacionadas las cuales se encuentran distribuidas entre
diferentes sitios interconectados por una red de comunicaciones (ver Figura 1.2).
Figura 1.2. Motivación de los sistemas de bases de datos distribuidos.

Un sistema de bases de datos distribuida (SBDD) es un sistema en el


cual múltiples sitios de bases de datos están ligados por un sistema de
comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los
datos en cualquier parte de la red exactamente como si los datos estuvieran
almacenados en su sitio propio.

Un sistema de manejo de bases de datos distribuidas (SMBDD) es


aquel que se encarga del manejo de la BDD y proporciona un mecanismo de
acceso que hace que la distribución sea transparente a los usuarios. El término
transparente significa que la aplicación trabajaría, desde un punto de vista lógico,
como si un solo SMBD ejecutado en una sola máquina, administrara esos datos.

Un sistema de base de datos distribuida (SBDD) es entonces el resultado


de la integración de una base de datos distribuida con un sistema para su manejo.

Dada la definición anterior, es claro que algunos sistemas no se pueden


considerar como SBDD. Por ejemplo, un sistema de tiempo compartido no
incluye necesariamente un sistema de manejo de bases de datos y, en caso de que
lo haga, éste es controlado y administrado por una sola computadora.

Un sistema de multiprocesamiento puede administrar una base de datos


pero lo hace usualmente a través de un solo sistema de manejo de base de datos;
los procesadores se utilizan para distribuir la carga de trabajo del sistema
completo o incluso del propio SMBD pero actuando sobre una sola base de datos.
Finalmente, una base de datos la cual reside en un solo sitio de una red de
computadoras y que es accesada por todos los nodos de la red no es una base de
datos distribuida (Figura 1.3). Este caso se trata de una base de datos cuyo control
y administración esta centralizada en un solo nodo pero se permite el acceso a ella
a través de la red de computadoras.
Figura 1.3. Un sistema centralizado sobre una red

El medio ambiente típico de un SMBDD consiste de un conjunto de sitios


o nodos los cuales tiene un sistema de procesamiento de datos completo que
incluye una base de datos local, un sistema de manejo de bases de datos y
facilidades de comunicaciones. Si los diferentes sitios pueden estar
geográficamente dispersos, entonces, ellos están interconectados por una red de
tipo WAN. Por otro lado, si los sitios están localizados en diferentes edificios o
departamentos de una misma organización pero geográficamente en la misma
ubicación, entonces, están conectados por una red local (LAN) (Figura 1.4).

Figura 1.4. Un medio ambiente distribuido


para bases de datos.

Arquitectura relacional

Una base de datos relacional es una base de datos en donde todos los datos
visibles al usuario están organizados estrictamente como tablas de valores, y en
donde todas las operaciones de la base de datos operan sobre estas tablas.

Estas bases de datos son percibidas por los usuarios como una colección de
relaciones normalizadas de diversos grados que varían con el tiempo.

El modelo relacional representa un sistema de bases de datos en un nivel


de abstracción un tanto alejado de los detalles de la máquina subyacente, de la
misma manera como, por ejemplo, un lenguaje del tipo de PL/1 representa un
sistema de programación con un nivel de abstracción un tanto alejado de los
detalles de la máquina subyacente. De hecho, el modelo relacional puede
considerarse como un lenguaje de programación mas bien abstracto, orientado de
manera específica hacia las aplicaciones de bases de datos.
[Date, 1993]

En términos tradicionales una relación se asemeja a un archivo, una tupla a


un registro, y un atributo a un campo. Pero estas correspondencias son
aproximadas, en el mejor de los casos. Una relación no debe considerarse como
``solo un archivo'', sino mas bien como un archivo disciplinado, siendo el
resultado de esta disciplina una simplificación considerable de las estructuras de
datos con las cuales debe interactuar el usuario, lo cual a su vez simplifica los
operadores requeridos para manejar esas estructuras.

Características principales de los ``archivos'' relacionales:

• Cada ``archivo'' contiene solo un tipo de registros


• Los campos no tienen un orden específico, de izquierda a derecha
• Los registros no tienen un orden específico, de arriba hacia abajo
• Cada campo tiene un solo valor
• Los registros poseen un campo identificador único (o combinación de
campos) llamado clave primaria

Así, todos los datos en una base de datos relacional se representan de una y
solo una manera, a saber, por su valor explícito (esta se denomina en ocasiones
``principio básico del modelo relacional''). En particular, las conexiones lógicas
dentro de una relación y entre las relaciones se representan mediante esos valores;
no existen ``ligas'' o apuntadores visibles para el usuario, ni ordenamientos
visibles para el usuario, ni grupos repetitivos visibles para el usuario, etc.
Actualmente algunos de los manejadores de bases de datos, utilizan un
sistema de búsqueda con algoritmos de árboles b. Pero las búsquedas que se
pueden realizar con estos algoritmos son sólo para memoria principal.
Los algoritmos implementados para realizar búsquedas con listas salteadas
o por bloques (skip lists) son eficientes para realizar búsquedas en memoria
secundaria. Como tienen varios niveles en cada nodo de la lista, nos permite dar
saltos más largos al realizar las búsquedas, esto provoca que las sean más rápidas.

2. TRANSACCIONES
Una transacción es una unidad lógica de procesamiento de
la base de datos que incluye una o más operaciones de
acceso a la base de datos, que pueden ser de inserción
eliminación,modificación o recuperación.

Los sistemas que tratan el problema de control de concurrencia permiten que sus
usuarios asuman que cada una de sus aplicaciones se ejecutan atómicamente,
como si no existieran otras aplicaciones ejecutándose concurrentemente.
Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce
como una transacción .
Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten
atómicamente controlando la intercalación de transacciones concurrentes, para dar
la ilusión de que las transacciones se ejecutan serialmente, una después de la otra,
sin ninguna intercalación. Las ejecuciones intercaladas cuyos efectos son los
mismos que las ejecuciones seriales son denominadas serializables y son
correctos ya que soportan la ilusión de la atomicidad de las transacciones.
El concepto principal es el de transacción. Informalmente, una transacción es la
ejecución de ciertas instrucciones que accesan a una base de datos compartida. El
objetivo del control de concurrencia y recuperación es asegurar que dichas
transacciones se ejecuten atómicamente, es decir:
Cada transacción accede a información compartida sin interferir con otras
transacciones, y si una transacción termina normalmente, todos sus efectos son
permanentes, en caso contrario no tiene afecto alguno.
Una base de datos está en un estado consistente si obedece todas las restricciones
de integridad (significa que cuando un registroen una tabla haga referencia a un
registro en otra tabla, el registro correspondientes debe existir) definidas sobre
ella.
Los cambios de estado ocurren debido a actualizaciones, inserciones y
supresiones de información. Por supuesto, se quiere asegurar que la base de datos
nunca entre en un estado de inconsistencia.
Sin embargo, durante la ejecución de una transacción, la base de datos puede estar
temporalmente en un estado inconsistente.
El punto importante aquí es asegurar que la base de datos regresa a un estado
consistente al fin de la ejecución de una transacción.

3. PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN:


1.
2. Atomicidad Se refiere al hecho de que una transacción se trata como una
unidad de operación.
3. Por lo tanto, o todas las acciones de la transacción se realizan o ninguna de
ellas se lleva a cabo. La atomicidad requiere que si una transacción se
interrumpe por una falla, sus resultados parciales sean anulados.
4. Consistencia La consistencia de una transacción es simplemente su
correctitud. En otras palabras, una transacción es un programa correcto que
lleva a la base de datos de un estado consistente a otro con la misma
característica. Debido a esto, las transacciones no violan las restricciones de
integridad de una base de datos.
5. Aislamiento Una transacción en ejecución no puede revelar sus resultados
a otras transacciones concurrentes antes de finalizar.
6. Más aún, si varias transacciones se ejecutan concurrentemente, los
resultados deben ser los mismos que si ellas se hubieran ejecutado de manera
secuencial.
7. Permanencia Es la propiedad de las transacciones que asegura que una vez
que una transacción finaliza exitosamente, sus resultados son permanentes y
no pueden ser borrados de la base de datos por alguna falla posterior.
8. Por lo tanto, los sistemas manejadores de base de datos aseguran que los
resultados de una transacción sobrevivirán a fallas del sistema. Esta
propiedad motiva el aspecto de recuperación de base de datos, el cual trata
sobre cómo recuperar la base de datos a un estado consistente donde todas las
acciones que han finalizado con éxito queden reflejadas en la base.
9. En esencia, lo que se persigue con el procesamiento de transacciones es,
por una parte obtener una transparencia adecuada de las acciones
concurrentes a una base de datos y por otra, manejar adecuadamente las
fallas que se puedan presentar en una base de datos.

El procesamiento de transacciones representa una enorme y significativa


porción del mercado de los sistemas informáticos (más de cincuenta billones
de dólares al año) y es, probablemente, la aplicación simple más amplia de
las computadoras.
Además, se ha convertido en el elemento que facilita el comercio electrónico.
Como puede percibirse, el procesamiento de transacciones es una de las
tareas más importantes dentro de un sistema de base de datos, pero a la vez,
es una de las más difíciles de manejar debido a diversos aspectos, tales como:
10. La mayoría de medianas y grandes compañías modernas utilizan el
procesamiento de transacciones para sus sistemas de producción, y es tan
imprescindible que las organizaciones no pueden funcionar en ausencia de él.
11. Confiabilidad Puesto que los sistemas de base de datos en línea no pueden
fallar.
12. Disponibilidad Debido a que los sistemas de base de datos en línea deben
estar actualizados correctamente todo el tiempo.
13. Tiempos de Respuesta En sistemas de este tipo, el tiempo de respuesta de
las transacciones no debe ser mayor a doce segundos.
14. Throughput Los sistemas de base de datos en línea requieren procesar
miles de transacciones por segundo.
15. Atomicidad En el procesamiento de transacciones no se aceptan resultados
parciales.
16. Permanencia No se permite la eliminación en la base de datos de los
efectos de una transacción que ha culminado con éxito.

. CONTROLDE CONCURRENCIA EN BASES DE DATOS


El control de transacciones concurrentes en una base de datos brinda un
eficiente desempeño del Sistema de Base de Datos, puesto que permite
controlar la ejecución de transacciones que operan en paralelo, accesando a
información compartida y, por lo tanto, interfiriendo potencialmente unas con
otras.
El hecho de reservar un asiento en una avión mediante un sistema basado en
aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo
también, nos da una idea de lo importante y crucial que es el control de
concurrencia en un sistema de base de datos a mediana o gran escala.

Otro ejemplo en el que podemos observar la incidencia del control de


concurrencia en el siguiente: en una Base de Datos bancaria podría ocurrir que
se paguen dos cheques en forma simultánea sobre una cuenta que no tiene
saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se
tiene un control de concurrencia.

Anda mungkin juga menyukai