Saltar al contenido principal
SQL29 de julio de 20266 min de lectura
Principiante6 min Full Stack Developer Backend Developer

¿Qué es una base de datos?

Introducción a las bases de datos: qué son, para qué sirven, funcionalidades clave, componentes, historia y tipos principales (relacionales, NoSQL, clave-valor, grafos).

Base de datosSQLNoSQLIntroducciónArquitectura

Lo que aprenderás

  • Entender qué es una base de datos y su propósito
  • Conocer las funcionalidades principales (CRUD, ACID, concurrencia)
  • Identificar los diferentes tipos de bases de datos
  • Conocer la evolución histórica de las bases de datos
Artículo6 min

¿Qué es una base de datos?

Definición, componentes, tipos y evolución de los sistemas de almacenamiento estructurado de datos.


Definición

Una base de datos es una colección organizada de datos estructurados que se almacenan electrónicamente. A diferencia de un archivo plano (como un CSV o un documento de texto), una base de datos está diseñada para persistir, organizar y recuperar información de forma eficiente, permitiendo que múltiples usuarios y aplicaciones accedan a los datos de manera concurrente y controlada.

El término se usa tanto para referirse al propio conjunto de datos como al sistema gestor de bases de datos (DBMS) que lo administra. Ejemplos cotidianos incluyen el catálogo de productos de un e-commerce, el historial médico de un hospital o los movimientos de una cuenta bancaria.

Dato curioso: Se estima que para 2025 se generarán 463 exabytes de datos al día a nivel mundial. Sin bases de datos, gestionar ese volumen sería simplemente imposible.

Funcionalidades clave

Un sistema de base de datos moderno ofrece un conjunto de capacidades esenciales que van mucho más allá del simple almacenamiento:

CRUD

El acrónimo CRUD (Create, Read, Update, Delete) representa las cuatro operaciones fundamentales sobre cualquier conjunto de datos persistentes. Toda base de datos, sin importar su tipo, implementa estas operaciones como mínimo. En SQL se traducen en INSERT, SELECT, UPDATE y DELETE:

-- Crear un nuevo usuario
INSERT INTO usuarios (nombre, email, edad)
VALUES ('Ana García', 'ana@example.com', 28);

-- Leer usuarios mayores de 25 años
SELECT * FROM usuarios WHERE edad > 25;

-- Actualizar el email de un usuario
UPDATE usuarios SET email = 'ana.garcia@example.com'
WHERE id = 1;

-- Eliminar un usuario
DELETE FROM usuarios WHERE id = 1;

Persistencia

Los datos sobreviven al ciclo de vida del programa que los creó. Esto parece obvio, pero es la diferencia fundamental entre almacenar datos en memoria RAM (volátil) y hacerlo en disco (persistente). Una base de datos garantiza que los datos sigan ahí cuando el servidor se reinicie.

Control de concurrencia

Múltiples usuarios pueden leer y escribir simultáneamente sin corromper los datos. El DBMS gestiona los bloqueos y el aislamiento de transacciones para que dos operaciones simultáneas no interfieran entre sí. Sin esto, dos usuarios comprando el último artículo de un stock podrían provocar una sobreventa.

Integridad de datos

Las bases de datos imponen restricciones (constraints) que garantizan que los datos sean válidos: tipos de datos, valores únicos, claves foráneas que referencian registros existentes, valores por defecto y validaciones personalizadas. Estas reglas evitan que datos inconsistentes entren al sistema.

Seguridad

Autenticación de usuarios, autorización por roles, cifrado en tránsito (TLS) y en reposo, y auditoría de accesos. Una base de datos permite definir quién puede leer, escribir o modificar la estructura de cada tabla o colección.

Backup y recuperación

Los DBMS modernos incluyen herramientas para realizar copias de seguridad (backups) periódicas y mecanismos de recuperación ante fallos. Esto asegura que incluso ante un corte eléctrico o un error de hardware, los datos no se pierdan y puedan restaurarse a un estado consistente.

Regla de oro: si tu aplicación guarda datos que deben sobrevivir a un reinicio del servidor, necesitas una base de datos. Un archivo JSON no es una base de datos.

Componentes de una base de datos

Para entender cómo funciona una base de datos, hay que conocer sus partes fundamentales:

Tablas (relacionales) / Colecciones (NoSQL)

Donde realmente viven los datos. En el modelo relacional, cada tabla representa una entidad (usuarios, productos, pedidos) y cada fila una instancia de esa entidad. Las columnas definen los atributos. En bases de datos NoSQL, las colecciones agrupan documentos con estructura flexible.

Índices

