Sunteți pe pagina 1din 2

Desarrollo de aplicaciones informáticas – Introducción a las Bases de Datos

______________________________________________________________________

Sistemas de bases de datos frente a sistemas de archivos

Este es un breve resumen de las ventajas e inconvenientes de uno y otro


sistema, extraído del Libro “Fundamentos de bases de datos”, de los autores
Silberschatz, Korth y Sudarshan. Editorial McGraw-Hill.

Es importante que te familiarices con las siguientes definiciones.

SGBD: Sistema Gestor de Bases de Datos

Redundancia: La misma información puede estar en lugares diferentes: los


datos de los empleados pueden estar en un archivo de la secretaría del centro
y a su vez parte de esos datos pueden estar en un archivo del departamento en
el que trabaja.

Inconsistencia: Si el empleado cambia de dirección y lo comunica a su


departamento y no lo hace también en la secretaría, sus datos no tienen el
mismo contenido en todos los sitios.

Dificultad en el acceso a los datos: En un sistema de archivos hay que hacer


aplicaciones específicas para acceder a los datos que necesitamos, en los
sistemas gestores de bases de datos, mediante el lenguaje SQL es muy fácil
obtener cualquier información.

Problemas de integridad: Los valores almacenados de los datos tienen que


cumplir ciertas restricciones (por ejemplo, que no se permiten socios menores
de 18 años).
En el sistema de archivos, estas tienen que hacerse en el código de cada
aplicación que acceda a los mismos, mientras que en un SGBD la restricciones
están centralizadas y su cumplimiento no depende de los programadores de la
aplicación.

Aislamiento de los datos: El hecho de que los datos estén dispersos por
diferentes archivos y que pueden estar en diferentes formatos, hace difícil
escribir nuevas aplicaciones de acceso para obtener los datos que se
necesitan.

Atomicidad: Es importante establecer mecanismos que garanticen que si en


medio de un conjunto de operaciones de produce un fallo, los datos mantengan
la integridad y sigan siendo consistentes. El ejemplo típico es una orden de
traspaso de dinero entre cuentas. Si los pasos son:

1) Compruebo que hay dinero en la cuenta A. Saldo 50 €.


2) Retiro 50 € de la cuenta A y rectifico su saldo. Saldo 0 €.
3) Incremento el saldo de la cuenta B en 50 €

Si terminado el paso 2 hay un fallo del sistema (avería del ordenador, caída
eléctrica, etc.) tiene que haber un mecanismo que garantice que los datos
sigan siendo correctos después del fallo.

1
Desarrollo de aplicaciones informáticas – Introducción a las Bases de Datos
______________________________________________________________________

Definimos transacción como un conjunto de operaciones que se tienen que


realizar por completo. Se tienen que hacer todas o ninguna, es lo que se
denomina atomicidad.

En un sistema de archivos esto depende de cada aplicación que accede a los


mismos. El programador tiene que definir los pasos a seguir en cada caso.
En un SGBD, el programador define donde empieza y termina la transacción y
el SGBD se encarga de garantizar la atomicidad de la transacción.

Seguridad: No todos los usuarios pueden acceder a los mismos datos y hacer
las mismas operaciones con ellos. En el sistema de archivos hay que
programar en cada aplicación qué usuario accede a qué datos y que puede
hacer con ellos.
En un SGBD, los usuarios y su nivel de acceso están centralizados.

Problemas de acceso concurrente: Volvemos al ejemplo anterior del banco.


Si dos usuarios que comparten una cuenta bancaria acceden a ver su saldo
simultáneamente, verán el mismo valor. Si los dos deciden hacer la
transferencia simultáneamente, el resultado puede ser que los datos
resultantes no cumplen con las reglas de integridad (suponemos que la cuenta
no puede quedar en “números rojos”), o que sean inconsistentes (figure como
saldo 0€, en lugar de -50€) porque se han realizado dos transferencias y la
cuenta queda en descubierto.

En un sistema de archivos, cada aplicación que accede a los datos tiene que
definir un bloqueo sobre los mismos.

El SGBD proporciona diferentes niveles de bloqueo (a qué cantidad de datos


es necesario impedir el acceso a otros usuarios para garantizar la
consistencia), que evitan estas situaciones y que a la vez permita que los
demás usuarios puedan seguir accediendo a los datos.

En los temas de administración del servidor Microsoft SQL Server, se estudiará


cómo funcionan y cómo trabajar con estas características de los SGBD.