Sunteți pe pagina 1din 15

Primea Entrega Diseño BDD

Base de Datos para torneol de Fútbol

Wilmer Vásquez Parra N° 1721024208


Luis F Rojas Código N° 1711022531
Angie P. Narvaez P. N° 1921982589

Ingeniería de Software
Departamento de Ciencias Básicas
Politécnico Grancolombiano
Calle 57# 3-00 este, Bogotá
Bogotá,14 de septiembre 2019

INTRODUCCIÓN

Una base de datos se diseña para contener la información relativa a l proyecto,


buscando sea eficiente para almacenar toda la información con la menor cantidad
de redundancias posibles, que sea congruente con los sustantivos hallados en el
requerimiento y que sea de facil escalamiento y mantenimiento. Todo esto es un
ejercicio de iteración entre las diferentes posibilidades para encontrar la forma ideal.
Sin embargo, existen normas que permiten evaluar el rendimiento de la Base de
Datos para que el ejercicio tenga un resultado consistente y su eficiencia validez
científica.

En esta primera entrega buscamos definir claramente nuestro proyecto en donde


documentaremos, la descripción y formulación del problema, objetivos, roles y
estrategias, de tal manera que al finalizar este documento todos los integrantes de
nuestro equipo de trabajo contaremos con el enfoque necesario para la planificación
y desarrollo de la base de datos.

DESCRIPCIÓN DEL PROBLEMA

Actualmente un sector del comercio que brinda el fomento a la práctica del deporte
y a su vez recreación e interacción entre miembros de una comunidad general o
privada son las llamadas canchas de futbol 5 que han venido creciendo en número
en la ciudad, desde la primera cancha que se inauguró en el año 2002 hoy en día
se desconoce el número de estas ya que no se concentran en un gremio especifico
y muchas son de particulares es casi imposible decir un número exacto de las cuales
están en funcionamiento.
Por esta misma razón hemos evidenciado que hay un fuerte campo de acción a
nivel de automatización de algunos de sus procesos, es por esto que se realizó un
levantamiento de información a los posibles problemas que se puedan presentar en
su funcionamiento.
Se evidencio que en la realización de torneos cortos que organizan este tipo de
corporaciones desde la inscripción de equipos, jugadores y todo el funcionamiento
en general se realiza bajo el esquema de papel y archivo lo que hace que este sea
un tanto dispendioso y a la vez anticuado con respecto a todos las ayudas que se
tienen actualmente a nivel informático es por esto que se buscara un mecanismo en
el cual se pueda efectuar este tipo de procesos de una manera más rápida, efectiva
y con ayuda de un desarrollo que permita la interacción de todos sus actores.
FORMULACION DEL PROBLEMA

¿Cómo afecta a las corporaciones o negocios de futbol 5 la no automatización en la


organización de torneos cortos?

Desde un punto de vista general podemos decir que hay varios factores a evaluar
en este caso, según las evidencias recolectadas se realizó un análisis de todos los
aspectos que se podrían mejorar o cambiar en los procesos que involucra un torneo
y todo lo que esto conlleva.
Hasta el momento la mayoría de los encuestados ha revelado que estos procesos
se realizan por medio de formularios y planillas las cuales son llenadas por
diferentes personas y muchas veces son manipuladas por otras más, igualmente
los marcadores, faltas cometidas y lista de jugadores son realizadas en planillas que
pueden perderse o dañarse durante los traslados o generarse algún cambio con
fines lucrativos, es por esto que se busca la forma de automatizar y generar una
manera más organizada y detallada en la inscripción, autorización, organización de
fechas de juegos, marcadores y tabla de posiciones donde tanto el organizador
como los inscritos tengan información detallada en tiempo real por medio de una
plataforma informática.

