PROYECTO BASES DE DATOS OSCAR JOYA

OBJETIVO DEL PROYECTO

En este blog se presentará todo lo realizado para trabajar con una base de datos e integrarla en MySQL para realizar consultas que permitirían extraer información de la misma.

ESQUEMA O MODELO ENTIDAD RELACIÓN

Con apoyo de la herramienta LucidChart se creó el modelo entidad relación para tener una guía al momento de crear la base. 


La base de datos en cuestión representa la información de los equipos y de los futbolistas que los conforman, ya que la base antes de un proceso de limpieza y normalización contiene los siguientes datos:

  • Nombre del futbolista
    • Nacionalidad del futbolista
    • Año de nacimiento del futbolista
    • Sueldo del futbolista
    • Equipo al que pertenece el futbolista
    • Datos del equipo al que pertenece el futbolista (Año de creación, Nombre del equipo, etc...)
    • Patrocinio del equipo al que pertenece el futbolista y el tiempo del contrato del patrocinio
    • Selección a la que pertenece el futbolista (Ya que pudo haber sido nacionalizado)
    • Mundiales que ganó la selección a la que pertenece el futbolista.

    CREACIÓN DE LA BASE DE DATOS


    La base de datos fue creada con asistencia de inteligencia artificial, se puede ver a continuación cómo está distribuida previo a la normalización:




    NORMALIZACIÓN DE LA BASE DE DATOS


    Primera Forma Normal (1FN) :

    Se separaron las columnas de los datos que se repetían de las que no, resultando 2 tablas, una con los patrocinios, su identificador y el tiempo del contrato del patrocinio, que se conecta con la otra tabla que contiene el resto de la información. Además, la IA generativa cometió un error en el DNI, ya que debe ser un identificador único para cada jugador, sin embargo repitió la mayoría de los datos, esto cobra sentido ya que esta información es sensible y no se encuentra en ningún lado. Para solucionar este error se generó un nuevo código identificador para cada jugador y adoptó el nombre de "DNI_FUTBOLISTA", a continuación las 2 tablas: 

    • TABLA 1


    • TABLA 2:


    Cabe aclarar que esos son sólo algunos de los datos de la tabla, la base de datos original contiene 549 datos y 14 características. Además, las llaves primarias son "DNI_FUTBOLISTA unido con ID_PATROCINADOR unido con NOMBRE_EQUIPO" e "ID_PATROCINADOR" para las 2 tablas respectivamente.


    Segunda Forma Normal (2FN) :

    Para este proceso se separaron las columnas que dependían de una parte de la llave primaria, generando 3 Tablas diferentes; La Tabla 3 (TABLA PATROCINIOS), TABLA FUTBOLISTAS y TABLA GENERAL como se puede observar a continuación:

    • TABLA FUTBOLISTAS:

    • TABLA GENERAL:


    La TABLA PATROCINIOS fue la Tabla 3 que surgió de 1FN.

    Tercera Forma Normal (3FN) :

    Por último, se separaron las columnas que dependían entre ellas mismas directamente a pesar de depender de la clave primaria, formando finalmente 5 tablas diferentes. La TABLA FUTBOLISTAS se relaciona con TABLA SELECCIONES, que contiene su respectivo identificador único, el nombre y los mundiales de cada selección. Por otro lado, de TABLA GENERAL sale TABLA EQUIPOS, que contiene toda la información acerca de los equipos y un identificador único para cada uno de ellos. Finalmente todas se unen mediante sus identificadores únicos en TABLA GENERAL a la cual se le generó un nuevo identificador único para cada dato, permitiendo revertir el proceso, lo que indica una buena normalización de la base de datos.

    Las tablas resultantes se muestran a continuación:

    • TABLA FUTBOLISTAS


    • TABLA SELECCIONES:

    • TABLA EQUIPOS:

    • TABLA PATROCINIOS:

    • TABLA GENERAL:



    CONSULTAS EN MySQL


    Después de ingresar los datos, crear y llenar tablas normalizadas en MySQL WorkBench el diagrama entidad relación generado por el programa fue el siguiente:


    A continuación se harán algunas consultas desde la base de datos creada previamente con base en preguntas orientadoras; se mostrará primero el resultado de la consulta y luego el código que la genera, por motivos de espacio en algunas respuestas no se mostrarán todas las filas resultantes sino únicamente las primeras:

        1. ¿Qué futbolistas ganan más de 2 millones de dólares mensuales?


    El código que lo genera es el siguiente:


        2. ¿Cuál es el sueldo promedio de los futbolistas por equipo?



    El código que lo genera es el siguiente:


     3. ¿Qué futbolistas tienen un sueldo superior al promedio de su liga?



    El código que lo genera es el siguiente:




    4. ¿Cuál es la nómina más alta por división?



    El código que lo genera es el siguiente:


    5.1 ¿Qué patrocinador apoya más equipos de primera división?



    El código que lo genera es el siguiente:



    5.2 ¿Qué patrocinador apoya más equipos de cuarta división?


    El código que lo genera es el siguiente:



    5.3 ¿Cuál es el top 5 de patrocinadores y a cuántos equipos de primera división tiene cada patrocinador?


    El código que lo genera es el siguiente:


    FIN.








    Comentarios