Professional Documents
Culture Documents
BIG DATA
1
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
1. PLANIFICACIÓN
2. CASUÍSTICA
Vamos a realizar un escenario en el cual tenemos información sobre las ligas que hay en cada país
europeo, los diferentes partidos, equipos y los jugadores que han participado en dichas ligas.
Cada país dispone de la siguiente información: id y nombre. Cada liga debe pertenecer a un país y
contiene la siguiente información: id, country_id y su nombre. Cada partido se disputará en una
determinada liga, se desea almacenar información relevante para la misma: id, country_id,
league_id, temporada, fase, fecha_partido, home_team, away_team, posee una lista con la
alineación de cada equipo, las predicciones de cada partido podrán ser de tipo BWH (victoria local),
BWD (empate) y BWA (victoria visitante), junto con una serie de cuotas ligados a distintas casas de
apuestas.
Cada jugador se identificará con id numérico, y tiene la siguiente información: nombre, un vínculo
que indica el identificador asociado al FIFA, fecha de nacimiento, peso y altura. Además de forma
opcional puede tener una serie de atributos más específicos asociados al jugador
(Player_Attributes).
De los equipos se desea almacenar el id de cada uno, su identificador asociado al FIFA, nombre y
abreviatura. Además de forma adicional puede tener una serie de atributos más específicos
asociados al equipo (Team_Attributes), como por ejemplo: defenceTeamWidth,
defenceAgressionClass, defencePressure... Los atributos específicos del equipo no contemplan
posibilidad de atributos nulos.
2
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
3. ANÁLISIS DE DIFERENTES SGBD:
3.1 MySQL
MySQL es una base de datos relacional en lugar de una OO. Se puede utilizar como orientada a
objetos desde su código utilizando una biblioteca ORM (Object Relational Mapping). Un buen
ejemplo es la doctrina para PHP.
3.2 PostgreSQL
Es un sistema de gestión de bases de datos relacional orientada a objetos de software libre,
publicado bajo la licencia BSD. Esta licencia tiene menos restricciones en comparación con
otras como la GPL ya que permite el uso de código fuente en software no libre.
3
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
PostgreSQL soporta funciones que retornan “filas”, donde la salida puede tratarse como un
conjunto de valores retornados de una consulta.
3.3 ORACLE
Una base de datos orientada a objetos, que incorpora todos los conceptos importantes del
modelo de objetos:
1. Encapsulación.
2. Herencia.
3. Polimorfismo.
Las BDOO están diseñadas para trabajar con lenguajes de programación como Java o C++, con
unas propiedades específicas las cuales hemos nombrado anteriormente.
Ventajas:
Desventajas:
Oracle ha definido una arquitectura, llamada NCA, que representa un modelo para el proceso
distribuido orientado a objetos en la. Esta arquitectura ofrece un marco unificado que permite
que los diversos sistemas de procesamiento cliente/servidor, WWW (World Wide Web) y la
tecnología de objetos distribuidos como CORBA o DCOM compartan un modelo común basado
en estándares.
4
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
4. DISEÑO CONCEPTUAL
5
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
5. DISEÑO LÓGICO
PAIS (country_id: dom_id, name: dom_name)
Único: {country_id}
VNN: {country_id} → RE
6
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
dom_WHH, WHD: dom_WHD, WHA: dom_WHA, SJH: dom_SJH, SJD: dom_SJD, SJA: dom_SJA, VCH:
dom_VCH, VCD: dom_VCD, VCA: dom_VCA, GBH: dom_GBH, GBD: dom_GBD, GBA: dom_GBA,
BSH: dom_BSH, BSD: dom_BSD, BSA: dom_BSA, country_id: dom_country_id, league_id:
dom_league_id, home_team_api_id: dom_home_team_api_id, away_team_api_id:
dom_away_team_api_id, home_player_1: dom_home_player_1, home_player_2:
dom_home_player_2, home_player_3: dom_home_player_3, home_player_4:
dom_home_player_4, home_player_5: dom_home_player_5, home_player_6:
dom_home_player_6, home_player_7: dom_home_player_7, home_player_8:
dom_home_player_8, home_player_9: dom_home_player_9, home_player_10:
dom_home_player_10, home_player_11: dom_home_player_11, away_player_1:
dom_home_player_1, away_player_2: dom_home_player_2, away_player_3:
dom_home_player_3, away_player_4: dom_home_player_4, away_player_5:
dom_home_player_5, away_player_6: dom_home_player_6, away_player_7:
dom_home_player_7, away_player_8: dom_home_player_8, away_player_9:
dom_home_player_9, away_player_10: dom_home_player_10, away_player_11:
dom_home_player_11)
VNN: {team_id} → RE
VNN: {team_id} → RE
7
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
chanceCreationShootingClass: dom_chanceCreationShootingClass,
chanceCreationPositioningClass: dom_chanceCreationPositioningClass, defencePressure:
dom_defencePressure, defencePressureClass: dom_defencePressureClass, defenceAggression:
dom_defenceAggression, defenceAggressionClass: dom_defenceAggressionClass,
defenceTeamWidth: dom_defenceTeamWidth, defenceTeamWidthClass:
dom_defenceTeamWidthClass, defenceDefenderLineClass: dom_defenceDefenderLineClass,
team_id: dom_team_id)
9
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
6. DISEÑO UML
7. DISEÑO FÍSICO
7.1 TRIGGER LOAD DATA INFILE EN MYSQL
SET FOREIGN_KEY_CHECKS = 0
LOAD DATA LOCAL INFILE
'C:/Users/Alejandro/Desktop/bd2/database.sqlite/database.sqlite/Match.
csv'
INTO TABLE matchs
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id,country_id,league_id,season,stage,date,match_api_id,home_team_api_
id,away_team_api_id,home_team_goal,away_team_goal,home_player_X1,home_
player_X2,home_player_X3,home_player_X4,home_player_X5,home_player_X6,
home_player_X7,home_player_X8,home_player_X9,home_player_X10,home_play
er_X11,away_player_X1,away_player_X2,away_player_X3,away_player_X4,awa
y_player_X5,away_player_X6,away_player_X7,away_player_X8,away_player_X
9,away_player_X10,away_player_X11,home_player_Y1,home_player_Y2,home_p
layer_Y3,home_player_Y4,home_player_Y5,home_player_Y6,home_player_Y7,h
ome_player_Y8,home_player_Y9,home_player_Y10,home_player_Y11,away_play
er_Y1,away_player_Y2,away_player_Y3,away_player_Y4,away_player_Y5,away
10
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
_player_Y6,away_player_Y7,away_player_Y8,away_player_Y9,away_player_Y1
0,away_player_Y11,home_player_1,home_player_2,home_player_3,home_playe
r_4,home_player_5,home_player_6,home_player_7,home_player_8,home_playe
r_9,home_player_10,home_player_11,away_player_1,away_player_2,away_pla
yer_3,away_player_4,away_player_5,away_player_6,away_player_7,away_pla
yer_8,away_player_9,away_player_10,away_player_11,goal,shoton,shotoff,
foulcommit,card, cross, corner, possession, B365H, B365D,
B365A,BWH,BWD,BWA,IWH,IWD,IWA,LBH,LBD,LBA,PSH,PSD,PSA,WHH,WHD,WHA,SJH,
SJD,SJA,VCH,VCD,VCA,GBH,GBD,GBA,BSH,BSD,BSA);
Como definición general las BDF podemos decir que es una colección de sistemas de BD
cooperativos y autónomos en el cual los usuarios tienen acceso a los datos de los distintos
sistemas, gracias a los esquemas unificados en los cuales hay datos de cada BD. Presentan las
siguientes características:
11
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
8.1 TIPOS DE SGBD
Los SGBDF se pueden clasificar en dos grandes categorías:
1. Fuertemente acopladas: poseen un esquema conceptual global que está formado por un
subconjunto de los esquemas conceptuales locales, compuesto por los datos que el
sistema local quiere compartir. Son capaces de soportar actualizaciones y la interpretación
de la semántica de los múltiples datos integrados en el sistema aes uniforme.
2. Débilmente acopladas: se basan en no tener un esquema conceptual global, en este caso
los esquemas externos están compuestos por uno o más esquemas conceptuales locales.
En este caso los usuarios son los responsables de la creación y mantenimiento de las
federaciones y soporta sistemas de BD altamente autónomos.
12
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
Ahora creamos nuestra base de datos federada llamada “BD_federada”, la cual va a contener otra
tabla llamada “Jugador_federada” que va a tener federación con la tabla “jugador”, que pertenece
a nuestra primera base de datos.
La tabla federada que se acaba de crear posee los mismos datos que la tabla remota a la cual
consulta (Jugador). Tendremos en cuenta los siguientes aspectos:
• Para que el servidor MySQL en el esclavo pueda tener acceso a la tabla, el servidor MySQL
maestro debe estar corriendo. La máquina no puede estar apagada, ya que es un enlace en
tiempo real.
• Las tablas se pueden llamar distinto, lo que importa es la cadena de conexión a la tabla
remota.
• Si se elimina la tabla federada en el esclavo, se mantienen el maestro.
• Tanto el servidor remoto como el local tienen acceso a la tabla.
Una vez realizado el análisis de los diferentes gestores de bases de datos, destacamos dos
alternativas que destacan por encima del resto, (MySQL y PostgreSQL) desechando, entre otras, la
opción de Oracle ya que su utilización e implementación es más compleja y costosa.
Ahora vamos a realizar una comparación más exhaustiva de estas dos alternativas elegidas,
comparando diferentes aspectos entre ellas:
13
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
• Conexión desde PHP: Ambos SGBD siempre han incluido soporte para PHP, ya bien con
funciones especiales que aprovecharan al máximo sus características, o bien con librerías
PEAR que soportan ambos SGBD a la perfección.
• Prestaciones en consultas simples: es una de las principales características que hace que
tanto MySQL como PostgreSQL sean uno de los SGBD mejor posicionados.
• Prestaciones en consultas complejas: Aunque en sus inicios MySQL no incluía soporte para
realizar subconsultas, en la actualidad ya soporta éstas y por tanto, está a la altura de sus
mayores competidores como es PostgreSQL que siempre ha mantenido esta característica.
9.1 CONCLUSIÓN
Como conclusión parece que MySQL es más estable y PostgreSQL tiende a desperdiciar memoria y
sobrecargar bastante el sistema.
Parece ser que MySQL junto con APACHE Y PHP forman un buen equipo para servir páginas webs
con contenido dinámico.
14
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
En cambio para sistemas más serios como PostgreSQL la
consistencia de la BD es fundamental (información realmente
importante, bancos, etc…), es una mejor opción pese a su
mayor lentitud.
Recapitulando:
PostgreSQL funciona más rápido en bases de datos grandes, ya sea en sistemas web o de escritorio.
MySQL es el más rápido en los sistemas web pequeños (que trabajan con PHP), porque es más
rápido que PostgreSQL en ese aspecto. Los servicios de hosting LAMP (Linux + Apache + MySQL +
PHP) con los que más abundan en este momento en el mercado.
✓ Para la escala vertical (más recursos a la máquina, mayor rendimiento con alto volumen
de información), las situaciones de misión crítica, permite lanzar queries tanto de lectura
como de escritura al mismo tiempo para evitar esperar por tablas bloqueadas mientras son
actualizadas, PostgreSQL.
✓ Para la escala horizontal (más servidores), aplicaciones sencillas basadas en lectura de
tablas con queries no demasiado complejas MySQL.
15
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte
10. ÁRBOL DE DECISIÓN
Tras analizar los datos de interés generados podremos crear un modelo de predicción para
representar y categorizar la siguiente serie de condiciones que podrá resolver si podrías ser un
buen jugador dada unas condiciones iniciales.
11. BIBLIOGRAFÍA
1. https://developers.google.com
2. https://www.smartdraw.com/software/tree-diagram-software.htm
3. http://blogs.ua.es/labseps/2015/09/23/tablas-federadas-en-mysql/
4. http://www.wetec.es/mysql-vs-postgresql/
5. https://www.percona.com/blog/2017/01/06/millions-queries-per-second-postgresql-and-
mysql-peaceful-battle-at-modern-demanding-workloads/
6. https://moodle2.unizar.es/add/pluginfile.php/1437581/mod_resource/content/2/913.pdf
16
Bases de Datos 2 - EUROPEAN SOCCER
Alberto Robles | Alejandro Pérez | Alvaro Huarte