¿Qué es una base de datos?
Al finalizar este tema
Podrás explicar por qué son necesarias las bases de datos y comprenderás el significado de CRUD y la diferencia entre SQL y NoSQL.
Por qué los archivos no son suficientes
Si un programa necesita almacenar datos, el método más simple es utilizar archivos. Por ejemplo, guardar una lista de usuarios en un archivo JSON.
[
{"id": 1, "name": "Kim Hoon", "email": "hoon@example.com"},
{"id": 2, "name": "Lee Su", "email": "su@example.com"}
]Este enfoque funciona bien al principio, pero pronto surgen problemas:
- Cuando hay 10.000 usuarios, la búsqueda se vuelve lenta — porque es necesario leer todo el archivo
- Si dos personas modifican simultáneamente, los datos se sobrescriben
- Para preguntas complejas como "encuentra solo los usuarios cuyo correo electrónico sea 'naver.com'", hay que escribir código directamente
Las bases de datos (DB) son sistemas especializados de almacenamiento y búsqueda de datos diseñados para resolver estos problemas.
CRUD — Las cuatro operaciones de los datos
Lo que hace una base de datos se reduce a cuatro cosas:
| Operación | Significado | Palabra clave SQL |
|---|---|---|
| Create | Crear nuevos datos | INSERT |
| Read | Leer/buscar datos | SELECT |
| Update | Modificar datos existentes | UPDATE |
| Delete | Eliminar datos | DELETE |
Casi todas las funciones de una aplicación web son combinaciones de CRUD. Registro de usuarios (C), lista del tablón de anuncios (R), edición del perfil (U), eliminación de la cuenta (D).
Bases de datos relacionales — Organización en tablas
El método más antiguo y ampliamente utilizado es la base de datos relacional (RDBMS). Almacena los datos en forma de tablas.
tabla users:
+----+--------+---------------------+
| id | name | email |
+----+--------+---------------------+
| 1 | Kim Hoon | hoon@example.com |
| 2 | Lee Su | su@example.com |
+----+--------+---------------------+Cada fila representa un dato y cada columna representa un atributo. El lenguaje que se utiliza para consultar esta tabla es SQL.
-- Buscar usuarios cuyo correo sea naver.com
SELECT name, email FROM users WHERE email LIKE '%@naver.com';Sistemas de gestión de bases de datos relacionales (RDBMS) destacados: MySQL, PostgreSQL, SQLite, Oracle.
NoSQL: bases de datos no tabulares
No todos los datos se ajustan perfectamente a una estructura tabular. Cuando cada usuario tiene atributos diferentes o la estructura de los datos cambia con frecuencia, se utiliza NoSQL.
// Ejemplo de documento de MongoDB
{
"_id": "abc123",
"name": "Kim Hoon",
"skills": ["Python", "JavaScript"],
"address": {
"city": "Seúl",
"district": "Gangnam"
}
}Almacena datos en una estructura similar a JSON, sin necesidad de SQL. Es flexible, pero puede resultar incómodo para gestionar relaciones complejas (JOIN).
Algunos ejemplos de bases de datos NoSQL son: MongoDB, Redis, Firebase y Supabase (basada en PostgreSQL, pero como BaaS).
¿Qué debo aprender?
| Situación | Recomendación |
|---|---|
| Fundamentos del desarrollo web | MySQL o PostgreSQL (SQL es imprescindible) |
| Desarrollo rápido de prototipos | Supabase, Firebase (configuración mínima) |
| Gestión de grandes volúmenes de datos no estructurados | MongoDB |
Inicialmente, es recomendable aprender SQL. SQL proporciona una base sólida independientemente de la base de datos que se utilice y ayuda a desarrollar una forma de pensar adecuada para la gestión de datos.
→ Aplicación en el ámbito biológico: DevBench — Fundamentos de bases de datos