Está en la página 1de 39

BASES DE DATOS

SISTEMA DE BD PARA UN MUNDIAL DE FÚTBOL

PROFESOR
DIEGO ROA

INTEGRANTES DEL GRUPO

BECERRA QUIROGA SINDY YULIETH - 1821025862


HERNÁNDEZ TORRES JEFFRY STEVEN - 1821020140
MARTÍNEZ MOLINA JULIÁN - 1424009003
PÁEZ URBANO JUAN CAMILO - 1821025748
TINOCO HUERTAS BRYAN ALFREDO - 1811024550

INSTITUCIÓN UNIVERSITARIA POLITÉCNICO GRANCOLOMBIANO


FACULTAD DE INGENIERÍA, DISEÑO E INNOVACIÓN
2020
TABLA DE CONTENIDO

TABLA DE CONTENIDO...................................................................................................................1
OBJETIVOS........................................................................................................................................2
OBJETIVO GENERAL...................................................................................................................2
OBJETIVOS ESPECÍFICOS.........................................................................................................2
PLANTEAMIENTO DEL PROYECTO.............................................................................................3
JUSTIFICACIÓN.................................................................................................................................4
TABLA DE SUSTANTIVOS GENERAL...........................................................................................5
TABLA DE SUSTANTIVOS CANDIDATOS A ENTIDADES.........................................................6
MODELO CONCEPTUAL.........................................................................................................................7
ELEMENTOS DEL MODELO ENTIDAD - RELACIÓN..............................................................................7
DICCIONARIO DE ENTIDADES Y RELACIONES.........................................................................................8
RELACIONES.......................................................................................................................................8
ENTIDADES........................................................................................................................................9
ESQUEMA............................................................................................................................................12
FASE 1..................................................................................................................................................13
FASE 2..................................................................................................................................................14
MODELO LÓGICO.................................................................................................................................15
MODELO FÍSICO...................................................................................................................................16
REFERENCIAS BIBLIOGRÁFICAS...............................................................................................28
OBJETIVOS

OBJETIVO GENERAL

Modelar un sistema de base de datos para un mundial de futbol, donde se pueda


hacer seguimiento de los equipos, partidos y jugadores.

OBJETIVOS ESPECÍFICOS

1. Construcción del modelo conceptual, junto con tablas de sustantivos.

2. Elaboración del modelo lógico, junto con la identificación de atributos y llaves.

3. Implementación en un motor de base de datos libres.

4. Elaboración de código SQL.


PLANTEAMIENTO DEL PROYECTO

