aaa
This commit is contained in:
parent
e0be9f315a
commit
3ac700fb0a
41
README.md
41
README.md
@ -15,21 +15,21 @@
|
||||
|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é.
|
||||
> 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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user