JUSTIFICACIÓN
El diseño de bases de datos es una parte fundamental de la programación porque
es casi imposible crear una aplicación sin contener algún tipo de información y
cuando esta información tiene un determinado volumen, ya no es razonable
manejarla implícita en el código, para ello es necesario crear un componente
independiente que contenga la información que se va a manejar.
Las bases de datos se pueden desarrollar en muchos motores Un Sistema Gestor
de Base de Datos (SGBD) o DataBase Managenent System (DBMS) es un sistema
que permite la creación, gestión y administración de bases de datos, así como la
elección y manejo de las estructuras necesarias para el almacenamiento y
búsqueda de información del modo más eficiente posible.

OBJETIVO GENERAL

Establecer relaciones o vínculos entre los datos, imaginando una tabla aparte por
cada relación existente con sus propios registros y atributos.
• No relacionales (NoSQL)
• No requiere de estructuras de datos fijas como tablas
• No garantiza completamente las características ACID
• Escala muy bien horizontalmente.
• Se utilizan en entornos distribuidos que han de estar siempre disponibles y
operativos y que gestionan un importante volumen de datos.

OBJETIVO ESPECIFICOS

● Construir 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 de 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).

● 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 restructuran hasta
llegar a los encuentros finales.

● Controlar los puntos totales de la siguiente manera, un partido ganado vale


3 puntos, partidos empatados cargan un punto a cada equipo. los goles
anotados, por partido. En la tabla general debe llevar el registro de los
partidos jugados, partidos ganados, partidos empatados, partidos perdidos,
los goles anotados, los goles recibidos, los goles a favor y el puntaje total.

● 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 quiera agregar, debe describirlas y
contemplarlas.

ROLES Y ESPECIFICACIONES DEL EQUIPO

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 de 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 restructuran 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. los goles anotados, por partido.
En la tabla general debe llevar el registro de los partidos jugados, partidos ganados,
partidos empatados, partidos perdidos, los goles anotados, los goles recibidos, los
goles a favor y el puntaje total.
Se debe 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 quiera agregar, debe describirlas y contemplarlas.

• Equipos
• Grupos
• Partidos jugados
• Partidos ganados
• Partidos empatados
• Partidos perdidos
• Goles anotados
• Goles recibidos
• Goles a favor
• Puntaje total
• País
• Continente
• Partidos
• Resultado del encuentro
• Fecha
• Sede
• Resultado
• Local
• Visitante
• Jugadores
• Goles por jugador
• Las tarjetas por jugador
• Lesiones por jugador
• Por equipo
• Los cambios
• Posición en las que jugaron
• Incidencias del partido
• Ingreso jugadores
• Tarjetas
• Goles
• Cambios

De la anterior lista de sustantivos, todos ellos obtenidos de los requerimientos que


tenemos para la consolidación de esta base de datos, hemos obtenido una lista de
sustantivos entidades, con sus respectivos atributos, esto teniendo en cuenta el rol
que cada uno de ellos tomara en la base de datos, y las relaciones que se
establecen entre ellos; A continuación, tenemos una explicación del porque
seleccionamos cada una de las entidades y sus respectivos atributos.

● Equipos
Un equipo tiene una serie de características previas a su participación y que se
mantienen durante todo el torneo, éstas son las que definen esta entidad, sin
embargo, durante el torneo es importante por facilidad de consulta almacenar la
información más relevante que se genera durante el torneo. Para esta entidad los
atributos seleccionados son todos y cada uno de los aspectos relacionados con los
equipos, que debemos incluir en la base de datos; como lo son: país, grupo,
continente, estadísticas de partidos, así como el conteo de los goles marcados y
recibidos. Las cuales son características relacionadas directamente con los equipos
del torneo.
● Personas
Si bien el torneo se compone de equipos de fútbol, y los equipos en su mayoría se
componen de jugadores de fútbol, crear una entidad con el nombre de jugadores,
limita sus posibilidades. En cambio crear una entidad que contenga todos los
protagonistas del evento incluyendo personal de soporte dentro de los equipos y el
personal de apoyo del evento como lo son los árbitros, nos permite mayor
versatilidad y posibilidades interesantes de almacenamiento de información. Así
como se hizo en la entidad anterior, para esta se seleccionan como atributos
características propias, como el nombre, el rol que desempeña, posición, para los
jugadores, etc.
● Partidos
La mayor parte de la información relativa al torneo puede ser escrita en esta tabla
puesto que contendrá un número fijo de registros, debido a que se tiene
conocimiento de cuáles son los partidos que se jugarán, así mismo durante el torneo
se irán conociendo los equipos protagonistas de cada partido a medida como vayan
desarrollándose las rondas iniciales. En esta entidad los atributos de interés son las
características principales de cada partido, su resultado, contrincantes, fecha y
lugar.
● Eventos
Durante un partido pueden desarrollarse un sin número de eventualidades,
comunes como el ingreso de los jugadores a la cancha o impredecibles como un
evento que interrumpa un partido o forcé su terminación anticipada. Estos incidentes
pueden ser registrados en una sola tabla de manera que sea también posible crear
listar todos los incidentes comunes, pero además crear los que no habían ocurrido
anteriormente, de manera que sea posible guardar toda la información que un
partido sea posible de generar, manteniendo una estructura simple, de fácil análisis
para generar informes y evitando al máximo las redundancias. Esta entidad se
mantiene por separado ya que está relacionada con todas las demás entidades
(personas, equipos y partidos) por lo tanto tiene atributos propios y no se puede
encasillar dentro de alguna de las anteriormente mencionadas.

RECOMENDACIONES ESTRATEGICAS

Los scripts usados para la creación de cada una de las tablas que componen la
base de datos, así como la creación de las claves primarias y foráneas.
CREATE TABLE `Equipo`
(
`id` int PRIMARY KEY,
`Nombre` text,
`Pais` int,
`Grupo` varchar(255)
);
CREATE TABLE `Pais`
(
`id` int PRIMARY KEY,
`Pais` text,
`Continente` int
);

CREATE TABLE `Continente`


(
`id` int PRIMARY KEY,
`Continente` text
);

CREATE TABLE `Personas`


(
`id` int PRIMARY KEY,
`Nombres` text,
`Apellidos` text,
`Tipo` int,
`Equipo` int,
`Numero` int,
`Edad` int,
`Estatura` int,
`Biografia` text
);

CREATE TABLE `Tipo`


(
`id` int PRIMARY KEY,
`Tipo` text
);

CREATE TABLE `Tipo_Eventos`


(
`id` int PRIMARY KEY,
`Nombre` text
);

CREATE TABLE `Eventos`


(
`id` int PRIMARY KEY,
`Fecha` datetime,
`Tipo` int,
`Partido` int,
`Persona` int
);

CREATE TABLE `Partido`


(
`id` int PRIMARY KEY,
`Fecha` datetime,
`Estadio` int,
`Local` int,
`Visitante` int
);
CREATE TABLE `Estadios`
(
`id` int PRIMARY KEY,
`Estadio` text,
`Capacidad` int,
`Direccion` text,
`Ciudad` int
);

CREATE TABLE `Ciudades`


(
`id` int PRIMARY KEY,
`Ciudad` text
);

ALTER TABLE `Personas` ADD FOREIGN KEY (`Equipo`) REFERENCES `Equipo`


(`id`);
ALTER TABLE `Partido` ADD FOREIGN KEY (`Local`) REFERENCES `Equipo`
(`id`);
ALTER TABLE `Partido` ADD FOREIGN KEY (`Visitante`) REFERENCES `Equipo`
(`id`);
ALTER TABLE `Pais` ADD FOREIGN KEY (`Continente`) REFERENCES
`Continente` (`id`);
ALTER TABLE `Equipo` ADD FOREIGN KEY (`Pais`) REFERENCES `Pais` (`id`);
ALTER TABLE `Eventos` ADD FOREIGN KEY (`Tipo`) REFERENCES
`Tipo_Eventos` (`id`);
ALTER TABLE `Eventos` ADD FOREIGN KEY (`Partido`) REFERENCES `Partido`
(`id`);
ALTER TABLE `Eventos` ADD FOREIGN KEY (`Persona`) REFERENCES
`Personas` (`id`);
ALTER TABLE `Partido` ADD FOREIGN KEY (`Estadio`) REFERENCES
`Estadios` (`id`);
ALTER TABLE `Estadios` ADD FOREIGN KEY (`Ciudad`) REFERENCES
`Ciudades` (`id`);
ALTER TABLE `Personas` ADD FOREIGN KEY (`Tipo`) REFERENCES `Tipo`
(`id`);