Se está construyendo una base de datos para hacer el seguimiento de los equipos y
los partidos del mundial. Un equipo tiene un determinado número de jugadores y NO
todos juegan en cada partido (11 en forma oficial y hasta 3 cambios, es decir, en
total juegan 14 jugadores a lo sumo por partido, conservando 11 jugadores en la
cancha de un total de 22 que como mínimo lleva cada país.
Es deseable hacer un seguimiento de los jugadores que disputan cada partido, por
cada equipo, llevar el registro de la posición o posiciones en las que jugaron en
cada partido por cada equipo y registrar el resultado del encuentro.
Se debe llevar el registro de los países participantes por continente, luego
organizarlos en grupos. A medida que el torneo avanza, los grupos se reestructuran
hasta llegar a los encuentros finales.
Se debe llevar un control de puntos totales. Un partido ganado vale 3 puntos.
Partidos empatados cargan un punto a cada equipo y los goles anotados por cada
equipo.
Se deben registrar los goles por jugador, las tarjetas por jugador y por equipo (rojas
y amarillas), las lesiones por jugador y por equipo, los cambios realizados por
equipo en cada juego, los jugadores dados de baja por enfermedad por equipo. Si
tiene suposiciones que usted considere que deben ser agregadas, debe describirlas
y contemplarlas.
A medida que avanza el torneo, se deben retirar los equipos que van siendo
eliminados, sin retirar de la base de datos la historia del jugador porque se usará
para hacer negociaciones sobre los pases de los jugadores.
JUSTIFICACIÓN

Con este proyecto se pretende adquirir las destrezas y conocimientos necesarios


para poder diseñar e implementar bases de datos.
Durante el proceso de las siguientes entregas, se podrá construir una BD, para
analizar y hacer seguimiento de todos los momentos en el mundial de fútbol, llevar
controles y poder validar toda la información suministrada en la base de datos.
Con la construcción de las tablas de sustantivos, el modelo conceptual y lógico, la
normalización del modelo en tercera, forma normal, así como la creación del modelo
físico, el diseño del conjunto de datos y finalmente con la elaboración del código
SQL, se podrá cargar la información del torneo y permitirá comprender cómo
funciona una base de datos, cómo se alimenta, cómo se gestiona y los diferentes
motores de base de datos dispuestos de forma libre.
Con este propósito, el proyecto busca mostrar, momento a momento la construcción
de la base de datos, y poder entender su manejo y gestión en sus determinados
ciclos, así mismo poder tener una perspectiva de cómo será el campo laboral y
entender los diferentes métodos para los procesos de gestión y construcción de
software.
TABLA DE SUSTANTIVOS GENERAL

SUSTANTIVO ADJETIVO VERBO


Arbitro roja cambiar
Partido amarilla ganar
Mundial nombre perder
País apellido empatar
Continente numero lesionar
Equipo puntos agrupar
Grupo perdido enfrentar
Final ganado posponer
Estadio empatado sancionar
Cambio eliminado clasificar
Posición expulsado jugar
Resultado clasificado eliminar
Goles jugado anotar
Tarjeta valor anular
Lesión identificación
Cambio
Jugador
Seguimiento
Fecha
Ciudad
Edad
TABLA DE SUSTANTIVOS CANDIDATOS A ENTIDADES

SUSTANTIVO ADJETIVO VERBO


Arbitro roja Sustituir
Jugador amarilla ganar
País nombre perder
Equipo apellido empatar
Grupo numero lesionar
Estadio identificación posponer
Resultado perdido sancionar
Goles ganado clasificar
Tarjeta empatado jugar
Lesión eliminado eliminar
Cambio expulsado anotar
Partido clasificado anular
Fase jugado tener
Rival anulado
anotado
continente
valor
puntos
Fecha
Ciudad
Posición
MODELO CONCEPTUAL

Este método otorgará la posibilidad de diseñar los esquemas que


posteriormente debemos implementar en un gestor de BD (bases de datos),
se expresa a través de diagramas y está formado por varios elementos.
Gracias a esto, será posible entenderlos datos y como se relacionan, para
ello, es necesario tener clara la lista de atributos y relaciones de cada
elemento.

ELEMENTOS DEL MODELO ENTIDAD - RELACIÓN

Las entidades representan cosas u objetos, (reales o abstractos), que se


diferencian claramente entre sí.
DICCIONARIO DE ENTIDADES Y RELACIONES

RELACIONES

RELACIÓN ENTIDADES QUE CARDINALIDAD


INTERVIENEN
Jugar Jugador, equipo N:1
Ganar Equipo, Partido 1:N
Perder Equipo, Partido 1:N
Empatar Equipo, Partido 1:N
Sustituir Jugador, Partido N:1
Lesionar Jugador, Partido N:1
Sancionar Jugador, arbitro N:N
Mostrar Arbitro, tarjeta N:N
Tener Jugador, tarjeta N:N
Clasificar Equipo, Fase 1:N
Pertenecer Equipo, grupo 1:N
Disputar Partido, Estadio N:1
Anotar Jugador, Goles 1:N
Generar Partido, Resultado 1:N
Eliminar Equipo, Partido 1:1
Conformar Grupos, Torneo N:N
Participar Equipos, Torneo N:1
Tiene Torneo, Cronograma 1:1
ENTIDADES

NOMBRE ENTIDAD Arbitro

DESCRIPCIÓN Tabla de los datos de los jueces

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

NomArbitro Nombre del arbitro

Apellido Apellido del arbitro

IdArbitro Código del arbitro

NOMBRE ENTIDAD Jugador

DESCRIPCIÓN Tabla de los datos de los jugadores

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

NomJugador Nombre del Jugador

Apellido Apellido del Jugador

IdJugador Código del Jugador

EquipoJugador Equipo al cual pertenece el Jugador

Posición Posición en que juega el jugador

NOMBRE ENTIDAD Equipo

DESCRIPCIÓN Tabla de los datos del Equipo

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

País País

IdEquipo Código país

DT Director Técnico

NOMBRE ENTIDAD Grupos

DESCRIPCIÓN Tabla de los datos de los Grupos

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

IdGrupo Código del grupo

LetraGrupo Letra asignada al grupo

Fechas partidos Fechas partidos

TablaPosiciones Tablas de posiciones


NOMBRE ENTIDAD Estadio

DESCRIPCIÓN Tabla de los datos del Estadio

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

IdEstadio Código del Estadio

Nombre Nombre del Estadio

Ubicación Ubicación del estadio

NOMBRE ENTIDAD Resultados

DESCRIPCIÓN Tabla de datos de resultados

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

NumPartido Número del partido

PartidoGanado Partido Ganado

PartidoPerdido Partido Perdido

PartidoEmpatado Empate

Marcador Marcador del partido

NOMBRE ENTIDAD Goles

DESCRIPCIÓN Tabla de datos de goles

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

Autor Autor del gol

GolFavor Goles a favor

GolContra Goles en contra

GolFavor Goles a favor

Autogol Autogoles

Anulado Goles anulados

NOMBRE ENTIDAD Tarjetas

DESCRIPCIÓN Tabla de datos de tarjetas

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

IdTarjeta Id de la tarjeta
Roja Tarjeta Roja

Amarilla Tarjeta Amarilla

NOMBRE ENTIDAD Partido

DESCRIPCIÓN Tabla de datos de partido

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

IdPartido Id partido

Fecha Fecha del partido

ID estadio Id Estadio

NOMBRE ENTIDAD Fase

DESCRIPCIÓN Tabla de datos de Fases

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

IdFase ID Fase

FaseGrupos Fase de grupos

Octavos Octavos de final

Cuartos Cuartos de final

Semifinal Semifinal

Final Final

NOMBRE ENTIDAD Torneo

DESCRIPCIÓN Tabla datos del campeonato

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

Idtorneo Id Torneo

SedeTorneo Sede Torneo

Continentes Continentes

Países Países

NOMBRE ENTIDAD Cronograma


DESCRIPCIÓN Tabla de datos del itinerario

ATRIBUTO DESCRIPCIÓN DEL ATRIBUTO

FechaFases Fechas de Fase

FechaPartidos Fechas Partidos

FechaSorteo Fecha Sorteo

ESQUEMA

El objetivo primordial es encontrar un esquema que sea, una representación


fidedigna, la mejor manera, es evitando valores nulos. En la etapa de
reestructuración se tienen en cuenta varios aspectos lo que genera un cambio en
los esquemas obtenidos, hasta obtener un modelo lógico final.

Esta etapa es ajena al diseño lógico, debido a la faltad de flexibilidad de los SGBD,
la primera fase es realizar un diseño lógico estándar donde cada entidad se
transforma en una tabla y los atributos de dicha entidad, en los atributos de la tabla,
posterior a eso, se pueden ver las relaciones de muchos a muchos, en donde la
tabla estará formada por la clave primaria de las entidades relacionadas,
convirtiéndose esta en una relación de muchos a muchos o de muchos a uno, y por
último las relaciones propagan la clave principal de la entidad, cuya cardinalidad es
uno a la entidad de cardinalidad n.

FASE 1

Representado en forma de tabla, se obtiene lo siguiente, (aun no normalizada):


FASE 2

Esta parte del esquema conceptual, visto anteriormente, donde se detallaron las
relaciones, entidades y atributos, el cual da como resultado un esquema lógico, el
cual es una descripción de la estructura de la base de datos en términos de las
estructuras de los datos que se pueden procesar en un tipo de SGBD, este modelo
podría decirse, que es un lenguaje usado para especificar esquemas lógicos.
Al realizar el diseño lógico de la base de datos, se hizo a través de la herramienta
Mysql, el cual se muestra a continuación.

Luego se llega a la normalización de DB, el cual es un proceso que ayuda a aplicar


una serie de reglas de las relaciones obtenidas tras el paso del modelo entidad-
relación al modelo relacional, con el objetivo de minimizar la redundancia de datos,
y también para facilitar el proceso de gestión después.

El modelo lógico representa detalladamente los requerimientos de los datos:


nombres de los atributos, los cuales están jerarquizados, dependiendo sí el atributo
corresponde a una llave primaria, el tipo de atributo ya sea integer, datetime,
varchar, texto y demás, así pues, también se determinaron las llaves foráneas y en
algunos atributos se permitieron los valores nulos.

A continuación se muestra el modelo lógico, el cual se implementa, mediante un


diagrama Entidad-Relación, el cual permite ver cuáles son las entidades (tablas),
sus atributos (campos o columnas), sus identificaciones (llave primaria) y sus
asociaciones (a través de llaves foráneas).

Este modelo se normaliza para eliminar las redundancias y generalizaciones.


MODELO LÓGICO
MODELO FÍSICO

Al momento de terminar la validación del modelo relacional se guarda como script


de creación de objetos el cual genera el Query según la lógica que se construyó el
modelo relacional, creando las tablas que corresponden a las entidades del
modelo y vinculando cada tabla hija con su respectiva tabla padre, a través de
la llave principal de la tabla padre, la cual se toma como llave foránea en la
tabla hija, con lo cual se genera el script de creación, el cual es el siguiente:

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;


SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN
_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUB
STITUTION';

-- -----------------------------------------------------
-- Schema mundialcolombia
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mundialcolombia
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mundialcolombia` DEFAULT CHARACTER
SET utf8 ;
USE `mundialcolombia` ;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`continentes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`continentes` (
`idcontinentes` INT NOT NULL,
`nombrecontinente` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`idcontinentes`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`paises`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`paises` (
`idpaises` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nombrepais` VARCHAR(45) NULL DEFAULT NULL,
`continentes_idcontinentes` INT NOT NULL,
PRIMARY KEY (`idpaises`),
CONSTRAINT `fk_paises_continentes1`
FOREIGN KEY (`continentes_idcontinentes`)
REFERENCES `mundialcolombia`.`continentes` (`idcontinentes`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_paises_continentes1_idx` ON `mundialcolombia`.`paises`


(`continentes_idcontinentes` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`ciudades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`ciudades` (
`idciudades` INT NOT NULL,
`nombreciudad` VARCHAR(45) NOT NULL,
`paises_idpaises1` INT UNSIGNED NOT NULL,
PRIMARY KEY (`idciudades`),
CONSTRAINT `fk_ciudades_paises1`
FOREIGN KEY (`paises_idpaises1`)
REFERENCES `mundialcolombia`.`paises` (`idpaises`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_ciudades_paises1_idx` ON `mundialcolombia`.`ciudades`


(`paises_idpaises1` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`estadios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`estadios` (
`idestadio` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`NombreEstadio` VARCHAR(45) NOT NULL,
`aforo` INT NOT NULL,
`ciudades_idciudades` INT NOT NULL,
PRIMARY KEY (`idestadio`),
CONSTRAINT `fk_estadio_ciudades1`
FOREIGN KEY (`ciudades_idciudades`)
REFERENCES `mundialcolombia`.`ciudades` (`idciudades`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 11
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_estadio_ciudades1_idx` ON `mundialcolombia`.`estadios`


(`ciudades_idciudades` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`cronograma`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`cronograma` (
`idfechapartidos` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`torneo_idtorneo` INT NOT NULL,
`fechapartidos` DATETIME NOT NULL,
PRIMARY KEY (`idfechapartidos`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_cronograma_torneo1_idx` ON `mundialcolombia`.`cronograma`


(`torneo_idtorneo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`alquiler`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`alquiler` (
`idalquiler` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`fechaalquiler` DATE NULL DEFAULT NULL,
`precioalquiler` INT NOT NULL,
`estadio_idestadio` INT UNSIGNED NOT NULL,
`cronograma_idfechapartidos` INT UNSIGNED NOT NULL,
PRIMARY KEY (`idalquiler`),
CONSTRAINT `fk_alquiler_estadio1`
FOREIGN KEY (`estadio_idestadio`)
REFERENCES `mundialcolombia`.`estadios` (`idestadio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_alquiler_cronograma1`
FOREIGN KEY (`cronograma_idfechapartidos`)
REFERENCES `mundialcolombia`.`cronograma` (`idfechapartidos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 11
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_alquiler_estadio1_idx` ON `mundialcolombia`.`alquiler`


(`estadio_idestadio` ASC) VISIBLE;

CREATE INDEX `fk_alquiler_cronograma1_idx` ON `mundialcolombia`.`alquiler`


(`cronograma_idfechapartidos` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`arbitros`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`arbitros` (
`idarbitro` INT NOT NULL,
`nombre` VARCHAR(20) NOT NULL,
`apellido` VARCHAR(20) NOT NULL,
PRIMARY KEY (`idarbitro`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`clasificacion`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`clasificacion` (
`idclasificacion` INT NOT NULL,
`statusclasificacion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idclasificacion`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`grupos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`grupos` (
`idgrupo` INT NOT NULL,
`letraGrupo` VARCHAR(5) NOT NULL,
`tablaPosiciones` INT NULL DEFAULT NULL,
`puntos` INT NULL DEFAULT NULL,
PRIMARY KEY (`idgrupo`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `mundialcolombia`.`resultados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`resultados` (
`idresultado` INT NOT NULL,
`marcador` VARCHAR(10) NULL,
PRIMARY KEY (`idresultado`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`taquilla`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`taquilla` (
`idtaquilla` INT NOT NULL,
`precioboleta` INT NOT NULL,
`estadios_idestadio` INT(5) UNSIGNED NOT NULL,
`cronograma_idfechapartidos` INT UNSIGNED NOT NULL,
PRIMARY KEY (`idtaquilla`),
CONSTRAINT `fk_taquilla_estadios1`
FOREIGN KEY (`estadios_idestadio`)
REFERENCES `mundialcolombia`.`estadios` (`idestadio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_taquilla_cronograma1`
FOREIGN KEY (`cronograma_idfechapartidos`)
REFERENCES `mundialcolombia`.`cronograma` (`idfechapartidos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE INDEX `fk_taquilla_estadios1_idx` ON `mundialcolombia`.`taquilla`


(`estadios_idestadio` ASC) VISIBLE;

CREATE INDEX `fk_taquilla_cronograma1_idx` ON `mundialcolombia`.`taquilla`


(`cronograma_idfechapartidos` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`partidos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`partidos` (
`idpartido` INT NOT NULL,
`resultados_idresultado` INT NOT NULL,
`cronograma_idfechapartidos` INT UNSIGNED NOT NULL,
`ciudades_idciudades` INT NOT NULL,
`equipos_idequipo` INT UNSIGNED NOT NULL,
`grupos_idgrupo` INT NOT NULL,
`estadios_idestadio` INT(5) UNSIGNED NOT NULL,
`taquilla_idtaquilla` INT NOT NULL,
PRIMARY KEY (`idpartido`),
CONSTRAINT `fk_partidos_resultados1`
FOREIGN KEY (`resultados_idresultado`)
REFERENCES `mundialcolombia`.`resultados` (`idresultado`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_cronograma1`
FOREIGN KEY (`cronograma_idfechapartidos`)
REFERENCES `mundialcolombia`.`cronograma` (`idfechapartidos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_ciudades1`
FOREIGN KEY (`ciudades_idciudades`)
REFERENCES `mundialcolombia`.`ciudades` (`idciudades`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_equipos1`
FOREIGN KEY (`equipos_idequipo`)
REFERENCES `mundialcolombia`.`equipos` (`idequipo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_grupos1`
FOREIGN KEY (`grupos_idgrupo`)
REFERENCES `mundialcolombia`.`grupos` (`idgrupo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_estadios1`
FOREIGN KEY (`estadios_idestadio`)
REFERENCES `mundialcolombia`.`estadios` (`idestadio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_partidos_taquilla1`
FOREIGN KEY (`taquilla_idtaquilla`)
REFERENCES `mundialcolombia`.`taquilla` (`idtaquilla`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_partidos_resultados1_idx` ON `mundialcolombia`.`partidos`


(`resultados_idresultado` ASC) VISIBLE;
CREATE INDEX `fk_partidos_cronograma1_idx` ON `mundialcolombia`.`partidos`
(`cronograma_idfechapartidos` ASC) VISIBLE;

CREATE INDEX `fk_partidos_ciudades1_idx` ON `mundialcolombia`.`partidos`


(`ciudades_idciudades` ASC) VISIBLE;

CREATE INDEX `fk_partidos_equipos1_idx` ON `mundialcolombia`.`partidos`


(`equipos_idequipo` ASC) VISIBLE;

CREATE INDEX `fk_partidos_grupos1_idx` ON `mundialcolombia`.`partidos`


(`grupos_idgrupo` ASC) VISIBLE;

CREATE INDEX `fk_partidos_estadios1_idx` ON `mundialcolombia`.`partidos`


(`estadios_idestadio` ASC) VISIBLE;

CREATE INDEX `fk_partidos_taquilla1_idx` ON `mundialcolombia`.`partidos`


(`taquilla_idtaquilla` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`equipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`equipos` (
`idequipo` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`grupos_idgrupo` INT NOT NULL,
`paises_idpaises` INT UNSIGNED NOT NULL,
`partidos_idpartido` INT NOT NULL,
PRIMARY KEY (`idequipo`),
CONSTRAINT `fk_equipos_grupos1`
FOREIGN KEY (`grupos_idgrupo`)
REFERENCES `mundialcolombia`.`grupos` (`idgrupo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_equipos_paises1`
FOREIGN KEY (`paises_idpaises`)
REFERENCES `mundialcolombia`.`paises` (`idpaises`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_equipos_partidos1`
FOREIGN KEY (`partidos_idpartido`)
REFERENCES `mundialcolombia`.`partidos` (`idpartido`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 17
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_equipos_grupos1_idx` ON `mundialcolombia`.`equipos`


(`grupos_idgrupo` ASC) VISIBLE;

CREATE INDEX `fk_equipos_paises1_idx` ON `mundialcolombia`.`equipos`


(`paises_idpaises` ASC) VISIBLE;

CREATE INDEX `fk_equipos_partidos1_idx` ON `mundialcolombia`.`equipos`


(`partidos_idpartido` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`directortecnico`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`directortecnico` (
`iddirectorTecnico` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(45) NULL DEFAULT NULL,
`apellido` VARCHAR(45) NULL DEFAULT NULL,
`equipos_idequipo` INT UNSIGNED NOT NULL,
PRIMARY KEY (`iddirectorTecnico`),
CONSTRAINT `fk_directortecnico_equipos1`
FOREIGN KEY (`equipos_idequipo`)
REFERENCES `mundialcolombia`.`equipos` (`idequipo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 17
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_directortecnico_equipos1_idx` ON


`mundialcolombia`.`directortecnico` (`equipos_idequipo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`torneo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`torneo` (
`idtorneo` INT NOT NULL,
`sedeTorneo` VARCHAR(45) NOT NULL,
`cronograma_idfechapartidos` INT NOT NULL,
PRIMARY KEY (`idtorneo`),
CONSTRAINT `fk_torneo_cronograma1`
FOREIGN KEY (`cronograma_idfechapartidos`)
REFERENCES `mundialcolombia`.`cronograma` (`idfechapartidos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_torneo_cronograma1_idx` ON `mundialcolombia`.`torneo`


(`cronograma_idfechapartidos` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`fases`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`fases` (
`idfase` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nombrefase` VARCHAR(45) NOT NULL,
`torneo_idtorneo` INT NOT NULL,
PRIMARY KEY (`idfase`),
CONSTRAINT `fk_fases_torneo1`
FOREIGN KEY (`torneo_idtorneo`)
REFERENCES `mundialcolombia`.`torneo` (`idtorneo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 5
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_fases_torneo1_idx` ON `mundialcolombia`.`fases`


(`torneo_idtorneo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`posición`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`posición` (
`idposición` INT NOT NULL,
`nombreposición` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idposición`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`jugadores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`jugadores` (
`idjugador` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(20) NOT NULL,
`apellido` VARCHAR(20) NOT NULL,
`posición_idposición` INT NOT NULL,
`equipos_idequipo` INT UNSIGNED NOT NULL,
PRIMARY KEY (`idjugador`),
CONSTRAINT `fk_jugadores_posición1`
FOREIGN KEY (`posición_idposición`)
REFERENCES `mundialcolombia`.`posición` (`idposición`),
CONSTRAINT `fk_jugadores_equipos1`
FOREIGN KEY (`equipos_idequipo`)
REFERENCES `mundialcolombia`.`equipos` (`idequipo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_jugadores_posición1_idx` ON `mundialcolombia`.`jugadores`


(`posición_idposición` ASC) VISIBLE;
CREATE INDEX `fk_jugadores_equipos1_idx` ON `mundialcolombia`.`jugadores`
(`equipos_idequipo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`goles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`goles` (
`idgoles` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`tipogol` VARCHAR(45) NOT NULL,
`jugadores_idjugador1` INT UNSIGNED NOT NULL,
`partidos_idpartido` INT NOT NULL,
PRIMARY KEY (`idgoles`),
CONSTRAINT `fk_goles_jugadores1`
FOREIGN KEY (`jugadores_idjugador1`)
REFERENCES `mundialcolombia`.`jugadores` (`idjugador`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_goles_partidos1`
FOREIGN KEY (`partidos_idpartido`)
REFERENCES `mundialcolombia`.`partidos` (`idpartido`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_goles_jugadores1_idx1` ON `mundialcolombia`.`goles`


(`jugadores_idjugador1` ASC) VISIBLE;

CREATE INDEX `fk_goles_partidos1_idx` ON `mundialcolombia`.`goles`


(`partidos_idpartido` ASC) VISIBLE;
-- -----------------------------------------------------
-- Table `mundialcolombia`.`novedades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`novedades` (
`idnovedad` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`tiponovedad` VARCHAR(45) NOT NULL,
`fechainicionovedad` DATE NULL,
`fechafinnovedad` DATE NULL,
PRIMARY KEY (`idnovedad`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`tarjetas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`tarjetas` (
`idtarjeta` INT NOT NULL,
`color` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtarjeta`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`grupos-torneo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`grupos-torneo` (
`grupos_idgrupo` INT NOT NULL,
`torneo_idtorneo` INT NOT NULL,
PRIMARY KEY (`grupos_idgrupo`, `torneo_idtorneo`),
CONSTRAINT `fk_grupos_has_torneo_grupos1`
FOREIGN KEY (`grupos_idgrupo`)
REFERENCES `mundialcolombia`.`grupos` (`idgrupo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_grupos_has_torneo_torneo1`
FOREIGN KEY (`torneo_idtorneo`)
REFERENCES `mundialcolombia`.`torneo` (`idtorneo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_grupos_has_torneo_torneo1_idx` ON


`mundialcolombia`.`grupos-torneo` (`torneo_idtorneo` ASC) VISIBLE;

CREATE INDEX `fk_grupos_has_torneo_grupos1_idx` ON


`mundialcolombia`.`grupos-torneo` (`grupos_idgrupo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`novedades-jugadores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`novedades-jugadores` (
`novedades_idnovedad` INT NOT NULL,
`jugadores_idjugador` INT UNSIGNED NOT NULL,
PRIMARY KEY (`novedades_idnovedad`, `jugadores_idjugador`),
CONSTRAINT `fk_novedades_has_jugadores_novedades1`
FOREIGN KEY (`novedades_idnovedad`)
REFERENCES `mundialcolombia`.`novedades` (`idnovedad`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_novedades_has_jugadores_jugadores1`
FOREIGN KEY (`jugadores_idjugador`)
REFERENCES `mundialcolombia`.`jugadores` (`idjugador`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_novedades_has_jugadores_jugadores1_idx` ON


`mundialcolombia`.`novedades-jugadores` (`jugadores_idjugador` ASC) VISIBLE;

CREATE INDEX `fk_novedades_has_jugadores_novedades1_idx` ON


`mundialcolombia`.`novedades-jugadores` (`novedades_idnovedad` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`tarjetas-jugadores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`tarjetas-jugadores` (
`tarjetas_idtarjeta` INT NOT NULL,
`jugadores_idjugador` INT UNSIGNED NOT NULL,
PRIMARY KEY (`tarjetas_idtarjeta`, `jugadores_idjugador`),
CONSTRAINT `fk_tarjetas_has_jugadores_tarjetas1`
FOREIGN KEY (`tarjetas_idtarjeta`)
REFERENCES `mundialcolombia`.`tarjetas` (`idtarjeta`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_tarjetas_has_jugadores_jugadores1`
FOREIGN KEY (`jugadores_idjugador`)
REFERENCES `mundialcolombia`.`jugadores` (`idjugador`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_tarjetas_has_jugadores_jugadores1_idx` ON


`mundialcolombia`.`tarjetas-jugadores` (`jugadores_idjugador` ASC) VISIBLE;

CREATE INDEX `fk_tarjetas_has_jugadores_tarjetas1_idx` ON


`mundialcolombia`.`tarjetas-jugadores` (`tarjetas_idtarjeta` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`equipos-clasificacion`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`equipos-clasificacion` (
`equipos_idequipo` INT UNSIGNED NOT NULL,
`clasificacion_idclasificacion` INT NOT NULL,
PRIMARY KEY (`equipos_idequipo`, `clasificacion_idclasificacion`),
CONSTRAINT `fk_equipos_has_clasificacion_equipos1`
FOREIGN KEY (`equipos_idequipo`)
REFERENCES `mundialcolombia`.`equipos` (`idequipo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_equipos_has_clasificacion_clasificacion1`
FOREIGN KEY (`clasificacion_idclasificacion`)
REFERENCES `mundialcolombia`.`clasificacion` (`idclasificacion`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX `fk_equipos_has_clasificacion_clasificacion1_idx` ON


`mundialcolombia`.`equipos-clasificacion` (`clasificacion_idclasificacion` ASC)
VISIBLE;

CREATE INDEX `fk_equipos_has_clasificacion_equipos1_idx` ON


`mundialcolombia`.`equipos-clasificacion` (`equipos_idequipo` ASC) VISIBLE;

-- -----------------------------------------------------
-- Table `mundialcolombia`.`arbitros-partidos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mundialcolombia`.`arbitros-partidos` (
`arbitros_idarbitro` INT NOT NULL,
`partidos_idpartido` INT NOT NULL,
PRIMARY KEY (`arbitros_idarbitro`, `partidos_idpartido`),
CONSTRAINT `fk_arbitros_has_partidos_arbitros1`
FOREIGN KEY (`arbitros_idarbitro`)
REFERENCES `mundialcolombia`.`arbitros` (`idarbitro`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_arbitros_has_partidos_partidos1`
FOREIGN KEY (`partidos_idpartido`)
REFERENCES `mundialcolombia`.`partidos` (`idpartido`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
CREATE INDEX `fk_arbitros_has_partidos_partidos1_idx` ON
`mundialcolombia`.`arbitros-partidos` (`partidos_idpartido` ASC) VISIBLE;

CREATE INDEX `fk_arbitros_has_partidos_arbitros1_idx` ON


`mundialcolombia`.`arbitros-partidos` (`arbitros_idarbitro` ASC) VISIBLE;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

CONSULTAS SOLICITADAS:

CONSULTAS

SELECT * FROM mundialcolombia.alquiler


inner join mundialcolombia.estadios
on mundialcolombia.alquiler.idalquiler = mundialcolombia.estadios.idestadio order by
fechaalquiler asc;

10 row(s) returned

select nombreestadio, nombreciudad from mundialcolombia.estadios inner join


mundialcolombia.ciudades where estadios.ciudades_idciudades =
ciudades.idciudades

10 row(s) returned
SELECT idpartido, letraGrupo, nombreciudad, fechapartidos from partidos
INNER JOIN grupos
ON partidos.grupos_idgrupo = grupos.idgrupo
INNER JOIN ciudades
ON partidos.ciudades_idciudades = ciudades.idciudades
INNER JOIN cronograma
on partidos.cronograma_idfechapartidos = cronograma.idfechapartidos order by
letragrupo asc;

15 row(s) returned

SELECT idpartido, letraGrupo, nombreciudad as Ciudad, precioboleta as


Valor_Boleta, NombreEstadio as Estadio, aforo, aforo * precioboleta as 'total' from
partidos
INNER JOIN grupos
ON partidos.grupos_idgrupo = grupos.idgrupo
INNER JOIN ciudades
ON partidos.ciudades_idciudades = ciudades.idciudades
INNER JOIN taquilla
ON partidos.taquilla_idtaquilla = taquilla.idtaquilla
INNER JOIN cronograma
on partidos.cronograma_idfechapartidos = cronograma.idfechapartidos
INNER JOIN estadios
ON partidos.estadios_idestadio = estadios.idestadio order by letragrupo asc;
REFERENCIAS BIBLIOGRÁFICAS

Tomado de : https://poli.instructure.com/courses/13165/files/7276206?
module_item_id=626609,
Mayo de 2020.

Tomado de: https://virtual.itca.edu.sv/Mediadores/dbd/u1/22_normalizacin.html, Junio de 2020.

Tomado de https://www.mysql.com/, Junio de 2020.

Tomado de https://www.emtelco.com.co/sites/default/files/2017-03/disenoBD.pdf, Junio de


2020.

También podría gustarte