This commit is contained in:
Albert 2025-10-29 11:18:50 +01:00
parent e0be9f315a
commit 3ac700fb0a

View File

@ -15,21 +15,21 @@
|MLD|![MLD](annexes/mld.png)|
### 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.
### 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`.
> Pour réaliser ce projet nous avons fait recours à docker pour disposer d'un environnement d'exécution pour MySQL.
> J'ai utilisé le conteneur docker MySQL lancé 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.
> Maintenant que les données sont prêtes on va pouvoir commencer 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`
##### Importation des données dans la table `t_passager`
```sql
LOAD DATA INFILE '/var/lib/mysql-files/t_passager.tsv'
INTO TABLE t_passager
@ -442,7 +442,7 @@ ORDER BY
CREATE INDEX idx_vol_heure_depart ON t_vol(heure_depart);
```
> Voici les resultats avant et après :
> Voici les résultats avant et après :
> Avant : `835 rows in set (0.043 sec)`
> Après : `835 rows in set (0.004 sec)`
@ -451,11 +451,11 @@ CREATE INDEX idx_vol_heure_depart ON t_vol(heure_depart);
CREATE INDEX idx_vol_heure_depart ON t_vol(heure_depart);
```
> Voici les resultats avant et après :
> Voici les résultats avant et après :
> Avant : `4115 rows in set (0.354 sec)`
> Après : `4115 rows in set (0.265 sec)`
> Ici, l'index est le même car dans les deux `WHERE`, `companie_fk` revient une fois et `heure_depart` revient aux deux endroits. Il y a l'index automatique sur `companie_fk`, `heure_depart` est donc la seule colonne a indexer.
> Ici, l'index est le même car dans les deux `WHERE`, `companie_fk` revient une fois et `heure_depart` revient aux deux endroits. Il y a l'index automatique sur `companie_fk`, `heure_depart` est donc la seule colonne à indexer.
## Utilisateurs et rôles
@ -464,7 +464,7 @@ CREATE INDEX idx_vol_heure_depart ON t_vol(heure_depart);
##### Creation du rôle
```sql
CREATE ROLE 'role_administarteur'@'localhost';
CREATE ROLE 'role_administrateur'@'localhost';
```
##### Assignation des permissions
@ -474,7 +474,7 @@ GRANT ALL PRIVILEGES ON db_aeroport.* TO 'role_administrateur'@'localhost' WITH
##### Création de l'utilisateur
```sql
CREATE USER 'administrateur'@'localhost' IDENTIFIED BY 'administateur';
CREATE USER 'administrateur'@'localhost' IDENTIFIED BY 'administrateur';
```
##### Assignation du rôle à l'utilisateur
@ -491,8 +491,8 @@ CREATE ROLE 'role_gestionnaire_vols'@'localhost';
##### Assignation des permissions
```sql
GRANT SELECT, INSERT, UPDATE ON db_aeroport.t_vol TO 'role_geastionnaire_vols'@'localhost';
GRANT SELECT, INSERT, UPDATE ON db_aeroport.t_programme_vol TO 'role_geastionnaire_vols'@'localhost';
GRANT SELECT, INSERT, UPDATE ON db_aeroport.t_vol TO 'role_gestionnaire_vols'@'localhost';
GRANT SELECT, INSERT, UPDATE ON db_aeroport.t_programme_vol TO 'role_gestionnaire_vols'@'localhost';
GRANT SELECT ON db_aeroport.t_avion TO 'role_gestionnaire_vols'@'localhost';
```
@ -583,15 +583,12 @@ GRANT 'role_analyste'@'localhost' TO 'usr_analyste'@'localhost';
```sql
START TRANSACTION;
-- Supprimer le vol
DELETE FROM t_vol
WHERE vol_id = 25;
-- Supprimer les réservations
DELETE FROM t_reservation
WHERE vol_fk = 25;
-- Valider les changements
DELETE FROM t_vol
WHERE vol_id = 25;
COMMIT;
```
@ -614,6 +611,10 @@ ELSE
END IF;
```
> On lance une transaction pour controller si le siège 12A pour le vol 10 est déjà prit, si il n'est pas prit on met 0 dans la variable `@seat_taken` sinon on met 1.
> On lance une transaction pour controller si le siège 12A pour le vol 10 est déjà pris, si il n'est pas pris on met 0 dans la variable `@seat_taken` sinon on met 1.
> Si le siège est vide (@seat_taken = 0) alors on y ajoute un passager et on `COMMIT;`, sinon on `ROLLBACK;`
## Prompts IA
### Prompt 1