Bases de datos sin misterios

Base de datos y SGBD: quién hace qué

9 min
Qué aprenderás
  • distinguir una base de datos (un almacén organizado) de un SGBD: el programa que ejecuta consultas SQL y gestiona los datos
  • explicar el recorrido de una consulta, «SQL → SGBD → resultado», y por qué un montón de archivos de Excel no soporta miles de usuarios a la vez
  • enumerar lo que aporta un SGBD frente a unos «simples archivos»: transacciones, registro de recuperación (), control de acceso (GRANT) y comprobaciones de integridad

Capítulo 1 — «El mapa del archivo»

La instantánea de «Kotomarket» ya no llega como una señal desde un sector muerto: descansa en una sala de cuarentena de Vault-9, y bajo la última línea del volcado sigue apareciendo la misma firma: «K.». Esta mañana, en tu holopantalla, parpadea una entrada nueva: «Acceso concedido: el índice del archivo. Emitido por: módulo S.Q.L.» La puerta del depósito se desliza a un lado; detrás, bajo una luz color ámbar, los armarios de servidores zumban con un ritmo constante.

QUERY: Antes de leer una memoria ajena, entiende cómo está construida. Empecemos por lo esencial: qué es aquí el almacén y quién lo custodia.

Base de datos y SGBD

Una base de datos es un almacén organizado. La instantánea de «Kotomarket» conserva clientes, productos, pedidos y eventos: no están desperdigados por archivos, sino ordenados en una estructura clara. Por eso aún se pueden leer ciento sesenta años después.

Pero el almacén por sí solo no responde preguntas. Hace falta un programa capaz de crear tablas, registrar pedidos nuevos, leer datos y vigilar que los vínculos no se rompan. Eso es un SGBD (sistema de gestión de bases de datos). Ejemplos: PostgreSQL, MySQL, ClickHouse. Nuestra instantánea es una base PostgreSQL, y sigue hablando el mismo SQL que cuando la tienda estaba viva.

Escribes una consulta en SQL → se la envías al SGBD → el SGBD extrae los datos que has pedido y te devuelve el resultado. Excel va bien para una hoja personal, pero se queda corto para una tienda en la que miles de usuarios consultan productos, hacen pedidos y generan eventos al mismo tiempo.

Un cadete en la entrada del depósito; entre él y los estantes de memoria se alza un guardián holográfico que actúa como intermediario: el SGBD
El archivo conserva la memoria, pero solo el guardián responde preguntas: la consulta pasa por el SGBD, y solo él toca los datos.

Database and DBMS

A database is an organized store. The Kotomarket holds buyers, products, orders, and events — not scattered across files, but in a clear structure. That’s exactly why it can still be read a hundred and sixty years later.

But the store itself doesn’t answer questions. You need a program that can create tables, record new orders, read data, and make sure the links never break. That’s a (database management system). Examples: PostgreSQL, MySQL, ClickHouse. Our snapshot is a PostgreSQL database, and it still speaks the same SQL it did when the shop was alive.

You write a query in SQL → send it to the DBMS → the DBMS fetches the data you asked for and returns the result. Excel is fine for a personal spreadsheet, but not for a shop where thousands of users browse products, place orders, and leave events in the system all at once.

clientDBMSparserplannerexecutordata filesSQL queryresultdatathe client talks to the DBMS, not the files directly
Todo acceso a los datos pasa por el SGBD: recibe el SQL, lo ejecuta y protege la integridad de la base.

Lo que puede hacer un SGBD y unos «simples archivos» no

Podría parecer que la tienda puede funcionar sin SGBD: basta con escribir los pedidos en un CSV o en Excel. Para una libreta personal, quizá. En cuanto aparece escala real, llegan justo los problemas para los que se inventó el SGBD.

  • Acceso concurrente. En el «Kotomarket» en funcionamiento, muchos clientes hacían pedidos a la vez. Si dos procesos escriben en el mismo archivo, pueden pisarse los cambios; un SGBD aplica los cambios como transacciones y coordina las operaciones paralelas. PostgreSQL lo consigue mediante : quienes leen no bloquean a quienes escriben, y al revés.
  • Recuperación tras un fallo. La corriente falla a mitad de una escritura: el archivo se corrompe y ya no hay forma de saber qué parte del pedido llegó a guardarse. Un SGBD primero anota el cambio en un registro (en PostgreSQL, el , write-ahead log) y, tras el fallo, lo reproduce: el pedido se guarda entero o no se guarda.
  • Control de acceso. Un archivo se abre entero o no se abre. En un SGBD los permisos son granulares, hasta el nivel de una sola tabla:
-- Al analista, solo lectura de los pedidos, sin derecho a modificarlos
GRANT SELECT ON orders TO analyst;
  • Integridad. Un SGBD no aceptará un pedido cuyo precio sea texto, ni una referencia a un cliente que no existe: los tipos de las columnas y las restricciones se comprueban en cada escritura. A un archivo le da igual lo que contenga.
  • Consultas declarativas. «Muéstrame los pedidos de más de 5000» cabe en una sola línea de SQL. Con un archivo, alguien tendría que escribir un programa para hacer el mismo trabajo y hacerlo sin equivocarse.

El SGBD es el intermediario entre tú y los datos: recibe las consultas SQL, las ejecuta y evita que la base acabe hecha un caos. En este curso trabajamos con PostgreSQL, muy habitual en puestos de analítica y backend. Ya conoces al guardián. Antes de abrir el índice de nuestra instantánea, QUERY te lleva a la sala contigua: el registro de otros archivos de la antigua Tierra, para que veas por qué solo el nuestro se conservó intacto.

Interview question

Pregunta de entrevista: ¿en qué se diferencia una base de datos de un SGBD? ¿Por qué una aplicación no debería guardar sus datos simplemente en archivos?

Buena respuesta: una base de datos es un conjunto de datos organizado; un SGBD es el programa que lo gestiona (PostgreSQL, MySQL, ClickHouse). Los archivos no ofrecen acceso concurrente (las escrituras simultáneas pueden pisarse), ni recuperación tras un fallo (un SGBD lleva un registro y reproduce los cambios inacabados), ni permisos granulares, ni comprobaciones de integridad. Y, sobre todo, un SGBD responde a consultas SQL declarativas, mientras que un archivo habría que analizarlo con código propio.

Check yourself
¿Quién hace qué: la base de datos o el SGBD?