Temario: Introducción a SQL y Bases de Datos
Módulo 1 — Conceptos Fundamentales de Bases de Datos
1.1. ¿Qué es una Base de Datos?
Una base de datos es un sistema organizado para almacenar, consultar y gestionar información.
Su objetivo es asegurar la persistencia, integridad,
disponibilidad y consistencia de los datos.
Explicación por Oracle
1.2. Tipos de Bases de Datos
A) Bases de datos relacionales (SQL)
- Organizadas en tablas, filas y columnas.
- Uso de claves primarias y claves foráneas.
- Ejemplos: MySQL, PostgreSQL, SQL Server, Oracle.
B) Bases de datos no relacionales (NoSQL)
- Sin esquema rígido.
-
Tipos comunes:
- Documentales: MongoDB
- Clave–valor: Redis
- Grafos: Neo4j
- Columnar: Cassandra
- Usadas en Big Data, alta escalabilidad y estructuras flexibles.
C) Bases de datos menos comunes (ejemplo: bases de datos de series de tiempo)
- Optimizadas para datos ordenados por tiempo.
- Ejemplos: InfluxDB, TimescaleDB.
- Casos de uso: IoT, métricas de servidores, sensores.
Explicación por datacamp (en inglés)
Módulo 2 — Componentes del Ecosistema de Bases de Datos
2.1. ¿Qué es un Motor de Base de Datos? (Database Engine)
El motor de base de datos es el programa que procesa consultas, almacena datos,
gestiona índices, maneja transacciones y asegura concurrencia e integridad.
- Ejemplos: InnoDB, MyISAM en MySQL; MVCC en PostgreSQL.
2.2. ¿Qué es un Gestor de Base de Datos? (DBMS)
El gestor de base de datos es el sistema completo que incluye el motor,
herramientas de administración, seguridad y utilidades.
- MySQL Server
- PostgreSQL DBMS
- SQL Server
Diferencia clave:
- El motor ejecuta y gestiona los datos.
- El gestor es el paquete completo de administración.
2.3. ¿Qué es un Cliente de Base de Datos?
Un cliente de base de datos es cualquier aplicación o interfaz que permite conectarse a un DBMS.
- Línea de comandos: mysql CLI, psql, sqlcmd.
- Aplicaciones gráficas: phpMyAdmin, MySQL Workbench, DBeaver, TablePlus.
- APIs y aplicaciones externas: PHP (PDO), Java (JDBC), Python (SQLAlchemy).
Su función es enviar consultas SQL al servidor y recibir los resultados.
Módulo 3 — El Lenguaje SQL
3.1. Introducción a SQL
SQL significa Structured Query Language.
Es un lenguaje estándar y declarativo usado para interactuar con bases de datos relacionales.
3.2. Categorías de Sentencias SQL
- DDL: CREATE, ALTER, DROP.
- DML: SELECT, INSERT, UPDATE, DELETE.
- DCL: GRANT, REVOKE.
- TCL: COMMIT, ROLLBACK.
Módulo 4 — Arquitectura de MySQL
4.1. Modelo Cliente–Servidor
MySQL funciona como un servicio que:
- Escucha conexiones en el puerto 3306.
- Recibe consultas SQL.
- Utiliza su motor de almacenamiento (InnoDB, etc.).
- Retorna resultados al cliente.
4.2. Componentes Principales
Conector / Protocol Layer
Gestiona autenticación, permisos y comunicación.
SQL Layer
- Parser
- Optimizer
- Query Cache (dependiendo versión)
- Planificador de ejecución
Storage Engine Layer
- InnoDB: transacciones, integridad referencial, MVCC.
- MyISAM: rápido en lecturas, sin transacciones.
- MEMORY: tablas en RAM.
- CSV: datos en archivos CSV.
4.3. Diferencias con Otros Motores
MySQL vs PostgreSQL
- PostgreSQL es más estricto con SQL estándar.
- Mejor MCCV y manejo de concurrencia.
- MySQL suele ser más rápido en lecturas simples.
MySQL vs SQL Server
- SQL Server tiene más herramientas gráficas integradas.
- Usa T-SQL como lenguaje estándar.
- Enfoque más empresarial.
MySQL vs MongoDB (NoSQL)
- MongoDB usa documentos JSON, no tablas.
- Muy flexible pero con menos garantías relacionales.
Módulo 5 — Primeros Pasos Prácticos con SQL
5.1. Instalar MySQL o MariaDB
- Configuración inicial.
- Creación de usuarios.
- Conexión mediante Workbench o CLI.
5.2. Crear y Manipular una Base de Datos
- CREATE DATABASE
- CREATE TABLE
- INSERT, SELECT, UPDATE, DELETE
- Claves primarias y foráneas.
- Índices.
5.3. Consultas Avanzadas
- JOINs: INNER, LEFT, RIGHT, FULL.
- GROUP BY, HAVING.
- Subconsultas.
- Funciones agregadas.
5.4. Transacciones
5.5. Buenas Prácticas
- Normalización básica.
- Respaldos.
- Seguridad de usuarios.
- Modelado SQL.