Estructuras auxiliares que aceleran las búsquedas. Sin un índice, encontrar un registro requiere recorrer toda la tabla (full scan). Un índice funciona como el índice de un libro: te lleva directamente a la página sin tener que hojearlo entero. La contrapartida es que ralentizan las escrituras y ocupan espacio.

Consultas (queries)

El lenguaje con el que interactuamos con los datos. En bases de datos relacionales usamos SQL (Structured Query Language). En NoSQL se usan APIs específicas o lenguajes de consulta como MongoDB Query Language o GraphQL. Una query bien optimizada puede marcar la diferencia entre una respuesta en milisegundos y una en minutos.

Transacciones

Una transacción agrupa varias operaciones en una unidad atómica: o se ejecutan todas o no se ejecuta ninguna. Por ejemplo, al transferir dinero entre cuentas, el débito y el crédito deben ocurrir juntos. Si una falla, la transacción se revierte (rollback) y los datos vuelven al estado anterior.

Esquemas

Definen la estructura de los datos: qué tablas existen, qué columnas tiene cada una, qué tipos de datos aceptan, qué restricciones se aplican. En SQL el esquema es fijo y se define antes de insertar datos (schema-on- write). En NoSQL el esquema suele ser implícito y flexible (schema-on- read).


Historia breve

La evolución de las bases de datos refleja la propia evolución de la informática:

  • Años 1960 — Sistemas jerárquicos y de red: los primeros sistemas como IMS (IBM) organizaban los datos en árboles. Eran rápidos pero rígidos: cambiar la estructura requería reescribir las aplicaciones.
  • 1970 — Modelo relacional: Edgar F. Codd, investigador de IBM, publicó el artículo "A Relational Model of Data for Large Shared Data Banks", sentando las bases matemáticas del modelo relacional. Proponía organizar los datos en tablas relacionadas mediante claves, separando la representación física de la lógica.
  • Años 1980 — SQL y bases de datos comerciales: Oracle, DB2 y SQL Server popularizaron SQL como lenguaje estándar. Las bases de datos relacionales se convirtieron en el estándar de la industria.
  • Años 2000 — NoSQL: el crecimiento de internet, los datos no estructurados y la necesidad de escalar horizontalmente impulsaron bases de datos como MongoDB, Cassandra y Redis. Sacrifican consistencia fuerte por escalabilidad y flexibilidad.
  • Años 2010 — NewSQL y multi-modelo: sistemas como CockroachDB y Google Spanner intentan combinar la escalabilidad de NoSQL con las garantías ACID de SQL. Las bases de datos multi-modelo (como PostgreSQL con extensiones) soportan documentos, grafos y clave- valor dentro del mismo sistema.
-- El primer lenguaje de base de datos comercial (Oracle, 1979)
SELECT emp.name, dept.name
FROM employees emp, departments dept
WHERE emp.dept_id = dept.id;
-- Misma query 45 años después: casi idéntica.

Tipos de bases de datos

Hoy existen decenas de sistemas de bases de datos, cada uno optimizado para un tipo de carga de trabajo:

Relacionales (SQL)

Almacenan datos en tablas con filas y columnas, con un esquema fijo y relaciones definidas mediante claves foráneas. Ideales para sistemas que requieren consistencia y consultas complejas. Ejemplos: PostgreSQL, MySQL, SQLite, Oracle, SQL Server.

Documentales

Almacenan datos como documentos JSON/BSON, cada uno con su propia estructura. Son flexibles y fáciles de escalar. Perfectas para catálogos de productos, sistemas de contenido y prototipos rápidos. Ejemplo: MongoDB, Couchbase, Firestore.

Clave-Valor

La forma más simple de base de datos. Cada ítem tiene una clave única y un valor asociado (que puede ser cualquier cosa: un string, un JSON, un blob binario). Ultrarrápidas, ideales para cachés y sesiones. Ejemplos: Redis, DynamoDB, Riak.

Column-family

Almacenan datos en columnas en lugar de filas, optimizadas para consultas analíticas sobre grandes volúmenes. Populares en Big Data. Ejemplos: Apache Cassandra, HBase, ScyllaDB.

Grafos

Almacenan entidades (nodos) y sus relaciones (aristas). Ideales para redes sociales, motores de recomendación y detección de fraudes. Ejemplos: Neo4j, ArangoDB, Amazon Neptune.

Time-series

Optimizadas para datos con marca temporal: métricas de servidores, lecturas de sensores IoT, ticks financieros. Ejemplos: InfluxDB, TimescaleDB (extensión de PostgreSQL), Prometheus.

Bases de datos vs. hojas de cálculo: aunque ambas organizan datos en filas y columnas, una hoja de cálculo no es una base de datos. Las bases de datos ofrecen concurrencia, transacciones, integridad referencial, índices, seguridad y escalan a millones de registros sin ralentizarse.