En primer lugar, hay cinco tablas:
- CONTINENTES, una simple tabla donde se muestran todos los continentes, identificados con un campo clave, ‘ID_CONT’.
- EQUIPOS, donde se recogen todos los equipos que han participado en, al menos, un mundial, indicando su continente (que, como veremos a continuación, está relacionado con el campo clave ‘ID_CONT’, de la tabla CONTINENTES) e identificando automáticamente cada uno con el campo clave ‘ID_SEL’.
- FASE, que recoge, como se puede intuir, las fases finales de los mundiales (octavos de final, cuartos de final, semifinales, final y tercer y cuarto puesto), identificando cada una con el campo clave ‘ID_FASE’.
- MUNDIAL, tabla donde se introduce cada mundial, indicando la sede de dicho mundial, su fecha de inicio y su fecha de finalización y el ganador del mundial. Cada uno se identifica automáticamente con el campo clave ‘ID_MUNDIAL’.
- PARTIDOS, tabla más extensa de la base de datos, puesto que recoge todos los partidos de la fase final de todos los mundiales disputados (desde Uruguay 1930 hasta Brasil 2014). En ella, se introduce el mundial, las selecciones que se enfrentan, la fase que están jugando y, por supuesto, el resultado del partido. Cada partido tiene un identificador automático, que es el campo clave ‘ID_PARTIDO’.
Una vez vistas las tablas y sus estructuras, posiblemente lo más importante de la base de datos es la relación entre los campos de cada tabla, donde el identificador o campo clave de cada una juega un papel fundamental.
Como puede verse en la imagen, en general, cada campo clave de una tabla puede repetirse varias veces en un campo de datos de la otra tabla (relación ‘1’ a ‘n’). Esto nos servirá tanto para las consultas como para los formularios.
Las consultas de la base de datos son las siguientes:
Es importante analizar la estructura de consultas como PARTIDOS_FASE_FINAL, FINALES_MUNDIALES_HISTORICO, etc., que son muy parecidas (solo cambian los campos donde se elige el dato clave para ejecutar la consulta, como elegir solo las finales o los partidos donde aparezca España):
Como puede observarse, en el bloque SELECT se seleccionan los campos que se quieren mostrar en esta consulta. Cada campo viene acompañada de el identificador de la tabla (M.COPA, F.FASE, etc.), que se establece en el bloque FROM (MUNDIAL AS M, FASE AS F, etc.). Lo más significativo aquí es, por un lado, la forma de concatenar datos, como por ejemplo CONCAT(P.LGOL || ' - ' || P.VGOL), para mostrar el resultado del partido, ya que los goles del equipo local y el del visitante van separados; por otro lado, las estructuras INNER JOIN EQUIPOS AS SL ON SL.ID_SEL = P.ID_LOCAL e INNER JOIN EQUIPOS AS SV ON SV.ID_SEL = P.ID_VISITANTE permiten coger varios campos de una tabla que se relacionan con un solo campo de otra tabla y que, como hemos visto anteriormente, van relacionadas ‘1’ a ‘n’ en el grafo relacional. Por último, en el bloque WHERE introducimos las condiciones para obtener determinados datos. En este caso que el identificador de una tabla coincida con el de la otra tabla, puesto que están relacionadas. Además, en las distintas consultas que parten de esta estructura, lo único que las diferencia es el dato que queremos obtener, como que F.FASE = ‘Final’ para obtener los partidos que son finales, M.COPA = ‘Mundial 2010’ para buscar los partidos del mundial de 2010 de Sudáfrica, etc.
Por otro lado, los formularios son los siguientes:
- ALTA_CAMPEONATOS sirve para introducir los campeonatos que se han jugado, indicando los datos que se corresponden con la tabla MUNDIAL.
- ALTA_PARTIDOS sirve para introducir los partidos que se han jugado en un mundial, correspondiéndose con los campos de la tabla PARTIDOS.
- ALTA_SELECCIONES sirve para introducir nuevas selecciones indicando su continente, que se almacenarán en la tabla EQUIPOS.
Cada campo de datos en los formularios puede coger datos de otras tablas (con las relaciones entre ellas) o de consultas, especialmente de SELECCIONES_ORDENADAS y de CONTINENTES_ORDENADOS.
Por último, hay 4 informes:
Todos los informes son sacados de las distintas consultas, teniendo una apariencia muy similar entre ellos.
No hay comentarios:
Publicar un comentario