Está en la página 1de 13

Bases de Datos

Base de datos mundial de Rusia 2018

Docente Bases de Datos

Facultad de Ingeniería y Ciencias Básicas

Bogotá

2019
Diagrama Conceptual DataBase Mundial de Fútbol Rusia 2018

Tabla de sustantivos

Tabla de sustantivos general


Atributos (Adjetivos) Entidades (Nombres o sustantivos) Relaciones (Verbos)
Número de jugadores Equipos tiene
Cambios Partidos juegan
País Jugadores Disputan
Registro posiciones Jugador Encuentro (Partido) Llevar
Registrar resultado Continente Organizar
Registro países Grupos Hace
Partidos jugados Pertenece
Partido ganado
Partido empatado
Partidos perdidos
Goles a favor
Goles en contra
Puntos totales
Goles por jugador
Tarjetas por jugador
Lesiones por jugador
Lesiones por equipo
Cambios realizados por equipo
Jugadores dados de baja por equipo
Tabla sustantivos candidatos

SUSTANTIVO Entidad: Grupos


ATRIBUTOS (ADJETIVOS) PK:ID_Grupo NombreGrupo
1A
REGISTROS 2B
3C
4D
5E
6F
7G
8H

SUSTANTIVO Entidad: Continente


ATRIBUTOS (ADJETIVOS) PK: ID_Continente NombreContinente
50 Europa
REGISTROS 51 Europa
52 Europa
53 Sur América
54 Sur América
55 Europa
56 Europa
57 Sur América

SUSTANTIVO Entidad: Equipo


ATRIBUTOS (ADJETIVOS) PK:ID_Equipo FK:ID_Grupo FK:ID_Continente NombreEquipo PartidosJugados PartidosGanados PartidosEmpatados PartidosPerdidos GolesaFavor GolesEnContra TotalPuntos TarjetasAmarillas TarjetasRojas
100 1 50 Russia 5 3 0 2 11 7 9 6 1
REGISTROS 101 2 51 Portugal 4 1 2 1 6 6 5 7 0
102 3 52 Francia 7 6 1 0 14 6 19 12 0
103 4 53 Argentina 4 1 1 2 6 9 4 11 0
104 5 54 Brasil 5 3 1 1 8 3 10 7 0
105 6 55 Alemania 3 1 0 2 2 4 3 2 1
106 7 56 Inglaterra 7 4 0 3 12 8 12 8 0
107 8 57 colombia 4 2 0 2 6 3 6 9 1

SUSTANTIVO Entidad: Jugador


ATRIBUTOS (ADJETIVOS) PK:CodigoJugador FK:ID_Equipo NombreJugador EdadJugador NumeroCamiseta TarjetasAmarillas TarjetasRojas PosicionPartido GolesAnotados
300 100 Denis Cheryshev 28 6 0 0 CentroCampista 4
REGISTROS 301 101 Cristiano Ronaldo 34 7 2 0 Delantero 4
302 102 Antoine Griezmann 28 7 0 0 Delantero 4
303 103 Lionel Messi 31 10 1 0 Delantero 1
304 104 Neymar Santos 27 10 1 0 Delantero 2
305 105 Toni Kroos 29 8 0 0 CentroCampista 1
306 106 Harry Kane 25 9 0 0 Delantero 6
307 107 Yerry Mina 24 13 0 0 Defensa 3

SUSTANTIVO Entidad: Partido


ATRIBUTOS (ADJETIVOS) PK:ID_Partido FK:CodigoJugador FasePartido FechaPartido NombrePartido MarcadorPartido
200 300 Octavos 1/07/2018 Rusia vs España 1 a1
REGISTROS 201 301 Octavos 30/06/2018 Uruguay vs Portugal 2a1
202 302 Final 15/07/2018 Francia vs Croacia 4a2
203 303 Octavos 30/06/2018 Francia vs Argentina 4a3
204 304 Cuartos 6/07/2018 Bélgica vs Brasil 2a1
205 305 Jornada1 17/06/2018 México vs Alemania 1a0
206 306 Semifinal 11/07/2018 Croacia vs Inglaterra 2a1
207 307 Octavos 3/07/2018 Colombia vs Inglaterra 1 a1

SUSTANTIVO Entidad Débil: Goles_Partido


ATRIBUTOS (ADJETIVOS) FK:ID_Goles FK:ID_Partido
250 200
REGISTROS 251 201
252 202
253 203
254 204
255 205
256 206
257 207

SUSTANTIVO Entidad: Goles


ATRIBUTOS (ADJETIVOS) PK:ID_Goles NumeroGolesAnotados NumeroGolesAnulados
250 11 0
REGISTROS 251 6 0
252 14 0
253 6 0
254 8 0
255 2 0
256 12 0
257 6 0

Modelo Lógico DataBase Mundial de Fútbol Rusia 2018 (DIAGRAMA)


