Activité Requêtes et transactions : École de Musique
Consigne
Avant de commencer, veuillez lire une première fois le document dans son ensemble.
Le travail est individuel. Vous pouvez communiquer en respectant le code d’honneur. Si vous être bloqué, demandez de l’aide afin de ne pas prendre trop de retard.
Situation
Vous travaillez avec une base de données d’une École de Musique.
Le modèle de données comprend les tables suivantes :
-
Étudiants,
-
Cours,
-
Inscriptions,
-
Enseignants,
-
Salles et
-
Paiements
Objectifs
- Comprendre et appliquer les concepts de base de la manipulation et de l’interrogation des données SQL.
- Utiliser des requêtes avancées pour analyser et gérer les données d’une base de données complexe.
- Utiliser les transactions.
Résultat attendu
N/A
Ressources
- Transaction Control Language
- Présentation : Langage d’interrogation de données (DQL)
- Du modèle logique au modèle physique
Mise en route
- Connectez-vous au serveur de bases de données qui vous a été attribué au module 164.
- Effectuez les tâches demandées les une après les autres.
À vous de jouer !
Tâches
Implémentez le modèle logique
Tables
Etudiants
- etudiantID (PK)
- nom
- prenom
- dateInscription
Cours
- coursID (PK)
- titre
- enseignantID (FK)
- salleID (FK)
- heureDebut
- heureFin
Inscriptions
- inscriptionID (PK)
- etudiantID (FK)
- coursID (FK)
- dateInscription
- statut (actif, completé, annulé)
Enseignants
- enseignantID (PK)
- nom
- prenom
- specialite
Salles
- salleID (PK)
- nom
- capacite
Paiements
- paiementID (PK)
- etudiantID (FK)
- montant
- datePaiement
- methodePaiement (carte, espèces, chèque)
Données de test
On vous propose les données suivantes, mais vous pouvez utiliser vos propres données.
Astuce : Créez un fichier SQL pour insérer les données!
Table Etudiants
etudiantID | nom | prenom | dateInscription | |
---|---|---|---|---|
1 | Dupont | Jean | jean.dupont@example.com | 2022-01-15 |
2 | Martin | Alice | alice.martin@example.com | 2022-01-20 |
Table Cours
coursID | titre | enseignantID | salleID | heureDebut | heureFin |
---|---|---|---|---|---|
101 | Piano débutant | 301 | 401 | 09:00 | 10:00 |
102 | Chant avancé | 302 | 402 | 11:00 | 12:00 |
Table Inscriptions
inscriptionID | etudiantID | coursID | dateInscription | statut |
---|---|---|---|---|
201 | 1 | 101 | 2022-01-16 | actif |
202 | 2 | 102 | 2022-01-21 | actif |
Table Enseignants
enseignantID | nom | prenom | specialite |
---|---|---|---|
301 | Moreau | Luc | Piano |
302 | Petit | Chloé | Chant |
Table Salles
salleID | nom | capacité |
---|---|---|
401 | Salle Piano | 10 |
402 | Salle Chant | 15 |
Table Paiements
paiementID | etudiantID | montant | datePaiement | methodePaiement |
---|---|---|---|---|
501 | 1 | 100 | 2022-01-16 | carte |
502 | 2 | 150 | 2022-01-21 | espèces |
Requêtes de transactions ACID
-
Inscrivez un étudiant à un cours et effectuez le paiement correspondant. Assurez-vous que les deux opérations sont exécutées comme une seule transaction ACID.
-
Mettez à jour l’horaire d’un cours et informez tous les étudiants inscrits à ce cours de la modification. Utilisez des transactions pour garantir que soit toutes les modifications sont appliquées, soit aucune.
Requêtes d’opérations sur les données
-
Trouvez tous les étudiants inscrits à plus de 3 cours.
-
Calculez le revenu total généré par les paiements pour un mois donné.
Requêtes de gestion des conflits
-
Gérez une situation où deux enseignants sont assignés à la même salle à la même heure. Utilisez des mécanismes de verrouillage pour éviter les conflits de réservation de salle.
-
Préparez un plan pour gérer les inscriptions excessives à un cours populaire, où les demandes d’inscription dépassent la capacité de la salle.