Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 3 · Requêtes LoveBook

Du modèle LoveBook aux tables

L'exercice « Requests Facebook Events » dit : réalisez toutes les requêtes suite à la création de votre base ; elles servent à savoir si vous avez correctement constitué votre base et si votre modèle tient la route. Il faut donc d'abord traduire ton MCD en MPD, puis en tables. Cinq familles de requêtes sont demandées : SELECT (11 questions), DELETE (5), UPDATE (5), INSERT (5) et JOINT (9).

Le cours ne donne pas de corrigé de schéma. Pour t'exercer, ce site fournit un schéma simplifié (exemple ajouté, pas le corrigé du TP), avec des tables au pluriel :

utilisateurs(id, nom, prenom, email UNIQUE, ville)
groupes(id, nom, type)
evenements(id, titre, ville, date_debut, annule, #groupe_id)
participations(#utilisateur_id, #evenement_id, role, note)
albums(id, #evenement_id, titre)
photos(id, #album_id, #utilisateur_id, legende)
types_billets(id, #evenement_id, nom, montant, quantite)
billets(id, #type_billet_id, nom, prenom, date_achat)
covoiturages(id, #evenement_id, #utilisateur_id, ville_depart, places)

Lis ce schéma avec les règles de la partie 1 : participations est une CIM (table dont la clé primaire est le couple de clés étrangères) ; albums, billets, photos… portent une clé étrangère (CIF). Un billet pointe vers son type, qui pointe vers l'événement : pour le chiffre d'affaires d'un événement il faut donc traverser deux tables.

Vérifie que tu as compris

Pourquoi participations a-t-elle pour clé primaire le couple (utilisateur_id, evenement_id) ?

Règles d'or pour les requêtes de ce TP

  • Écris la requête pas à pas : d'abord le FROM et les jointures, puis WHERE, GROUP BY, HAVING, SELECT, ORDER BY.
  • Avant un DELETE ou un UPDATE, lance le SELECT équivalent.
  • Les exercices tournent avec SQLite : les écarts avec MySQL sont signalés « hors cours ». Les seuils trop grands de l'énoncé (10 participants, 1000 €) sont réduits à notre petite base.

Vérifie que tu as compris

Avant de supprimer des lignes avec DELETE, que faire ?