Scripts DataBase Mundial
-- -----------------------------------------------------
-- Schema MundialRusiaDB
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `MundialRusiaDB` DEFAULT CHARACTER SET utf8 ;
USE `MundialRusiaDB` ;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Grupos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Grupos` (
`ID_Grupo` INT NOT NULL,
`NombreGrupo` VARCHAR(1) NOT NULL,
PRIMARY KEY (`ID_Grupo`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Continente`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Continente` (
`ID_Continente` INT NOT NULL,
`NombreContinente` VARCHAR(15) NOT NULL,
PRIMARY KEY (`ID_Continente`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Equipo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Equipo` (
`ID_Equipo` INT NOT NULL,
`ID_Grupo` INT NOT NULL,
`ID_Continente` INT NOT NULL,
`NombreEquipo` VARCHAR(40) NOT NULL,
`PartidosJugados` INT NOT NULL,
`PartidosGanados` INT NOT NULL,
`PartidosEmpatados` INT NOT NULL,
`PartidosPerdidos` INT NOT NULL,
`GolesaFavor` INT NOT NULL,
`GolesEnContra` INT NOT NULL,
`TotalPuntos` INT NOT NULL,
`TarjetasAmarillas` INT NOT NULL,
`TarjetasRojas` INT NOT NULL,
PRIMARY KEY (`ID_Equipo`),
INDEX `ID_Grupo_idx` (`ID_Grupo` ASC),
INDEX `ID_Continente_idx` (`ID_Continente` ASC),
CONSTRAINT `ID_Grupo`
FOREIGN KEY (`ID_Grupo`)
REFERENCES `MundialRusiaDB`.`Grupos` (`ID_Grupo`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `ID_Continente`
FOREIGN KEY (`ID_Continente`)
REFERENCES `MundialRusiaDB`.`Continente` (`ID_Continente`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Jugador`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Jugador` (
`CodigoJugador` INT NOT NULL,
`ID_Equipo` INT NOT NULL,
`NombreJugador` VARCHAR(45) NOT NULL,
`EdadJugador` INT NOT NULL,
`NumeroCamiseta` INT NOT NULL,
`TarjetasAmarillas` INT NOT NULL,
`TarjetasRojas` INT NOT NULL,
`PosicionPartido` VARCHAR(45) NOT NULL,
`GolesAnotados` INT NOT NULL,
PRIMARY KEY (`CodigoJugador`),
INDEX `ID_Equipo_idx` (`ID_Equipo` ASC),
CONSTRAINT `ID_Equipo`
FOREIGN KEY (`ID_Equipo`)
REFERENCES `MundialRusiaDB`.`Equipo` (`ID_Equipo`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Partido`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Partido` (
`ID_Partido` INT NOT NULL,
`CodigoJugador` INT NOT NULL,
`FasePartido` VARCHAR(45) NOT NULL,
`FechaPartido` DATE NOT NULL,
`NombrePartido` VARCHAR(50) NOT NULL,
`MarcadorPartido` VARCHAR(10) NOT NULL,
PRIMARY KEY (`ID_Partido`),
INDEX `CodigoJugador_idx` (`CodigoJugador` ASC),
CONSTRAINT `CodigoJugador`
FOREIGN KEY (`CodigoJugador`)
REFERENCES `MundialRusiaDB`.`Jugador` (`CodigoJugador`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Goles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Goles` (
`ID_Goles` INT NOT NULL,
`NumeroGolesAnotados` INT NOT NULL,
`NumeroGolesAnulados` INT NOT NULL,
PRIMARY KEY (`ID_Goles`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `MundialRusiaDB`.`Goles_Partido`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MundialRusiaDB`.`Goles_Partido` (
`ID_Goles` INT NOT NULL,
`ID_Partido` INT NOT NULL,
INDEX `ID_Goles_idx` (`ID_Goles` ASC),
INDEX `ID_Partido_idx` (`ID_Partido` ASC),
CONSTRAINT `ID_Goles`
FOREIGN KEY (`ID_Goles`)
REFERENCES `MundialRusiaDB`.`Partido` (`ID_Partido`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `ID_Partido`
FOREIGN KEY (`ID_Partido`)
REFERENCES `MundialRusiaDB`.`Goles` (`ID_Goles`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Script para poblar las tablas de datos:

Script Tabla Grupos:

Script Tabla Continente:


Script Tabla Equipo:

Script Tabla jugador:


Script Tabla partido:

Script Tabla goles:


Script para actualizar el número de camiseta de un jugador:

Script para borrar un partido:


Script para actualizar un gol anotado por un gol anulado:

Script para ¿Cuál es el jugador más joven que anotó un gol?


¿En qué equipo juega el jugador de nombre x?

¿Cuántos partidos ha jugado el jugador de número de camiseta x?

¿Quién es el máximo goleador de la copa y en qué equipo juega?

¿Qué equipo recibió menos goles en contra?


¿Cuál es el equipo que más tarjetas rojas acumuló?

¿Cuál el equipo que más tarjetas amarillas acumuló?

¿Cuántos partidos dieron como resultado empate?

¿Cuál es la tabla de equipo, partidos ganados, partidos perdidos, partidos empatados, goles
a favor, goles en contra, puntos acumulados?

También podría gustarte