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

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
  • email
  • 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 email 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.