Saltar al contenido
Apuntes SQL Conquer Blocks
Teoría Clase 01a Tema 01

Introducción a MySQL y MySQL Workbench

Repaso de los fundamentos: qué es una base de datos, para qué sirve y la diferencia entre bases de datos relacionales (SQL) y no relacionales (NoSQL). Introducción a MySQL como motor relacional y contexto de sus casos de uso más comunes.

#MySQL#Bases de datos#SQL#NoSQL
§ 01

Resumen rápido

Repaso de los fundamentos: qué es una base de datos, para qué sirve y la diferencia entre bases de datos relacionales (SQL) y no relacionales (NoSQL). Introducción a MySQL como motor relacional y contexto de sus casos de uso más comunes.

§ 02

Conceptos clave

Base de datos

Sistema organizado para almacenar, gestionar y recuperar información de manera eficiente. Garantiza estructura, integridad y acceso controlado a los datos.

Base de datos relacional

Organiza los datos en tablas (filas y columnas) con un esquema fijo. Las relaciones entre tablas se establecen con claves primarias y foráneas. Usa SQL como lenguaje de consulta.

NoSQL

Bases de datos no relacionales. Almacenan datos en formatos flexibles como JSON, documentos o grafos, sin esquema fijo. Escalan horizontalmente agregando más servidores.

SQL

Structured Query Language. Lenguaje estándar para consultar y gestionar bases de datos relacionales. Permite crear tablas, insertar, modificar, borrar y consultar datos.

MySQL

Sistema de gestión de bases de datos relacionales (SGBDR) de código abierto. Desarrollado por MySQL AB, actualmente propiedad de Oracle. Uno de los más usados en aplicaciones web.

Clave primaria (PRIMARY KEY)

Identificador único de cada fila en una tabla. No puede repetirse ni ser nulo. Por convención, casi siempre es el campo id.

Clave foránea (FOREIGN KEY)

Campo en una tabla que referencia la clave primaria de otra tabla. Permite relacionar datos entre tablas sin duplicarlos.

JOIN

Operación SQL que combina filas de dos o más tablas usando la relación entre sus claves. Existen distintos tipos: INNER, LEFT, RIGHT y FULL.

§ 03

Contenido de la clase

¿Qué es una base de datos?

Un sistema organizado para almacenar, gestionar y recuperar información de manera eficiente. La clave está en "organizado": no es simplemente guardar datos en cualquier sitio, sino hacerlo con estructura, relaciones claras y reglas que garantizan su coherencia.

  • Almacenamiento estructurado: cada dato tiene su lugar y su tipo. Evita duplicidades y desorden.
  • Acceso rápido: las consultas con filtros complejos devuelven resultados en milisegundos, incluso con millones de registros.
  • Integridad: las reglas del esquema impiden guardar datos inválidos o inconsistentes.
  • Seguridad: control de acceso por usuario y por nivel, desde solo lectura hasta administración completa.

Ejemplos del día a día: la agenda de contactos del móvil (nombre, teléfono, dirección organizados por campo) o el catálogo de Netflix (películas, usuarios, valoraciones, géneros, historial) son bases de datos con estructura bien definida.

Relacionales vs. no relacionales

AspectoRelacional (SQL)No relacional (NoSQL)
EstructuraTablas con esquema fijo (filas y columnas)Documentos, grafos o JSON sin esquema rígido
EscalabilidadVertical: mejor hardwareHorizontal: más servidores en paralelo
LenguajeSQL estándar compartidoAPI propia de cada motor
Uso típicoBancos, inventarios, e-commerceRedes sociales, IoT, apps en tiempo real
EjemplosMySQL, PostgreSQL, SQLite, OracleMongoDB, Redis, Cassandra, DynamoDB

No son excluyentes. Una app de delivery puede usar SQL para pedidos y clientes (datos estructurados) y NoSQL para las reseñas y fotos de los restaurantes (datos variables).

¿Cuándo usar SQL y cuándo NoSQL?

  • SQL si los datos son estructurados y predecibles: perfiles de usuario, inventarios, transacciones bancarias, facturas.
  • SQL si necesitas transacciones complejas con garantías de integridad (ACID).
  • NoSQL si los datos cambian de forma con frecuencia o no tienen un esquema fijo.
  • NoSQL si necesitas escalar horizontalmente a gran volumen: millones de eventos, sensores IoT, feeds de redes sociales.

¿Qué es MySQL?

