120 lines
4.0 KiB
Markdown
120 lines
4.0 KiB
Markdown
# 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||
|
|
|---|---|
|
|
|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`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### 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 à "N" "U" "L" "L".
|
|
>
|
|
> Ce qui va permettre de pouvoir importer une donnée avec 4 char alors que la colonne pour `code_iata` n'accepte que 3 char.
|
|
```sql
|
|
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');
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_compagnie`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_type_avion`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_avion`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_programme_vol`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_vol`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
##### Importation des données dans la trable `t_reservation`
|
|
```sql
|
|
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;
|
|
```
|
|
|
|
|
|
# Requetes
|
|
|
|
SELECT *
|
|
FROM t_compagnie
|
|
JOIN t_avion ON t_avion.compagnie_fk = t_compagnie.compagnie_id
|
|
WHERE t_compagnie.compagnie_id = 60
|
|
ORDER BY t_avion.capacite DESC
|
|
LIMIT 2;
|