classDiagram
class arbitre_grade {
id_arbitre_grade: INT(PK)
nom: VARCHAR
}
class joueur {
id_joueur: INT(PK)
pseudo: VARCHAR
nom: VARCHAR
prenom: VARCHAR
elo: INT
mail: VARCHAR
id_arbitre_grade: INT(FK -> arbitre_grade)
}
class cadence {
id_cadence: INT(PK)
nom: VARCHAR
}
class tournoi {
id_tournoi: INT(PK)
id_arbitre: INT(FK -> joueur)
nom: VARCHAR
debut: DATE
fin: DATE
nb_rondes: INT
id_cadence: INT(FK -> cadence)
}
class participant {
id_tournoi: INT(FK -> tournoi)
id_joueur: INT(FK -> joueur)
}
arbitre_grade -- joueur
cadence -- tournoi
tournoi -- participant
joueur -- participant
Exercice BDR et SQL
Objectif
Dans ce TP, vous allez :
- créer une base de données : lancer un service PostgreSQL
- vous connecter à cette base de données : utiliser un service cloudBeaver
- insérer des données via un script SQL
- écrire les requêtes SQL pour répondre aux questions
1 Mise en place
1.1 Lancer les services
-
- username : user-
- password : collez votre mot de passe
- username : user-
- PostgreSQL : Base de données
- Cloudbeaver : Logiciel pour communiquer avec une base de données
Il est possible de se connecter directement à une base de données, mais beaucoup plus simple d’utiliser un outil tel cloudBeaver.
1.2 Créer une connexion
Normalement si vous lancez les deux services dans l’ordre, lors du lancement de cloudBeaver, la base de données PostgreSQL est détectée et la connexion créée automatiquement.
Est-ce que la connexion a été créée ?
- Si oui, elle apparait à gauche dans cloudBeaver (liste des connexions)
- Si non, créez la connexion
-
- il contient les informations pour se connecter à la base de données
-
- Hostname :
postgresql-<...> - Port : 5432
- Database : defaultdb
- Username :
user-<username> - Password :
<password>
- Hostname :
Une fois la connexion créée, ouvrez-là :
-
- un petit rond vert apparait à côté
Enfin ouvrez un éditeur SQL pour écrire des requêtes :
-
- En haut dans le bandeau bleu, sinon sélectionnez ce profil
1.3 Insérer les données
-
- Icone orange avec un parchemin contenant une flêche 📜
Si vous n’avez eu aucun message d’erreur, vérifiez la création des tables :
- Parchemin contenant une flêche (ALT+X) ➡️ exécuter toutes les requêtes de l’éditeur
- Flêche orange (CTRL+ENTREE) ➡️ exécuter la requête courante (là où est le curseur de la souris)
1.4 Alternatives
D’autres outils pour réaliser l’exercice :
- https://onyxia.lab.groupe-genes.fr/ : fonctionne comme le SSP Cloud
- DBeaver sur la VM ENSAI
- Connectez-vous à la VM ENSAI
- Lancez le logiciel Dbeaver
- Paramétrez DBeaver
- https://sqliteonline.com/
- PostgreSQL > Click to connect
- https://aiven.io/tools/pg-playground
2 Description des données
Nous avons une liste de joueurs et de tournois. Les joueurs peuvent participer aux différents tournois.
Un tournoi est supervisé par un arbitre. Un arbitre est un joueur qui a obtenu un grade d’arbitre.
Dans un tournoi, les parties se déroulent à une certaine cadence (Lente, Rapide, Blitz).
3 Questions
3.1 Découverte des tables
-
- 💡 voir méthode UPPER
3.2 Mise à jour
-
- Pourquoi cela ne fonctionne pas ? Que faudrait-t-il faire pour supprimer ce joueur ?
-
- 💡 voir IS NOT NULL
3.3 Jointures
3.4 Agrégations
Lien vers la correction