MySQL es un sistema de gestión de bases de datos relacionales (SGBDR) de código abierto basado en SQL. Es uno de los motores más usados en el mundo, especialmente en aplicaciones web, por su equilibrio entre rendimiento, simplicidad y recursos.

  • Código abierto: gratuito para uso comunitario (Community Edition).
  • Alto rendimiento: optimizado para consultas rápidas incluso con grandes volúmenes de datos.
  • Multiplataforma: Windows, Linux, macOS y entornos cloud (AWS, GCP, Azure).
  • Seguridad avanzada: cifrado, autenticación de usuarios y gestión de permisos por niveles.
  • Alta disponibilidad: replicación, clustering y copias de seguridad automáticas.
MotorPuntos fuertesUso ideal
MySQLRápido, fácil de usar, bajo consumo de recursosAplicaciones web tradicionales
PostgreSQLMás avanzado, extensible, mejor para análisisSistemas de análisis y data science
SQLiteSin servidor, muy ligero, un solo archivoApps móviles, proyectos pequeños
MongoDBFlexible, escala horizontalmente, NoSQLDatos variables, apps en tiempo real

Casos de uso de MySQL

  • Aplicaciones web: la mayoría de webs con backend tradicional (PHP, Node.js, Python, Java) usan MySQL.
  • CMS: WordPress, Joomla y sistemas de foros almacenan contenido, usuarios y configuración en MySQL.
  • E-commerce: Magento y plataformas similares guardan catálogos, pedidos y clientes en MySQL.
  • Aplicaciones empresariales: inventarios, reservas de hotel, sistemas de facturación, gestión de RRHH.
  • Análisis de datos: Python con Pandas, Tableau y Power BI se integran con MySQL para generar reportes.
  • APIs y apps móviles: MySQL como backend de datos con lenguajes como Node.js, PHP o Python.
§ 04

Código y ejemplos

Estructura básica: dos tablas relacionadas

SQL
-- Tabla principal: un registro por cliente
CREATE TABLE clientes (
  id      INT PRIMARY KEY AUTO_INCREMENT,
  nombre  VARCHAR(100) NOT NULL
);

-- Tabla secundaria: los pedidos apuntan al cliente por su id
CREATE TABLE pedidos (
  id          INT PRIMARY KEY AUTO_INCREMENT,
  cliente_id  INT NOT NULL,
  producto    VARCHAR(200),
  FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);

cliente_id es clave foránea en pedidos y clave primaria en clientes. Este vínculo es la base de los JOINs: permite saber qué pedido pertenece a qué cliente sin duplicar el nombre del cliente en cada fila.

Consulta con JOIN: ver pedidos con el nombre del cliente

SQL
SELECT clientes.nombre, pedidos.producto
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id;
§ 05

Errores comunes

Confundir MySQL con SQL: SQL es el lenguaje estándar; MySQL es una de sus implementaciones. PostgreSQL, SQLite u Oracle también usan SQL.
Pensar que NoSQL significa "sin orden o sin estructura": las bases no relacionales tienen estructura, simplemente es más flexible y no está basada en tablas fijas.
Asumir que hay que elegir entre SQL o NoSQL para toda la aplicación: muchos sistemas usan ambos según qué tipo de datos gestionan.
Confundir PRIMARY KEY con FOREIGN KEY: la primaria identifica la fila dentro de su propia tabla; la foránea es una referencia hacia la primaria de otra tabla.
§ 06

Buenas prácticas

Usa SQL cuando los datos son estructurados y predecibles: perfiles, inventarios, transacciones.
Usa NoSQL cuando los datos cambian de forma frecuentemente o necesitas escalabilidad horizontal masiva.
El campo id como clave primaria es una convención ampliamente adoptada. Respétala aunque parezca redundante en tablas pequeñas: evita referencias ambiguas en el futuro.
No dupliques datos entre tablas. Si un cliente tiene varios pedidos, su nombre va en la tabla clientes y los pedidos la referencian por id mediante una clave foránea.
§ 07

Ejercicios

§ 08

Checklist final

  • Entiendo qué es una base de datos y cuáles son sus funciones clave
  • Sé distinguir una base de datos relacional de una no relacional y en qué casos usar cada una
  • Conozco las características principales de MySQL y su posicionamiento frente a otros motores
  • Entiendo qué son las claves primarias y foráneas y cómo se relacionan dos tablas
  • Sé qué hace un JOIN y para qué sirve

¿Has terminado la clase?

Márcala como repasada y vuelve cuando quieras revisarla.