Menu
Coddy logo textTech

¿Qué es una base de datos?

Una base de datos es una colección organizada de datos guardada en un ordenador para que los programas puedan encontrarlos, añadirlos, cambiarlos y borrarlos de forma rápida y segura. La gestiona un software llamado sistema gestor de bases de datos (SGBD o DBMS), como PostgreSQL, MySQL, SQLite o MongoDB.

Por Kevin Spektor, Cofundador y CTO

Actualizado el 24 de septiembre de 2026

Cuando inicias sesión en una web, el sitio tiene que encontrar tu cuenta entre millones de otras, comprobar tu contraseña y cargar tus ajustes, todo en unos pocos milisegundos. No abre un archivo de texto para leerlo línea a línea. Envía una petición como SELECT * FROM users WHERE email = 'ana@example.com' a una base de datos, y la base de datos salta directamente a la fila correcta usando un índice, igual que el índice al final de un libro.

Cómo funciona una base de datos

Trabajan juntas dos piezas. La base de datos son los datos, organizados con una estructura fija. El sistema gestor de bases de datos (SGBD, o DBMS en inglés) es el programa que guarda esos datos en archivos, los mantiene coherentes y responde a las peticiones. PostgreSQL, MySQL y SQLite son SGBD; tu lista de clientes es la base de datos.

En una base de datos relacional, los datos viven en tablas. Cada tabla tiene columnas (nombre, país, puntos) y filas (una por usuario). Una petición pasa por estos pasos:

  1. Tu programa envía una consulta, normalmente escrita en SQL (Structured Query Language, lenguaje de consulta estructurado).
  2. El SGBD analiza la consulta y planifica cómo responderla: qué tablas leer y si un índice le permite saltarse la mayoría de las filas.
  3. Lee los datos del disco en páginas de tamaño fijo (4096 bytes por defecto en SQLite, 8 KB en PostgreSQL) y mantiene en memoria las páginas que se usan a menudo.
  4. Filtra, ordena y combina filas, y después devuelve el resultado.

Python incluye SQLite, así que puedes ejecutar una base de datos real aquí mismo:

Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5

El programa nunca dice cómo buscar. Describe el resultado que quiere, y el SGBD decide cómo obtenerlo. Esa es la principal diferencia entre preguntar a una base de datos y escribir un bucle sobre una lista.

Tipos de bases de datos

TipoGuarda los datos comoEjemplosUso típico
Relacional (SQL)Tablas de filas y columnas, enlazadas por clavesPostgreSQL, MySQL, SQLite, Oracle, SQL ServerUsuarios, pedidos, pagos: la mayoría de las aplicaciones
DocumentalDocumentos parecidos a JSONMongoDB, Firestore, CouchDBRegistros cuyos campos varían de uno a otro
Clave-valorUn valor que se busca por una claveRedis, DynamoDBCachés, sesiones, contadores
De columnas anchasFilas con columnas flexibles repartidas en muchos servidoresCassandra, HBaseVolúmenes de escritura muy altos
De grafosNodos y las relaciones entre ellosNeo4jRedes sociales, recomendaciones
De series temporalesMediciones indexadas por tiempoInfluxDB, TimescaleDBMétricas, lecturas de sensores
VectorialListas de números (embeddings)pgvector, Pinecone, MilvusBúsqueda por similitud para funciones de IA

Todo lo que no es relacional se suele agrupar como NoSQL. Las bases de datos relacionales siguen siendo la opción por defecto para la mayoría de las aplicaciones, porque las tablas, las restricciones y SQL resuelven bien una gran variedad de problemas. Muchos productos también combinan tipos: PostgreSQL guarda documentos JSON, y pgvector le añade búsqueda vectorial.

Transacciones: todo o nada

Pasar dinero de Ana a Ben requiere dos cambios: sumar a Ben y restar a Ana. Si el programa falla entre uno y otro, aparece dinero de la nada. Una transacción agrupa cambios para que o se guarden todos o no se guarde ninguno. Aquí el segundo cambio rompe una regla (un saldo no puede bajar de cero), así que la base de datos deshace también el primero:

transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}

Los 40 de Ben se sumaron y luego se retiraron, así que los totales siguen cuadrando. Las bases de datos relacionales garantizan cuatro propiedades para las transacciones, conocidas como ACID: atomicidad (todo o nada), consistencia (reglas como CHECK siempre se cumplen), aislamiento (dos usuarios que ejecutan transacciones a la vez no ven el trabajo a medias del otro) y durabilidad (una vez guardado, un cambio sobrevive a un fallo o a un corte de luz).

Base de datos, hoja de cálculo o archivo

