Ajout de l'importation des données

This commit is contained in:
Albert Braimi 2025-10-28 13:41:40 +01:00
parent df98b1ed3f
commit 0bebde27c7

View File

@ -10,82 +10,103 @@
> 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. > 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 ### Schema MCD et MLD
|||
|---|---|
|MCD|![MCD](annexes/mcd.png)| |MCD|![MCD](annexes/mcd.png)|
|---|---|
|MLD|![MLD](annexes/mld.png)| |MLD|![MLD](annexes/mld.png)|
### Création de la base de données ### 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é. > 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. > 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 ### 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.
|Requetes|Remarques| ##### 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; |
|-------------- | --------- |
docker cp C:\Users\pn26qvj\Downloads\exports_tsv_final\* /var/lib/mysql-files
LOAD DATA INFILE '/var/lib/mysql-files/t_passager.tsv' LOAD DATA INFILE '/var/lib/mysql-files/t_passager.tsv'
INTO TABLE t_passager INTO TABLE t_passager
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 ROWS; 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' LOAD DATA INFILE '/var/lib/mysql-files/t_aeroport.tsv'
INTO TABLE t_aeroport INTO TABLE t_aeroport
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES IGNORE 1 LINES
(aeroport_id, @code_iata, code_icao, nom)SET code_iata = NULLIF(@code_iata, 'null'); (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' LOAD DATA INFILE '/var/lib/mysql-files/t_compagnie.tsv'
INTO TABLE t_compagnie INTO TABLE t_compagnie
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES; 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' LOAD DATA INFILE '/var/lib/mysql-files/t_type_avion.tsv'
INTO TABLE t_type_avion INTO TABLE t_type_avion
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES; IGNORE 1 LINES;
```
##### Importation des données dans la trable `t_avion`
```sql
LOAD DATA INFILE '/var/lib/mysql-files/t_avion.tsv' LOAD DATA INFILE '/var/lib/mysql-files/t_avion.tsv'
INTO TABLE t_avion INTO TABLE t_avion
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES; 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' LOAD DATA INFILE '/var/lib/mysql-files/t_programme_vol.tsv'
INTO TABLE t_programme_vol INTO TABLE t_programme_vol
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES; IGNORE 1 LINES;
```
##### Importation des données dans la trable `t_vol`
```sql
LOAD DATA INFILE '/var/lib/mysql-files/t_vol.tsv' LOAD DATA INFILE '/var/lib/mysql-files/t_vol.tsv'
INTO TABLE t_vol INTO TABLE t_vol
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 ROWS; IGNORE 1 ROWS;
```
##### Importation des données dans la trable `t_reservation`
```sql
LOAD DATA INFILE '/var/lib/mysql-files/t_reservation.tsv' LOAD DATA INFILE '/var/lib/mysql-files/t_reservation.tsv'
INTO TABLE t_reservation INTO TABLE t_reservation
FIELDS TERMINATED BY '\t' FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' LINES TERMINATED BY '\n'
IGNORE 1 LINES; IGNORE 1 LINES;
```
# Requetes # Requetes