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.

Las palabras de las instrucciones para principiantes y el lugar de la base de datos, la tabla y el SQL
===Guardar en labase de datosCrear unatablaEscribir SQLBase de datosTablaSQLSoftware dela capa BDTabla dentro dela base de datosInstrucciones dela capa App
La fila de arriba son las palabras que aparecen en las instrucciones, la del medio son los tres términos que trata este artículo y la de abajo es su lugar en el modelo de tres capas. Los dos unidos por la línea doble solo se dicen de forma distinta; son lo mismo.

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.

Quién asume cada función con un archivo y con una base de datos
===Buscar registrospor condiciónOrdenar escriturassimultáneasUnificar la formade los registrosTu programa leetodo y eligeDecides tú elordenQuien escribedebe cuidarloLa BD devuelvesolo lo que cumpleLa BD las procesapor ordenRechaza filasque no encajanCon más filasse vuelve lentaEscribir a la vezpierde unaSe mezclan filascon otra forma
La columna de la izquierda es la función, y las dos del centro son el caso del archivo y el de la base de datos. La de la derecha es lo que suele pasar cuando la asumes tú.

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 reservaID de miembroFechaPersonas
1122026-10-032
272026-10-034
3122026-10-103

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.

El contenido de la base de datos de la app de reservas
La base de datos de la app de reservas
Tabla reservas
  • Columnas: ID de reserva, ID de miembro, fecha, personas
  • 1 fila = 1 reserva
  • Se añade una fila por cada reserva
Tabla de miembros
  • Columnas: ID de miembro, nombre, dirección de correo
  • 1 fila = 1 miembro
  • Se añade una fila por cada alta de miembro
El marco exterior es una base de datos. Las dos de dentro son tablas, y cada lista de puntos da los nombres de las columnas y lo que representa una fila.

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 sola solicitud se reparte entre dos tablas
Solicitud de Ana10/03 · 2 personasNombre y correo atabla de miembrosFecha y personas atabla de reservasTabla de miembrosID 12 · AnaTabla de reservasID 1 · miembro 12Mismo ID de miembro
La única solicitud de la izquierda se divide hacia arriba y hacia abajo, y cada parte se convierte en una fila de una tabla distinta. Las dos de la derecha tienen el mismo valor, el ID de miembro 12, así que desde la fila de la reserva se puede llegar al nombre.

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.

La primera palabra determina lo que hace la base de datos
SELECT ...WHERE member_id= 12INSERT INTOreservations ...UPDATE ...SET guests = 4DELETE FROMreservations ...Elegir filas conID de miembro 12Añadir 1 fila atabla de reservasCambiar personasen las filasBorrar esas filasVuelven 2 filas:fecha y personasSe añade 1 filaEl 2 pasa a 4Se quita 1 fila
A la izquierda está el principio de la consulta que enviaste, en el centro lo que hace la base de datos y a la derecha lo que vuelve y lo que queda. Las tres de abajo cambian el número de filas; solo la de arriba es una lectura.

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).

Escribas SQL directamente o uses un ORM, lo que llega es lo mismo
SQL directoSe envía tal cualSintaxis del ORMEl ORM loconvierte a SQLUna consulta SQLllega a la BD
Las líneas que escribes son distintas arriba y abajo, pero a la derecha se juntan en una. Lo que recibe la base de datos es, en los dos casos, una consulta SQL.

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.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

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?

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?