|
A menudo escuchamos las palabras "bases de datos". En este artículo intentamos explicar lo que son y las ventajas que ofrecen frente a los sistemas de ficheros.
La forma tradicional de almacenar datos en memoria secundaria (discos duros habitualmente, aunque podríamos hablar de cualquier otro sistema de almacenamiento de datos distinto de la memoria principal, como por ejemplo: cintas magnéticas, dispositivos ópticos o magneto-ópticos, memorias flash, etc...) es aquella que emplea los mecanismos del sistema operativo para almacenar datos de forma básica: los ficheros.
Los ficheros no son más que una colección de bytes uno detrás de otro al cual se le pone un nombre. Todos estamos acostumbrados a trabajar con ficheros y a otros conceptos relacionados con su organización, como directorios, carpetas, unidades, volúmenes, etc.
El significado de los bytes que contiene el fichero se lo damos nosotros, los usuarios o programadores al utilizarlo. Por ejemplo, los ficheros "ejecutables" contienen código que el microprocesador es capaz de ejecutar. Los ficheros de texto contienen una representación de carácteres basada en una tabla de conversión (ASCII u otra). Los ficheros jpg contienen la definición de una fotografía basada en una algoritmo de codificación fotográfico... La lista es interminable.
Cuando desarrollamos una aplicación, se hace necesario en multitud de ocasiones guardar datos en disco, para que se conserven entre una ejecución de la aplicación y otra (a esto se le suele denominar persistencia, o hacer los datos persistentes), es decir, hacer que no residan exclusivamente en la memoria principal, ya que entre una ejecución y otra serían destruidos, y además, la memoria principal suele ser muy limitada y cara con respecto a la secundaria.
Todos los lenguajes de programación tienen mecanismos para solicitar al sistema operativo que cree un fichero y que se puedan grabar datos de la memoria principal en él (crear una copia de ellos en la memoria secundaria). Asimismo, también es posible solicitar al S.O. que abra un fichero y recupere los datos de su interior (pasarlos de la memoria secundaria a la principal). No obstante, esto implica una problemática para el programador: por lo general, el programador debe desarrollar algoritmos para grabar los datos, y algoritmos para recuperarlos. Este desarrollo reviste una cierta complejidad, ya que esos algoritmos deben ser robustos y eficientes. En pequeñas aplicaciones que no manejen grandes volúmenes de datos, esto no suele representar un gran problema. Cualquier programador durante su aprendizaje se enfrenta a los ficheros sin demasiadas dificultadas. Sin embargo, cuando una aplicación maneja grandes cantidades de datos, el trabajo con ficheros se hace muy complicado, ya que lograr algoritmos de ficheros robustos y eficientes puede tomar la mayor parte del desarrollo.
Para evitar esto, en el desarrollo de muchas aplicaciones se recurre al apoyo de otro tipo de aplicaciones muy particulares, especializadas en el tratamiento de grandes volúmenes de datos. Se las denomina SISTEMAS GESTORES DE BASES DE DATOS (SGBD, o DataBase Management Systems, DBMS en inglés).
Nuestras aplicaciones pueden desarrollarse utilizando un SGBD para el almacenamiento de datos. Cuando necesitemos almacenar o recuperar datos, se lo solicitaremos a esta aplicación, que a su vez grabará ficheros en disco o cualquier otro dispositivo de almacenamiento secundario, pero utilizando algoritmos extremadamente eficientes, rápidos y robustos que ya están previamente preparados en su interior.

Un mismo SGBD es capaz de gestionar simultáneamente varias bases de datos.
Cada programa puede utilizar varias bases de datos, y cada base de datos puede ser utilizada por uno o más programas.
Incluso, un SGBD puede gestionar bases de datos ubicadas en distintos discos.
Casi cualquier combinación que se nos ocurra de aplicaciones-sgbd-bases de datos es posible.
En definitiva, el almacenamiento de los datos de un programa en memoria secundaria es un tema recurrente en la informática. Aunque los sistemas operativos permiten a los programas almacenar datos en forma de ficheros, cuando el volumen de datos es potencialmente grande o se requiere un cierto control sobre estos, los algoritmos se complican en exceso. En esos casos, las aplicaciones llamadas Sistemas Gestores de Bases de Datos realizan esta labor excelentemente, descargando a los desarrolladores de aplicaciones de su complejidad y proporcionando un marco uniforme de almacenamiento de datos. |