En este módulo, te proporcionaremos los requisitos necesarios para completar el proyecto final del curso de SQL. Este proyecto está diseñado para evaluar tu comprensión y habilidades en SQL, desde conceptos básicos hasta avanzados. Asegúrate de seguir cada paso cuidadosamente y de aplicar las mejores prácticas aprendidas a lo largo del curso.
Objetivos del Proyecto
- Diseñar y crear una base de datos relacional que cumpla con los requisitos especificados.
- Implementar consultas SQL para extraer, filtrar, ordenar y manipular datos.
- Optimizar consultas para mejorar el rendimiento.
- Utilizar transacciones y manejar la concurrencia de manera efectiva.
- Aplicar funciones avanzadas de SQL y subconsultas para resolver problemas complejos.
- Desarrollar procedimientos almacenados, triggers y vistas para automatizar y simplificar tareas.
Descripción del Proyecto
El proyecto consiste en crear una base de datos para una biblioteca en línea. La base de datos debe gestionar información sobre libros, autores, miembros, préstamos y devoluciones. A continuación, se detallan los requisitos específicos.
Requisitos Específicos
- Diseño de la Base de Datos
-
Tablas necesarias:
Books
(Libros)Authors
(Autores)Members
(Miembros)Loans
(Préstamos)Returns
(Devoluciones)
-
Estructura de las tablas:
Tabla | Columnas |
---|---|
Books | book_id (PK), title , author_id (FK), genre , published_year |
Authors | author_id (PK), name , birthdate , nationality |
Members | member_id (PK), name , email , join_date |
Loans | loan_id (PK), book_id (FK), member_id (FK), loan_date , due_date |
Returns | return_id (PK), loan_id (FK), return_date |
- Consultas SQL
-
Consultas básicas:
- Seleccionar todos los libros disponibles.
- Filtrar libros por género.
- Ordenar libros por año de publicación.
- Limitar los resultados a los 10 libros más recientes.
-
Consultas con múltiples tablas:
- Obtener una lista de libros junto con el nombre del autor.
- Listar todos los préstamos activos con detalles del libro y del miembro.
-
Filtrado avanzado:
- Buscar libros por título usando patrones.
- Filtrar miembros que se unieron en un rango de fechas específico.
- Agrupar libros por género y contar cuántos libros hay en cada género.
- Usar la cláusula HAVING para filtrar géneros con más de 10 libros.
- Manipulación de Datos
-
Inserciones:
- Insertar nuevos libros, autores y miembros.
- Registrar nuevos préstamos y devoluciones.
-
Actualizaciones:
- Actualizar la información de un libro.
- Cambiar el correo electrónico de un miembro.
-
Eliminaciones:
- Eliminar registros de préstamos antiguos.
- Borrar libros que no han sido prestados en los últimos 5 años.
- Funciones Avanzadas y Subconsultas
-
Funciones de cadena y numéricas:
- Formatear nombres de autores.
- Calcular la edad de los autores.
-
Subconsultas:
- Encontrar el libro más prestado.
- Listar miembros que han tomado prestados más de 5 libros.
- Optimización y Transacciones
-
Índices:
- Crear índices en columnas frecuentemente consultadas.
-
Transacciones:
- Implementar una transacción para registrar un préstamo y su devolución.
- Procedimientos Almacenados, Triggers y Vistas
-
Procedimientos almacenados:
- Crear un procedimiento para registrar un nuevo miembro.
-
Triggers:
- Implementar un trigger que actualice la disponibilidad de un libro cuando se registre un préstamo.
-
Vistas:
- Crear una vista que muestre todos los préstamos activos con detalles del libro y del miembro.
Entregables
- Script SQL con la creación de la base de datos y las tablas.
- Consultas SQL para los requisitos especificados.
- Procedimientos almacenados, triggers y vistas.
- Documentación que explique el diseño de la base de datos, las decisiones tomadas y cómo se cumplen los requisitos.
Evaluación
El proyecto será evaluado en base a los siguientes criterios:
- Correctitud: La base de datos y las consultas deben cumplir con los requisitos especificados.
- Eficiencia: Las consultas deben estar optimizadas para un buen rendimiento.
- Claridad: El código SQL debe ser claro y bien documentado.
- Complejidad: Se valorará el uso de funciones avanzadas y subconsultas.
Conclusión
Este proyecto final es una oportunidad para aplicar todo lo que has aprendido en el curso de SQL. Asegúrate de revisar cada módulo y de seguir las mejores prácticas para completar el proyecto con éxito. ¡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