Introducción
En este módulo final, aplicarás todos los conocimientos adquiridos a lo largo del curso en un proyecto práctico. Este proyecto te permitirá consolidar tus habilidades en SQL y demostrar tu capacidad para resolver problemas del mundo real utilizando bases de datos.
Objetivos del Proyecto
- Diseñar y crear una base de datos: Definirás el esquema de la base de datos, incluyendo tablas, relaciones y restricciones.
- Manipular datos: Insertarás, actualizarás y eliminarás datos en las tablas.
- Realizar consultas complejas: Ejecutarás consultas que involucren múltiples tablas, subconsultas, agregaciones y funciones avanzadas.
- Optimizar el rendimiento: Implementarás índices y aplicarás técnicas de optimización para mejorar el rendimiento de las consultas.
- Gestionar transacciones: Utilizarás transacciones para asegurar la integridad de los datos.
- Implementar procedimientos almacenados y triggers: Crearás procedimientos almacenados y triggers para automatizar tareas y mantener la integridad de los datos.
Descripción del Proyecto
Contexto
Imagina que has sido contratado como desarrollador de bases de datos para una empresa ficticia llamada "TechStore", una tienda en línea que vende productos electrónicos. La empresa necesita una base de datos para gestionar sus productos, clientes, pedidos y empleados.
Requisitos del Proyecto
-
Diseño de la Base de Datos:
- Crear un esquema de base de datos que incluya las siguientes tablas:
Productos
: Información sobre los productos disponibles en la tienda.Clientes
: Información sobre los clientes que realizan compras.Pedidos
: Detalles de los pedidos realizados por los clientes.Empleados
: Información sobre los empleados de la tienda.Proveedores
: Información sobre los proveedores de los productos.
- Definir las relaciones entre las tablas (por ejemplo, un cliente puede realizar múltiples pedidos, un pedido puede contener múltiples productos, etc.).
- Crear un esquema de base de datos que incluya las siguientes tablas:
-
Manipulación de Datos:
- Insertar datos de ejemplo en cada una de las tablas.
- Actualizar y eliminar datos según sea necesario para reflejar cambios en la tienda.
-
Consultas Complejas:
- Realizar consultas para obtener información como:
- Productos más vendidos.
- Clientes con más compras.
- Pedidos realizados en un rango de fechas específico.
- Empleados que han gestionado más pedidos.
- Utilizar JOINs, subconsultas, agregaciones y funciones avanzadas en las consultas.
- Realizar consultas para obtener información como:
-
Optimización del Rendimiento:
- Crear índices en las columnas que se utilizan frecuentemente en las consultas.
- Analizar el rendimiento de las consultas y aplicar técnicas de optimización.
-
Gestión de Transacciones:
- Implementar transacciones para asegurar que las operaciones de inserción, actualización y eliminación se realicen de manera atómica.
-
Procedimientos Almacenados y Triggers:
- Crear procedimientos almacenados para tareas comunes como la inserción de nuevos pedidos.
- Implementar triggers para mantener la integridad de los datos, como actualizar el stock de productos cuando se realiza un pedido.
Entregables
- Esquema de la Base de Datos: Un archivo SQL con las instrucciones para crear las tablas y definir las relaciones.
- Datos de Ejemplo: Un archivo SQL con las instrucciones para insertar datos de ejemplo en las tablas.
- Consultas SQL: Un archivo SQL con las consultas complejas requeridas.
- Índices y Optimización: Un archivo SQL con las instrucciones para crear índices y cualquier otra optimización aplicada.
- Transacciones: Un archivo SQL con ejemplos de transacciones.
- Procedimientos Almacenados y Triggers: Un archivo SQL con los procedimientos almacenados y triggers implementados.
- Documentación: Un documento que explique el diseño de la base de datos, las decisiones tomadas y cualquier otra información relevante.
Evaluación
El proyecto será evaluado en base a los siguientes criterios:
- Correctitud: La base de datos y las consultas deben funcionar correctamente y devolver los resultados esperados.
- Eficiencia: Las consultas deben estar optimizadas para un rendimiento eficiente.
- Complejidad: Se valorará el uso de técnicas avanzadas de SQL.
- Documentación: La documentación debe ser clara y completa, explicando el diseño y las decisiones tomadas.
Conclusión
Este proyecto final te permitirá aplicar todo lo que has aprendido en el curso de SQL. Es una excelente oportunidad para demostrar tus habilidades y prepararte para enfrentar desafíos reales en el mundo laboral. ¡Buena suerte!
Curso de SQL
Módulo 1: Introducción a SQL
Módulo 2: Consultas básicas de SQL
- Instrucción SELECT
- Filtrando datos con WHERE
- Ordenando datos con ORDER BY
- Limitando resultados con LIMIT
Módulo 3: Trabajando con múltiples tablas
Módulo 4: Filtrado avanzado de datos
- Usando LIKE para coincidencia de patrones
- Operadores IN y BETWEEN
- Valores NULL y IS NULL
- Agregando datos con GROUP BY
- Cláusula HAVING
Módulo 5: Manipulación de datos
Módulo 6: Funciones avanzadas de SQL
Módulo 7: Subconsultas y consultas anidadas
- Introducción a subconsultas
- Subconsultas correlacionadas
- EXISTS y NOT EXISTS
- Usando subconsultas en cláusulas SELECT, FROM y WHERE
Módulo 8: Índices y optimización de rendimiento
- Entendiendo los índices
- Creación y gestión de índices
- Técnicas de optimización de consultas
- Análisis del rendimiento de consultas
Módulo 9: Transacciones y concurrencia
- Introducción a las transacciones
- Propiedades ACID
- Instrucciones de control de transacciones
- Manejo de concurrencia