martes, 19 de febrero de 2008

1.1 Definición de Base de datos

Tema 1. Introducción a las bases de datos


1.1 Definición de Base de datos


En primer lugar, vamos a ver las razones que llevan a la existencia de los sistemas gestores de bases de datos. La Wikipedia define una base de datos de la siguiente manera:

Una base de datos o banco de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso.
Con esta definición, almacenar la información en un sistema de ficheros es una base de datos. Y, en realidad, lo es. Incluso un archivo compuesto por fichas de cartulina de una biblioteca tradicional constituyen una base de datos. Lo que pasa es que mantener esta información sin un sistema de gestión presenta una serie de problema, precisamente los que se intentan evitar con los sistemas gestores de bases de datos:
  • El problema de la redundancia e inconsistencia de datos. La información puede estar repetida, ya sea porque se almacena en lugares diferentes o porque se ha codificado de varias formas distintas. El problema más evidente de la redundancia es que ocasiona un mayor coste de almacenamiento y de acceso, al mantener información innecesaria. Más insidioso, pero potencialmente más grave, es el problema de que la información duplicada puede conducir (Algunos sostienen que conducirá inevitablemente) a inconsistencia en los datos.

  • El problema de la Dificultad en el acceso a los datos. Como no existe un método estandar de acceso, los programas que se hayan implantado hasta el momento pueden ser la única forma de acceder a los datos.

  • El problema del aislamiento de los datos. Al estar los datos repartidos en diferentes ficheros, a menudo representados en distintos formatos, es difícil establecer relaciones entre ellos.

  • El problema de la integridad de los datos. El único mecanismo que se puede usar para limitar los posibles valores de los datos es codificar estas reglas en los programas. Si hay varios programas implicados, todos deben compartir este código en común. Si se utilizan distintos lenguajes de programación, estas restricciones deben repetirse en diferentes librerías, una para cada lenguaje. Modificar estas reglas de integridad se convierte, en este entorno, en un trabajo nada trivial.

  • El problema de la atomicidad. El problema en realidad es la falta de atomicidad. En un sistema que no soporte el concepto de transacciones (Verémos más sobre las transacciones en el tema 4), garantizar que una serie de operaciones se comporten de forma atómica -en el sentido de invivisibles, es decir, que se trate a toda la secuencia como una sola operación- es muy complicado. En el caso de que se implemente, probablemente se trate de reinventar la rueda.

  • El problema del acceso concurrente. Hay que resolver de alguna manera los posibles problemas que pueden aparecer por el acceso concurrente a la misma información por parte de varios usuarios y/o máquinas.

  • El problema de la Seguridad. La seguridad y el control de los accesos no está centralizada.

Con esta lista en mente de los problemas más importantes a los que se tienen que enfrentar, definiremos un sistema de gestión de bases de datos -o, de forma menos precisa, pero más cómoda, una base de datos, a secas- como:
Una colección de archivos interrelacionados y un conjunto de programas que permiten a los usuarios acceder y modificar esos archivos, intentando resolver los problemas descritos anteriormente.

No hay comentarios: