Pregunta 1¿Cuál de las diferencias que menciona este artículo es una razón para guardar los registros de las reservas en una base de datos y no en un archivo?
Qué es una base de datos — diferencias con un archivo, tablas y SQL
Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Una base de datos se ocupa de tres cosas: buscar, atender escrituras que llegan a la vez y fijar la forma de los registros. Los diagramas muestran las tablas formadas por filas y columnas y el SQL con el que se indican las lecturas y las escrituras.
Este artículo trata la capa BD, es decir, la base de datos.
Una base de datos es software que guarda los datos en una forma que se puede buscar y actualizar.
Lo que la diferencia de un archivo no es dónde quedan los registros, sino que también se ocupa de la búsqueda y de ordenar las escrituras.
En qué se diferencia una base de datos de un archivo — buscar, escribir a la vez y fijar la forma
Una base de datos no es solo un contenedor que guarda registros.
Se ocupa de tres cosas: encontrar las filas que cumplen una condición, procesar una tras otra las escrituras que llegan a la vez y mantener uniforme la forma de los registros.
Aunque lleguen a la misma hora, las escrituras se procesan de una en una y por orden.
Si escribes directamente en un archivo, ese orden lo tiene que decidir tu propio programa.
Las bases de datos más usadas son PostgreSQL, MySQL y SQLite.
Los registros que modifica una sola persona, como la configuración, no dan problema como archivo.
Los registros que varias personas leen y escriben a la vez y que buscas por condición son los que van en una base de datos.
La base de datos se ocupa de tres trabajos
Tanto con un archivo como con una base de datos los registros quedan en el almacenamiento; lo que cambia es quién hace la búsqueda, quién fija el orden cuando las escrituras llegan a la vez y quién mantiene uniforme la forma de los registros.
Con un archivo lo hace todo tu propio programa, y con una base de datos basta con decir qué registros quieres, y ella rechaza las filas cuya forma no encaja.
Una tabla guarda los registros en forma de cuadro de filas y columnas
La unidad que guarda los registros dentro de una base de datos es la tabla (table. Un cuadro de filas y columnas que reúne registros del mismo tipo).
| ID de reserva | ID de miembro | Fecha | Personas |
|---|---|---|---|
| 1 | 12 | 2026-10-03 | 2 |
| 2 | 7 | 2026-10-03 | 4 |
| 3 | 12 | 2026-10-10 | 3 |
Cada encabezado es una columna (column. Un elemento del registro) y cada línea horizontal de debajo es una fila (row. Un registro completo; también se le llama registro o record).
La columna que sirve para identificar una fila concreta es la clave primaria (primary key. Una columna en la que no puede haber dos filas con el mismo valor).
Las columnas se deciden de antemano y, cada vez que se añade un registro, se añade una fila.
- Columnas: ID de reserva, ID de miembro, fecha, personas
- 1 fila = 1 reserva
- Se añade una fila por cada reserva
- Columnas: ID de miembro, nombre, dirección de correo
- 1 fila = 1 miembro
- Se añade una fila por cada alta de miembro
En la tabla de reservas no se escribe el nombre del miembro, solo su ID.
El nombre está en un único sitio, la tabla de miembros, así que si cambia solo hay una fila que corregir.
Una base de datos que guarda los datos en forma de cuadro de filas y columnas es una base de datos relacional (relational database. También se escribe RDB), y las tablas se pueden enlazar entre sí por una columna común.
Lo que se decide antes de crear una tabla es el esquema (schema. El nombre de la tabla, los nombres de las columnas y el tipo de valor que va en cada columna), y el tipo de valor se refiere a distinciones como número, texto o fecha, y también se escribe tipo (type).
La tabla fija primero las columnas y crece por filas
Una tabla es un cuadro formado por columnas verticales y filas horizontales.
Los nombres de las columnas se deciden de antemano, se añade una fila por cada registro nuevo y, si el valor de la clave primaria que identifica un registro se pone también en otra tabla, las dos quedan enlazadas.
El SQL es la forma de escribir las instrucciones de lectura y escritura que la capa del servidor de aplicaciones envía a la base de datos
La forma de escribir las instrucciones para leer y escribir en una tabla es el SQL (Structured Query Language. Un lenguaje para indicar la lectura, la inserción, la modificación y el borrado de filas), y a una instrucción se le llama consulta (query).
En los libros para principiantes aparece de esta forma.
SELECT date, guests
FROM reservations
WHERE member_id = 12;
Detrás de SELECT van las columnas que se sacan, detrás de FROM va la tabla y detrás de WHERE va la condición.
Estas tres líneas indican que se saquen la fecha y las personas de las filas de la tabla de reservas cuyo ID de miembro es 12.
Con mirar la primera palabra sabes si es una lectura, una inserción, una modificación o un borrado.
Buscar las filas lo hace la base de datos, y la capa del servidor de aplicaciones solo dice qué filas quiere.
En la modificación y el borrado, lo que cambia no son las filas que vuelven, sino las filas que quedan en la tabla.
El componente que permite manejar las tablas con la sintaxis del lenguaje en vez de escribir SQL es un ORM (Object-Relational Mapping. Un componente que maneja las filas de la tabla con la sintaxis del lenguaje, lo convierte a SQL y lo envía).
Aunque uses un ORM, lo que llega es una consulta SQL.
Escribir SQL tú mismo y ejecutarlo se trata en el artículo sobre SELECT del curso de introducción a SQL.
El SQL es la forma de decir qué filas quieres
El SQL es la forma de escribir una petición de lectura o de escritura a la base de datos.
La primera palabra determina si se lee, se añade, se modifica o se borra; qué filas se ven afectadas se indica con una condición, y la búsqueda la hace la base de datos.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué indica la consulta SELECT date, guests FROM reservations WHERE member_id = 12;?
Pregunta 3¿Por qué la tabla de reservas contiene el ID de miembro y no el nombre del miembro?