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

  1. Diseñar y crear una base de datos relacional que cumpla con los requisitos especificados.
  2. Implementar consultas SQL para extraer, filtrar, ordenar y manipular datos.
  3. Optimizar consultas para mejorar el rendimiento.
  4. Utilizar transacciones y manejar la concurrencia de manera efectiva.
  5. Aplicar funciones avanzadas de SQL y subconsultas para resolver problemas complejos.
  6. 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

  1. 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

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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

  1. Script SQL con la creación de la base de datos y las tablas.
  2. Consultas SQL para los requisitos especificados.
  3. Procedimientos almacenados, triggers y vistas.
  4. 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

Módulo 3: Trabajando con múltiples tablas

Módulo 4: Filtrado avanzado de datos

Módulo 5: Manipulación de datos

Módulo 6: Funciones avanzadas de SQL

Módulo 7: Subconsultas y consultas anidadas

Módulo 8: Índices y optimización de rendimiento

Módulo 9: Transacciones y concurrencia

Módulo 10: Temas avanzados

Módulo 11: SQL en la práctica

Módulo 12: Proyecto final

© Copyright 2024. Todos los derechos reservados