Ir al contenido
wannacode

Por qué una base de datos

En resumen: Una base de datos guarda los datos en tablas de filas y columnas, para que muchas personas y programas puedan leerlos y cambiarlos a la vez sin hacer un desastre.

Problema

La hoja de cálculo que todos tocan

Una tienda en línea pequeña lleva sus pedidos en una hoja grande de Excel. Cada fila tiene la fecha, el nombre, el correo y la ciudad del cliente, el producto, la cantidad y el precio. Después de un año hay 3000 filas y empiezan los problemas:

  • Maria cambia su correo. Está en 40 filas. Tú corriges 38.
  • Un compañero escribe «Sofia», tú escribes «Sofía», y el informe por ciudades ya está mal.
  • Dos personas abren el archivo a la vez. Una de ellas pierde sus cambios.
  • «¿Cuánto gastó en marzo cada cliente de Plovdiv?» cuesta media hora de filtros.

Excel es una buena herramienta, pero no se hizo para guardar los datos de un negocio en marcha.

La idea

Una base de datos

Una base de datos es un lugar organizado para los datos. El programa que la cuida es un sistema gestor de bases de datos (SGBD). Hace cuatro cosas que un archivo no hace:

  • Mantiene reglas. El correo es único, el precio no es negativo, cada pedido pertenece a un cliente que existe. Una fila que rompe una regla simplemente no entra.
  • Guarda cada hecho una vez. El correo de Maria está en un solo lugar. Sus pedidos solo apuntan a ella.
  • Deja que muchas personas trabajen a la vez, sin que nadie pierda sus cambios.
  • Responde preguntas, incluso sobre millones de filas, normalmente en milisegundos.

Te encontrarás con los nombres PostgreSQL, MySQL, SQL Server, Oracle y SQLite. SQLite está en tu teléfono, en tu navegador y en muchas aplicaciones, y en este curso funciona directamente en la página.

Más precisamente, para curiosos

PostgreSQL, MySQL y SQL Server son servidores: un programa aparte al que las aplicaciones se conectan por la red, a menudo desde muchas computadoras a la vez. SQLite es una biblioteca: la base es un único archivo que el programa abre por sí mismo. El lenguaje con el que les haces preguntas es casi el mismo. Las diferencias las irás encontrando por el camino.

La idea

Tablas, filas, columnas

En el tipo más común de base de datos, la relacional, los datos viven en tablas. Una tabla es para un tipo de cosas: clientes, productos, pedidos.

  • Cada fila es una cosa: un cliente.
  • Cada columna es una propiedad: nombre, correo, ciudad. Todos los valores de una columna son del mismo tipo.

Estos son los clientes de la tienda con la que trabajarás durante todo el curso. Pulsa «Ejecutar»:

SQLbase de datos: tienda

Lo que ves es una consulta en el lenguaje SQL. SELECT * significa «todas las columnas», FROM customers significa «de la tabla customers». El punto y coma termina la consulta.

El campo es una base de datos real. Cambia la consulta, ejecútala otra vez, comete un error a propósito: nada se puede romper, y «Base nueva» lo devuelve al principio.

Más precisamente, para curiosos

Mira al cliente 12, Boris. En lugar de una ciudad hay NULL: «sin valor». No es texto vacío ni es cero. Tiene una lección entera, porque NULL está detrás de muchos informes equivocados.

Pruébalo

Los productos

Muestra todos los productos de la tienda. Su tabla se llama products.

SQLbase de datos: tienda

Pruébalo

¿Fila o columna?

1. En la tabla products, ¿qué es una fila?

Ejercicio

Un paseo por la tienda

Además de customers y products, la base tiene cuatro tablas más. Mira dos de ellas.

1. Muestra todos los pedidos (orders). ¿Cuántos hay? Mira la columna customer_id: dice de quién es el pedido, con el mismo número que tiene el cliente en customers.

Todos los pedidos:

SQLbase de datos: tienda

2. Muestra las categorías (categories). Algunas tienen un parent_id, dos no. ¿Qué crees que significa?

Todas las categorías:

SQLbase de datos: tienda

Test

Ponte a prueba

1. ¿Cuál de estas cosas NO es trabajo de un sistema gestor de bases de datos?
2. ¿Qué significa * en SELECT * FROM customers?
3. ¿Por qué el correo de Maria está en un solo lugar y no en cada uno de sus pedidos?
4. ¿Dónde se ejecutan las consultas de este curso?

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·