Para realizar pruebas sobre la base de datos que hemos construido se nos propone
obtener los siguientes scripts, entre los cuales se presentan los métodos: INSERT,
UPDATE, DELETE Y SELECT; además de un par de ejemplos de consultas y
creación de vistas en la base de datos.
Insertar un nuevo equipo:
INSERT INTO equipo VALUES(15,”Colombia”,3,”a”);
Actualizar el número de camiseta de un jugador, se asignará el numero 10:
BEGIN;
UPDATE personas
SET numero = 10
WHERE id = 135;
END;
Borrar un partido:
BEGIN;
DELETE
FROM partido
WHERE id= 5;
END;

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


BEGIN;
CREATE VIEW goles_por_jugador
SELECT e.id, p.nombre, p.edad, p.equipo
FROM eventos e, personas p
WHERE e.tipo=gol and e.persona=p.id
SELECT p.nombre
FROM goles_por_jugador
WHERE MIN(p.edad)
END;
¿En qué equipo juega el jugador de nombre x?
BEGIN;
SELECT equipo
FROM personas
WHERE (nombre=x)
END;
¿Quién es el máximo goleador de la copa y en qué equipo juega?
BEGIN;
SELECT equipo, nombres, apellidos
FROM personas
WHERE MAX(goles)
END;

¿Cuántos partidos dieron como resultado empate?


BEGIN;
SELECT COUNT( id)
FROM partidos
WHERE (goles_local=goles_visitante)
END;

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


BEGIN;
CREATE VIEW tarjetas_amarillas
SELECT e.id, p.equipo
FROM eventos e, personas p
WHERE e.tipo=tarjeta_amarilla and e.persona=p.id
SELECT p.equipo, COUNT(p.equipo) AS maximo
FROM tarjetas_amarillas
GROUP BY p.equipo
ORDER BY maximo DESC LIMIT 1
END;

CONCLUSIONES PRELIMINARES

● El diseño de bases de datos en su etapa conceptual el modelo más usado


es el de entidad relación, el cual tiene como elementos principales: las
entidades, objetos sobre las cuales se recoge la información, las relaciones,
que como su nombre lo indica crea la correspondencia entre las entidades
presentadas y los atributos, que son características a tener en cuenta para
cada una de las entidades; además cabe aclarar que estas relaciones y
atributos tienen una cardinalidad, la cual establece la forma de
correspondencia entre los elementos involucrados.

● En esta etapa iniciamos el proceso de normalización, en el cual nuestro


modelo debe cumplir con una serie de condiciones, que garantizan que no
halla redundancia en los datos y que en cada una de las tablas los datos
almacenados sean indivisibles, esto para asegurarnos de que en el momento
de la consulta el proceso sea lo más optimo posible; adicional a esto se debe
garantizar que cada tabla cuente con una clave primaria que nos permita
acceder a todos los datos al usarla de forma completa (en el caso de que
este compuesta por más de una columna).

● Debido a la existencia de datos repetitivos en nuestro modelo debemos crear


una serie de tablas auxiliares que nos permiten subsanar este inconveniente.
Dando como resultado el siguiente modelo físico.

● El modelo físico es la segunda etapa de una base de datos la cual permite


darnos una idea mucho más centrada de como quedaran organizadas y
seccionadas las tabla, que se puede llegar a optimizar para no consumir
espacio innecesariamente y así poder tener una organización óptima para
trabajar y minimizar errores lo mejor posible. Además, nos permite identificar
qué tipo de datos es cada atributo y plasmarlo en la codificación.

S-ar putea să vă placă și