Archivo de texto o CSVHoja de cálculoBase de datos
TamañoLo que tu programa pueda cargar1.048.576 filas por hoja en ExcelMiles de millones de filas
Muchos escritores a la vezNoLimitadoSí, con bloqueos y transacciones
Encontrar un registroLeer el archivo enteroFiltrar o buscarConsulta por índice
Reglas sobre los datosNingunaValidación opcionalTipos, restricciones, claves foráneas
Hacer preguntasEscribir tu propio códigoFórmulasSQL o una API de consultas

Una hoja de cálculo es buena herramienta para una persona que mira unos pocos miles de filas. En cuanto varios programas o usuarios escriben datos a la vez, o los datos tienen que cumplir reglas, la herramienta adecuada es una base de datos.

Cómo protegen los datos las bases de datos

Un SGBD escribe cada cambio en un registro antes de tocar los archivos de datos (el write-ahead log, o registro de escritura anticipada), así que tras un fallo puede repetir o deshacer el trabajo sin terminar. PostgreSQL puede guardar un checksum en cada página de 8 KB e informar de un fallo de checksum cuando un disco defectuoso devuelve datos dañados. Los usuarios y los permisos deciden quién puede leer o cambiar cada tabla, y la replicación mantiene copias en otros servidores. Además, los programas tienen que pasar la entrada del usuario como parámetros, como los marcadores ? de arriba, y nunca pegarla en el texto SQL, que es como se producen los ataques de inyección SQL.

Ideas equivocadas frecuentes

  • "SQL es una base de datos." SQL es el lenguaje. PostgreSQL, MySQL y SQLite son bases de datos que lo entienden.
  • "NoSQL significa nada de SQL." El término se suele leer como "not only SQL" (no solo SQL), y varias bases de datos NoSQL tienen lenguajes de consulta que se parecen a SQL, como el CQL de Cassandra.
  • "Una base de datos siempre es un servidor grande." SQLite es un único archivo que un programa abre directamente, sin ningún servidor. Funciona dentro de todos los móviles Android e iOS.
  • "Los datos de una base de datos están a salvo para siempre." Una base de datos protege contra los fallos, no contra alguien que ejecuta un DELETE por error. Las copias de seguridad siguen siendo necesarias.

Qué leer después

El curso de SQL enseña consultas desde el primer SELECT. La documentación de SQLite cubre los pasos siguientes: qué es SQLite, crear una tabla, índices y cómo evitar la inyección SQL. Para ver cómo se organizan los datos en el disco, lee qué es un byte, y la página del checksum explica cómo se detectan las páginas dañadas.

Preguntas frecuentes

¿Qué es una base de datos en palabras sencillas?
Una base de datos es un lugar donde un programa guarda información para poder encontrarla de nuevo rápidamente. Piensa en un archivador con un índice perfecto: pides "todos los pedidos de la semana pasada" y recibes la respuesta en milisegundos, aunque haya millones de registros.
¿Cuál es un ejemplo de base de datos?
Los contactos de tu móvil se guardan en una base de datos: tanto Android como iOS incluyen SQLite. Un banco guarda las cuentas de sus clientes en una base de datos como Oracle o PostgreSQL, y Wikipedia guarda sus artículos en MariaDB. Una tienda online guarda productos, clientes y pedidos en tablas relacionadas.
¿Cuáles son los cuatro tipos de bases de datos?
No existe una lista oficial de cuatro. Los cuatro que más se mencionan son las bases de datos relacionales (tablas y SQL), las documentales (registros parecidos a JSON), los almacenes clave-valor (un valor que se busca por una clave) y las bases de datos de grafos (nodos y relaciones). Los libros más antiguos también incluyen las bases de datos jerárquicas y en red.
¿Cuáles son las 5 bases de datos más usadas?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL y MongoDB llevan años ocupando los cinco primeros puestos del ranking de popularidad de DB-Engines. Entre los desarrolladores, PostgreSQL es la base de datos más usada en la encuesta de Stack Overflow desde 2023, y SQLite es la más desplegada, porque viene dentro de los móviles y los navegadores.
¿Qué diferencia hay entre una base de datos y un SGBD?
La base de datos son los datos en sí, organizados en tablas o documentos. El SGBD es el software que guarda esos datos en disco y responde a las peticiones sobre ellos, como PostgreSQL o MySQL. Mucha gente dice "base de datos" para las dos cosas.
¿Necesito aprender SQL para usar una base de datos?
Para las bases de datos relacionales, sí: SQL es la forma de crear tablas y hacer preguntas a los datos, y lo básico se aprende en unos días. Muchos programas usan una biblioteca que escribe el SQL por ti, pero saber SQL hace mucho más fácil entender qué hace esa biblioteca y por qué una consulta es lenta.
Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR