Ir al contenido principal

Conceptos

¿Qué es una base de datos?

Una base de datos es un conjunto organizado de datos que se guarda de manera sistemática para poder consultarlo y actualizarlo después. La palabra que importa es organizado: un montón de datos sin estructura no es una base de datos, es un depósito.

Lo que la convierte en base de datos son las reglas: qué datos se guardan, en qué forma, cómo se relacionan entre sí, quién puede verlos y qué se permite hacer con ellos. Esas reglas las hace cumplir un programa: el gestor, que tiene su propio tema.

Las características que la definen

  1. Almacenamiento estructurado. Los datos se organizan en tablas, registros y campos —en las bases relacionales— o en otros formatos, como documentos o grafos.
  2. Acceso eficiente. Permite recuperar y modificar un dato sin recorrer todo, aunque haya millones.
  3. Gestión centralizada. Los datos se guardan en un solo lugar y los comparten muchas personas y programas a la vez.
  4. Integridad. El sistema impide guardar datos que no cumplen las reglas: una venta sin cliente, un documento repetido, una fecha imposible.
  5. Seguridad. Cada usuario accede solo a lo que le corresponde. Un vendedor no necesita ver los sueldos.
  6. Independencia de los programas. Los datos existen por sí mismos: si se reemplaza el programa que los usa, los datos siguen ahí.

Esa última característica es la que se subestima más y la más importante de todas. En un sistema bien hecho, los datos valen más que el programa: el programa se reescribe cada pocos años, los datos se acumulan durante décadas.

Para qué sirve

En el fondo, una base de datos sirve para resolver cuatro necesidades. Cada una por separado se podría resolver de otra forma, pero tenerlas juntas es lo que la vuelve imprescindible.

La necesidad Cómo la resuelve
Guardar información que no se puede perder. La almacena de forma ordenada, y permite hacer copias de seguridad y recuperarla si algo falla.
Encontrarla rápido entre muchísimos datos. Usa estructuras de búsqueda que permiten llegar a un registro sin recorrer todos los demás.
Compartirla entre varias personas y programas al mismo tiempo. Administra el acceso simultáneo, para que dos personas escribiendo a la vez no se pisen.
Confiar en que la información es correcta. Impide guardar datos que violan las reglas, y garantiza que las operaciones se completen enteras o no se hagan.

Del archivo a la base de datos

Para entender por qué existen las bases de datos conviene mirar qué se hacía antes. Durante décadas, los programas guardaban su información en archivos: cada aplicación tenía los suyos, en su propio formato, y los leía y escribía directamente.

Ese esquema funcionaba mientras los sistemas eran chicos y los usaba poca gente. Cuando empezaron a crecer, aparecieron seis problemas que no tenían solución dentro del esquema de archivos. Cada uno de ellos es, hoy, una de las funciones que cumple un gestor.

Problema Qué pasaba Cómo lo resuelve la base de datos
Redundancia El mismo dato se repetía en varios archivos, porque cada programa guardaba su propia copia. Cada dato vive en un solo lugar, y las demás tablas lo referencian.
Inconsistencia Al repetirse, las copias se contradecían: un archivo decía que el cliente vivía en La Plata y otro en Berisso. Al no haber copias, no puede haber contradicción.
Dependencia entre programa y datos Cambiar el formato del archivo obligaba a reescribir todos los programas que lo leían. Los programas hablan con el gestor, no con el archivo. La estructura se puede cambiar sin tocar los programas.
Dificultad de acceso Para responder una pregunta nueva había que escribir un programa nuevo, aunque los datos ya estuvieran ahí. Cualquier consulta se escribe en SQL, sin programar.
Acceso simultáneo Si dos programas escribían el mismo archivo a la vez, uno pisaba al otro y los datos se corrompían. El gestor organiza los turnos y garantiza que cada operación vea datos coherentes.
Falta de atomicidad Si un programa se caía en la mitad de una operación, el archivo quedaba a medias y sin forma de saber qué había pasado. Las transacciones aseguran que una operación se aplique completa o no se aplique.

También quedaba sin resolver la seguridad: en un archivo, quien podía abrirlo podía ver todo y modificar todo. Una base de datos permite definir permisos por tabla, por campo y por usuario.

Tipos de bases de datos

No todas las bases de datos funcionan igual. El tipo se elige según cómo son los datos y qué se necesita hacer con ellos.

Tipo Cómo guarda los datos Ejemplos
Relacionales En tablas relacionadas entre sí por claves. Es el modelo más usado. MySQL, MariaDB, PostgreSQL, SQL Server, Oracle
No relacionales (NoSQL) En documentos, pares clave-valor, grafos o columnas. Su estructura es más flexible. MongoDB, Redis, Neo4j, Cassandra
Orientadas a objetos Guardan objetos completos, como los maneja la programación orientada a objetos. Se usan junto a lenguajes orientados a objetos
Distribuidas Los datos están repartidos en varios equipos, que se ven como una sola base. Sistemas de gran escala y servicios globales
En la nube Se alojan en servidores de un proveedor, y se contratan como servicio. Amazon RDS, Google Cloud SQL

Estas categorías no son excluyentes: una base relacional puede estar distribuida y alojada en la nube al mismo tiempo. Los dos primeros tipos —relacional y NoSQL— son los que se oponen conceptualmente, y cada uno tiene su lugar: el relacional cuando los datos tienen estructura clara y hay que garantizar su integridad; el NoSQL cuando la estructura cambia mucho o el volumen es gigantesco. Los modelos de datos se ven en detalle en su propio tema.

Resumen

Concepto La idea que hay que recordar
Base de datosConjunto organizado de datos, con reglas, que se guarda para consultarlo después.
Sus característicasEstructurada, de acceso eficiente, centralizada, íntegra, segura e independiente de los programas.
Para qué sirveGuardar, encontrar rápido, compartir y poder confiar en la información.
Antes de las bases de datosArchivos propios de cada programa, con seis problemas sin solución: redundancia, inconsistencia, dependencia, dificultad de acceso, concurrencia y falta de atomicidad.
TiposRelacionales, NoSQL, orientadas a objetos, distribuidas y en la nube.
Lo que más valeLos datos sobreviven a los programas: por eso se diseñan con cuidado.