Rapport de projet module 106

Introduction

Ce rapport documente la réalisation du projet du module 106, axé sur l'administration et la gestion de bases de données relationnelles. L'objectif était de concevoir, implémenter et administrer la base de données de l'aéroport fictif SkyConnect.

Base de données

Conception de la base de données

Dans un premier temps, nous avons réalisé la conception de la base de données sur Looping, en nous basant sur le contexte défini dans le cahier des charges. Lors de la phase de validation, le professeur a validé notre schéma initial, puis nous a transmis une nouvelle structure de base de données pleinement compatible avec les données à intégrer.

Schema MCD et MLD

MCD MCD
MLD MLD

Création de la base de données

La base de données a été crée à partir du fichier Looping que le professeur nous a donné. J'ai simplement copié le script LDD généré par Looping et je l'ai collé dans le terminal connecté à la base de données.

Chargement des données

Pour réaliser ce projet nous avons fait recours à docker pour pouvoir avoir un support sur lequel utiliser MySQL. J'ai utilisé le conteneur docker MySQL qui le lance avec la commande docker run mysql.

La prochaine étape est de copier les données dans le repertoire de confiance de MySQL : docker cp C:\Users\%username%\Downloads\exports_tsv_final\* db:/var/lib/mysql-files/

Maintenant que les données sont prêtes on va pouvoir commancer l'import des données dans un ordre précis pour ne pas avoir de problème avec les clés étrangères. Les tables qui n'ont aucune clé étrangère seront toujours les premières à être importées.

Importation des données dans la trable t_passager
LOAD DATA INFILE '/var/lib/mysql-files/t_passager.tsv' 
INTO TABLE  t_passager 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS;
Query OK, 36095 rows affected (0.106 sec)
Records: 36095  Deleted: 0  Skipped: 0  Warnings: 0

Importation des données dans la trable t_aeroport

REMARQUE : La dernière ligne de cette requete permet de :

  1. Créer une variable sur code_iata.
  2. Assigner la valeur NULL si la valeur string est égale à "NULL".

Ce qui va permettre de pouvoir importer une donnée avec 4 char alors que la colonne code_iata n'accepte que 3 char.

LOAD DATA INFILE '/var/lib/mysql-files/t_aeroport.tsv' 
INTO TABLE t_aeroport 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 
(aeroport_id, @code_iata, code_icao, nom)SET code_iata = NULLIF(@code_iata, 'null');
Query OK, 9854 rows affected (0.067 sec)
Records: 9854  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_compagnie
LOAD DATA INFILE '/var/lib/mysql-files/t_compagnie.tsv' 
INTO TABLE t_compagnie 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
Query OK, 110 rows affected (0.004 sec)
Records: 110  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_type_avion
LOAD DATA INFILE '/var/lib/mysql-files/t_type_avion.tsv' 
INTO TABLE t_type_avion 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
Query OK, 342 rows affected (0.013 sec)
Records: 342  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_avion
LOAD DATA INFILE '/var/lib/mysql-files/t_avion.tsv' 
INTO TABLE t_avion 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
Query OK, 3950 rows affected (0.025 sec)
Records: 3950  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_programme_vol
LOAD DATA INFILE '/var/lib/mysql-files/t_programme_vol.tsv' 
INTO TABLE t_programme_vol 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
Query OK, 9614 rows affected (0.158 sec)
Records: 9614  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_vol
LOAD DATA INFILE '/var/lib/mysql-files/t_vol.tsv' 
INTO TABLE  t_vol 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS;
Query OK, 321911 rows affected (2.249 sec)
Records: 321911  Deleted: 0  Skipped: 0  Warnings: 0
Importation des données dans la trable t_reservation
LOAD DATA INFILE '/var/lib/mysql-files/t_reservation.tsv' 
INTO TABLE t_reservation 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
Query OK, 5455883 rows affected (29.077 sec)
Records: 5455883  Deleted: 0  Skipped: 0  Warnings: 0

Requetes

SELECT immatriculation, capacite FROM t_avion WHERE compagnie_fk = 60 ORDER BY t_avion.capacite DESC LIMIT 2;

Description
Rapport de projet module 106
Readme 72 MiB
Languages
TSV 100%